;* ;* TOPPERS/ASP Kernel ;* Toyohashi Open Platform for Embedded Real-Time Systems/ ;* Advanced Standard Profile Kernel ;* ;* Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory ;* Toyohashi Univ. of Technology, JAPAN ;* Copyright (C) 2001 by OAKS16KIT support ;* Copyright (C) 2003-2004 by Naoki Saito ;* Nagoya Municipal Industrial Research Institute, JAPAN ;* Copyright (C) 2003-2004 by Ryosuke Takeuchi ;* Platform Development Center RICOH COMPANY,LTD. JAPAN ;* Copyright (C) 2008-2010 by Witz Corporation, JAPAN ;* Copyright (C) 2013 by Mitsuhiro Matsuura ;* ;* 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ ;* ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 ;* 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. ;* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 ;* 権表示,この利用条件および下記の無保証規定が,そのままの形でソー ;* スコード中に含まれていること. ;* (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 ;* 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 ;* 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 ;* の無保証規定を掲載すること. ;* (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 ;* 用できない形で再配布する場合には,次のいずれかの条件を満たすこ ;* と. ;* (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 ;* 作権表示,この利用条件および下記の無保証規定を掲載すること. ;* (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに ;* 報告すること. ;* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 ;* 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. ;* また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 ;* 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを ;* 免責すること. ;* ;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者お ;* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 ;* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ ;* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ ;* の責任を負わない. ;* ;* @(#) $Id: target_support.src 536 2014-10-09 23:11:40Z coas-nagasima $ ;* .section P, CODE .glb _hardware_init_hook .glb _software_init_hook _hardware_init_hook: ; ; 動作モード設定 ; ; 動作モードはボード上の端子によって決定されるため, ; ここでは特別設定しない. ; ただし, リトルエンディアン/シングルチップモード ; であることを前提とする. ; ; またリセット後, 内蔵ROM:有効, 内蔵RAM:有効, 外部バス:無効 ; である. ; ; ; クロック設定 ; ; 入力:12MHz ; PLL回路:12 x 8 = 96MHz ; システムクロック:96MHz ; 周辺モジュールクロック:48MHz ; 外部バスクロック:96MHz ; とする. ; ;PORT3.PDR.BIT.B6 = 0; MOV.L #08C003H,R11 MOV.B [R11],R10 BCLR #6,R10 MOV.B R10,[R11] ;PORT3.PDR.BIT.B7 = 0; MOV.L #08C003H,R11 MOV.B [R11],R10 BCLR #7,R10 MOV.B R10,[R11] ;PORT3.PMR.BIT.B6 = 0; MOV.L #08C003H,R11 MOV.B 60H[R11],R10 BCLR #6,R10 MOV.B R10,60H[R11] ;PORT3.PMR.BIT.B7 = 0; MOV.L #08C003H,R11 MOV.B 60H[R11],R10 BCLR #7,R10 MOV.B R10,60H[R11] ; ;SYSTEM.PRCR.WORD = 0xa503; MOV.L #080000H,R10 MOV.W #-5AFDH,03FEH[R10] ; ;while(SYSTEM.MOFCR.BIT.MOFXIN == 0) BRA.B _hardware_init_hook_01 ;SYSTEM.MOFCR.BIT.MOFXIN = 1; // メインクロック発振器強制発振 _hardware_init_hook_00: MOV.L #080000H,R11 MOV.B 0C293H[R11],R10 BSET #0,R10 MOV.B R10,0C293H[R11] _hardware_init_hook_01: MOV.L #080000H,R10 MOV.B 0C293H[R10],R10 AND #1H,R10 MOVU.B R10,R10 CMP #0H,R10 BEQ.B _hardware_init_hook_00 ; ;while(SYSTEM.MOSCCR.BIT.MOSTP == 1) BRA.B _hardware_init_hook_11 ;SYSTEM.MOSCCR.BIT.MOSTP = 0; // メインクロック発振器動作 _hardware_init_hook_10: MOV.L #080000H,R11 MOV.B 32H[R11],R10 BCLR #0,R10 MOV.B R10,32H[R11] _hardware_init_hook_11: MOV.L #080000H,R10 MOV.B 32H[R10],R10 AND #1H,R10 MOVU.B R10,R10 CMP #0H,R10 BNE.B _hardware_init_hook_10 ; ;SYSTEM.PLLCR.BIT.STC = 0x0f; MOV.L #080000H,R10 MOV.W 28H[R10],R11 AND #-3F01H,R11 OR #0F00H,R11 MOV.W R11,28H[R10] ;SYSTEM.PLLCR2.BIT.PLLEN = 0; MOV.L #080000H,R11 MOV.B 2AH[R11],R10 BCLR #0,R10 MOV.B R10,2AH[R11] ; ;SYSTEM.SCKCR.LONG = 0x21021211; MOV.L #080000H,R10 MOV.L #21021211H,20H[R10] ; ;SYSTEM.SCKCR3.BIT.CKSEL = 4; // PLL回路選択 MOV.L #080000H,R10 MOV.W 26H[R10],R11 AND #-0701H,R11 OR #0400H,R11 MOV.W R11,26H[R10] ; ; モジュールストップ ; ; リセット後, 動作している内蔵周辺モジュールはDMAC, DTC, ; 内蔵RAMのみである. ; それ以外の内蔵周辺モジュールに関しては使用する側で ; 設定すること. ; ;SYSTEM.PRCR.WORD = 0xa500; MOV.L #080000H,R10 MOV.W #-5B00H,03FEH[R10] rts _software_init_hook: ; ; 本コンパイラではweak definitionの機能が無いため, ; 特に必要な処理はないが, 必ず呼び出すこととする. ; rts .end