source: ssp_qb_r5f100le_cs/trunk/target/cq_frk_fm3_gcc/target_support.S@ 95

Last change on this file since 95 was 95, checked in by nmir-saito, 9 years ago

ファイルの mime-type 変更

  • Property svn:mime-type set to text/plain; charset=shift_jis
File size: 4.9 KB
Line 
1/*
2 * TOPPERS/SSP Kernel
3 * Smallest Set Profile Kernel
4 *
5 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
6 * Toyohashi Univ. of Technology, JAPAN
7 * Copyright (C) 2007 by Embedded and Real-Time Systems Laboratory
8 * Graduate School of Information Science, Nagoya Univ., JAPAN
9 * Copyright (C) 2012 by Meika Sugimoto
10 * Copyright (C) 2015 by Naoki Saito
11 * Nagoya Municipal Industrial Research Institute, JAPAN
12 *
13 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
14 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
15 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
16 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
17 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
18 * スコード中に含まれていること.
19 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
20 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
21 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
22 * の無保証規定を掲載すること.
23 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
24 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
25 * と.
26 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
27 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
28 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
29 * 報告すること.
30 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
31 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
32 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
33 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
34 * 免責すること.
35 *
36 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
37 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
38 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
39 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
40 * の責任を負わない.
41 *
42 */
43
44/*
45 * ターゲット依存部 アセンブリ言語(CQ-FRM-FM3用)
46 */
47
48#define TOPPERS_MACRO_ONLY
49#define UINT_C(val) (val)
50#define ULONG_C(val) (val)
51#include "kernel_impl.h"
52#include "cq_frm_fm3.h"
53
54/*
55 * 低レベルのターゲット依存の初期化
56 *
57 * メモリ初期化の前に呼び出される
58 */
59
60 .globl hardware_init_hook
61
62 .text
63 .align 2
64 .syntax unified
65 .code 16
66 .thumb
67 .type hardware_init_hook, function
68hardware_init_hook:
69 /* 各バスクロックのプリスケーラ設定 */
70 ldr r0 , =#BSC_PSR /* ベースクロック(1分周) */
71 mov r1 , #BSC_CLK_DIV_1
72 str r1 , [r0]
73
74 ldr r0 , =#APBC0_PSR /* APB0(8分周) */
75 mov r1 , #APB_CLK_DIV_8
76 str r1 , [r0]
77
78 ldr r0 , =#APBC1_PSR /* APB1(8分周) */
79 mov r1 , #(APB_CLK_DIV_8 | APBC_EN | APBC_RESET)
80 str r1 , [r0]
81 mov r1 , #(APB_CLK_DIV_8 | APBC_EN)
82 str r1 , [r0]
83
84 ldr r0 , =#APBC2_PSR /* APB2(8分周) */
85 mov r1 , #(APB_CLK_DIV_8 | APBC_EN | APBC_RESET)
86 str r1 , [r0]
87 mov r1 , #(APB_CLK_DIV_8 | APBC_EN)
88 str r1 , [r0]
89
90 ldr r0 , =#INT_CLR /* INT_CLRのクリア */
91 mov r1 , #(INT_CLL_MCS | INT_CLL_SCS | INT_CLL_PCS | INT_CLL_FCS)
92 str r1 , [r0]
93
94 /* メインクロック発信安定待ち割込みの設定 */
95 ldr r0 , =#CSW_PSR
96 mov r1 , #PSW_TMR_MOWT_CONF12
97 str r1 , [r0]
98
99 /* メインクロック入力安定待ち割込み有効化 */
100 ldr r0 , =#INT_ENR
101 mov r1 , #INT_CLL_MCS
102 str r1 , [r0]
103
104 /* メインクロック起動 */
105 ldr r0 , =#SCM_CTL
106 ldr r1 , [r0]
107 and r1 , #SCM_CTL_MOSCE
108 str r1 , [r0]
109
110 /* メインクロック安定待ち */
111 ldr r0 , =#SCM_STR
112 wait_main_clock_stable:
113 ldr r1 , [r0]
114 orr r1 , #SCM_STR_MORDY
115 beq wait_main_clock_stable
116
117 /* PLL入力クロックと発信安定待ち割込みの設定 */
118 ldr r0 , =#PSW_TMR
119 mov r1 , #(PSW_TMR_PINC_MO | PSW_TMR_POWT_CONF7) /* 待ち時間は最大値取る */
120 str r1 , [r0]
121
122 /* PLL入力安定待ち割込み有効化 */
123 ldr r0 , =#INT_ENR
124 mov r1 , #INT_CLL_PCS
125 str r1 , [r0]
126
127 /* PLLの分周率設定 */
128 ldr r0 , =#PLL_CTL1 /* PLLK , PLLM */
129 mov r1 , #(PLL_CTL1_PLLK(PLLK_VALUE) | PLL_CTL1_PLLM(PLLM_VALUE))
130 str r1 , [r0]
131 ldr r0 , =#PLL_CTL2 /* PLLN */
132 mov r1 , #PLL_CTL2_PLLN(PLLN_VALUE)
133 str r1 , [r0]
134
135 /* PLL起動 */
136 ldr r0 , =#SCM_CTL
137 ldr r1 , [r0]
138 orr r1 , #SCM_CTL_PLLE
139 str r1 , [r0]
140
141 /* PLL安定待ち */
142 ldr r0 , =#SCM_STR /* APB2(8分周) */
143 wait_pll_stable:
144 ldr r1 , [r0]
145 and r1 , #SCM_STR_PLRDY
146 beq wait_pll_stable
147
148 /* マスタクロック切り替え */
149 ldr r0 , =#SCM_CTL
150 ldr r1 , [r0]
151 and r1 , #~SCM_CTL_RCS_MASK
152 orr r1 , #SCM_CTL_RCS_PLLCLK
153 str r1 , [r0]
154
155 isb
156
157 /* トレースクロックの設定 */
158 ldr r0 , =#TTC_PSR /* TTC(8分周) */
159 mov r1 , #(APB_CLK_DIV_8)
160 str r1 , [r0]
161
162 /* トレースポートの設定 */
163 ldr r0 , =#PFR0
164 ldr r1 , [r0]
165 orr r1 , #(0x01F << 5)
166 str r1 , [r0]
167
168 ldr r0 , =#EPFR0
169 ldr r1 , [r0]
170 orr r1 , #(0x03 << 24)
171 str r1 , [r0]
172
173 bx lr
174
Note: See TracBrowser for help on using the repository browser.