Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r279 r321  
    77 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
    45  *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
     31 *
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  $Id$
     
    5540
    5641/*
    57  *              カーネルのターゲット依存部(GR-PEACH用)
     42 *              カーネルのターゲット依存部(GR-PEACH用)
    5843 */
    5944
     
    6752
    6853/*
    69  *  カーネル動作時のメモリマップと関連する定義
    70  *
    71  *  0x18000000 - 0x1fffffff:シリアルフラッシュメモリ(128MB)
    72  *  0x20000000 - 0x209fffff:å†
    73ʏӵSRAM(10MB)
    74  *  0x3fe00000 - 0x3fffffff:I/O領域(2MB),予約領域を含む
    75  *  0xe8000000 - 0xffffffff:I/O領域(384MB),予約領域を含む
    76  */
    77 
    78 /*
    79  *  MMUへの設定属性(第1レベルディスクリプタ)
     54 *  カーネル動作時のメモリマップと関連する定義
     55 *
     56 *  0x18000000 - 0x1fffffff:シリアルフラッシュメモリ(128MB)
     57 *  0x20000000 - 0x209fffff:内蔵SRAM(10MB)
     58 *  0x3fe00000 - 0x3fffffff:I/O領域(2MB),予約領域を含む
     59 *  0xe8000000 - 0xffffffff:I/O領域(384MB),予約領域を含む
     60 */
     61
     62/*
     63 *  MMUへの設定属性(第1レベルディスクリプタ)
    8064 */
    8165#define MMU_ATTR_RAM    (ARM_MMU_DSCR1_SHARED|ARMV6_MMU_DSCR1_APX0 \
     
    8670                                                        |ARM_MMU_DSCR1_CB01|ARMV6_MMU_DSCR1_NOEXEC)
    8771/*
    88  *  MMUの設定æƒ
    89 å ±ï¼ˆãƒ¡ãƒ¢ãƒªã‚¨ãƒªã‚¢ã®æƒ
    90 å ±ï¼‰
     72 *  MMUの設定情報(メモリエリアの情報)
    9173 */
    9274ARM_MMU_CONFIG arm_memory_area[] = {
     
    9880
    9981/*
    100  *  MMUの設定æƒ
    101 å ±ã®æ•°ï¼ˆãƒ¡ãƒ¢ãƒªã‚¨ãƒªã‚¢ã®æ•°ï¼‰
     82 *  MMUの設定情報の数(メモリエリアの数)
    10283 */
    10384const uint_t arm_tnum_memory_area
     
    10586
    10687/*
    107  *  低消費電力モードの初期化
     88 *  低消費電力モードの初期化
    10889 */
    10990static void
    11091lowpower_initialize(void)
    11192{
    112         /* スタンバイモード時に端子状æ
    113 ‹ã‚’維持する.CoreSight動作 */
     93        /* スタンバイモード時に端子状態を維持する.CoreSight動作 */
    11494        sil_wrb_mem(RZA1_STBCR2, 0x6a);
    115         (void) sil_reb_mem(RZA1_STBCR2);                /* ダミーリード */
    116 
    117         /* IEBus, irDA, LIN0, LIN1, MTU2, RSCAN2, ASC, PWM動作 */
     95        (void) sil_reb_mem(RZA1_STBCR2);                /* ダミーリード */
     96
     97        /* IEBus, irDA, LIN0, LIN1, MTU2, RSCAN2, ASC, PWM動作 */
    11898        sil_wrb_mem(RZA1_STBCR3, 0x00);
    119         (void) sil_reb_mem(RZA1_STBCR3);                /* ダミーリード */
    120 
    121         /* SCIF0, SCIF1, SCIF2, SCIF3, SCIF4, SCIF5, SCIF6, SCIF7動作 */
     99        (void) sil_reb_mem(RZA1_STBCR3);                /* ダミーリード */
     100
     101        /* SCIF0, SCIF1, SCIF2, SCIF3, SCIF4, SCIF5, SCIF6, SCIF7動作 */
    122102        sil_wrb_mem(RZA1_STBCR4, 0x00);
    123         (void) sil_reb_mem(RZA1_STBCR4);                /* ダミーリード */
    124 
    125         /* SCIM0, SCIM1, SDG0, SDG1, SDG2, SDG3, OSTM0, OSTM1動作 */
     103        (void) sil_reb_mem(RZA1_STBCR4);                /* ダミーリード */
     104
     105        /* SCIM0, SCIM1, SDG0, SDG1, SDG2, SDG3, OSTM0, OSTM1動作 */
    126106        sil_wrb_mem(RZA1_STBCR5, 0x00);
    127         (void) sil_reb_mem(RZA1_STBCR5);                /* ダミーリード */
    128 
    129         /* A/D, CEU, DISCOM0, DISCOM1, DRC0, DRC1, JCU, RTClock動作 */
     107        (void) sil_reb_mem(RZA1_STBCR5);                /* ダミーリード */
     108
     109        /* A/D, CEU, DISCOM0, DISCOM1, DRC0, DRC1, JCU, RTClock動作 */
    130110        sil_wrb_mem(RZA1_STBCR6, 0x00);
    131         (void) sil_reb_mem(RZA1_STBCR6);                /* ダミーリード */
    132 
    133         /* DVDEC0, DVDEC1, ETHER, FLCTL, USB0, USB1動作 */
     111        (void) sil_reb_mem(RZA1_STBCR6);                /* ダミーリード */
     112
     113        /* DVDEC0, DVDEC1, ETHER, FLCTL, USB0, USB1動作 */
    134114        sil_wrb_mem(RZA1_STBCR7, 0x24);
    135         (void) sil_reb_mem(RZA1_STBCR7);                /* ダミーリード */
    136 
    137         /* IMR-LS20, IMR-LS21, IMR-LSD, MMCIF, MOST50, SCUX動作 */
     115        (void) sil_reb_mem(RZA1_STBCR7);                /* ダミーリード */
     116
     117        /* IMR-LS20, IMR-LS21, IMR-LSD, MMCIF, MOST50, SCUX動作 */
    138118        sil_wrb_mem(RZA1_STBCR8, 0x05);
    139         (void) sil_reb_mem(RZA1_STBCR8);                /* ダミーリード */
    140 
    141         /* I2C0, I2C1, I2C2, I2C3, SPIBSC0, SPIBSC1, VDC50, VDC51動作 */
     119        (void) sil_reb_mem(RZA1_STBCR8);                /* ダミーリード */
     120
     121        /* I2C0, I2C1, I2C2, I2C3, SPIBSC0, SPIBSC1, VDC50, VDC51動作 */
    142122        sil_wrb_mem(RZA1_STBCR9, 0x00);
    143         (void) sil_reb_mem(RZA1_STBCR9);                /* ダミーリード */
    144 
    145         /* RSPI0, RSPI1, RSPI2, RSPI3, RSPI4, CD-ROMDEC, RSPDIF, RGPVG動作 */
     123        (void) sil_reb_mem(RZA1_STBCR9);                /* ダミーリード */
     124
     125        /* RSPI0, RSPI1, RSPI2, RSPI3, RSPI4, CD-ROMDEC, RSPDIF, RGPVG動作 */
    146126        sil_wrb_mem(RZA1_STBCR10, 0x00);
    147         (void) sil_reb_mem(RZA1_STBCR10);               /* ダミーリード */
    148 
    149         /* SSIF0, SSIF1, SSIF2, SSIF3, SSIF4, SSIF5動作 */
     127        (void) sil_reb_mem(RZA1_STBCR10);               /* ダミーリード */
     128
     129        /* SSIF0, SSIF1, SSIF2, SSIF3, SSIF4, SSIF5動作 */
    150130        sil_wrb_mem(RZA1_STBCR11, 0xc0);
    151         (void) sil_reb_mem(RZA1_STBCR11);               /* ダミーリード */
    152 
    153         /* SDHI00, SDHI01, SDHI10, SDHI11動作 */
     131        (void) sil_reb_mem(RZA1_STBCR11);               /* ダミーリード */
     132
     133        /* SDHI00, SDHI01, SDHI10, SDHI11動作 */
    154134        sil_wrb_mem(RZA1_STBCR12, 0xf0);
    155         (void) sil_reb_mem(RZA1_STBCR12);               /* ダミーリード */
    156 }
    157 
    158 /*
    159  *  汎用å
    160 ¥å‡ºåŠ›ãƒãƒ¼ãƒˆã®åˆæœŸåŒ–(ポート/ペリフェラルå
    161 ¼ç”¨ãƒ”ンのアサインの設定)
     135        (void) sil_reb_mem(RZA1_STBCR12);               /* ダミーリード */
     136}
     137
     138/*
     139 *  汎用入出力ポートの初期化(ポート/ペリフェラル兼用ピンのアサインの設定)
    162140 */
    163141static void
    164142port_initialize(void)
    165143{
    166         /* ポート6:ビット3(TxD2)の設定 */
     144        /* ポート6:ビット3(TxD2)の設定 */
    167145        rza1_config_port(RZA1_PORT_PIBC(6),  3, 0);
    168146        rza1_config_port(RZA1_PORT_PBDC(6),  3, 0);
    169147        rza1_config_port(RZA1_PORT_PIPC(6),  3, 1);
    170         /* 第7å
    171 ¼ç”¨æ©Ÿèƒ½ï¼ˆTxD2),出力 */
     148        /* 第7兼用機能(TxD2),出力 */
    172149        rza1_config_port(RZA1_PORT_PMC(6),   3, 1);
    173150        rza1_config_port(RZA1_PORT_PFCAE(6), 3, 1);
     
    176153        rza1_config_port(RZA1_PORT_PM(6),    3, 0);
    177154
    178         /* ポート6:ビット2(RxD2)の設定 */
     155        /* ポート6:ビット2(RxD2)の設定 */
    179156        rza1_config_port(RZA1_PORT_PIBC(6),  2, 0);
    180157        rza1_config_port(RZA1_PORT_PBDC(6),  2, 0);
    181158        rza1_config_port(RZA1_PORT_PIPC(6),  2, 1);
    182         /* 第7å
    183 ¼ç”¨æ©Ÿèƒ½ï¼ˆRxD2),å
    184 ¥åŠ› */
     159        /* 第7兼用機能(RxD2),入力 */
    185160        rza1_config_port(RZA1_PORT_PMC(6),   2, 1);
    186161        rza1_config_port(RZA1_PORT_PFCAE(6), 2, 1);
     
    189164        rza1_config_port(RZA1_PORT_PM(6),    2, 1);
    190165
    191         /* ポート6:ビット13(LED1/赤)の設定 */
     166        /* ポート6:ビット13(LED1/赤)の設定 */
    192167        rza1_config_port(RZA1_PORT_PIBC(6),  13, 0);
    193168        rza1_config_port(RZA1_PORT_PBDC(6),  13, 0);
    194         /* ポートモード,出力 */
     169        /* ポートモード,出力 */
    195170        rza1_config_port(RZA1_PORT_PMC(6),   13, 0);
    196171        rza1_config_port(RZA1_PORT_PM(6),    13, 0);
    197172
    198         /* ポート6:ビット14(LED2/緑)の設定 */
     173        /* ポート6:ビット14(LED2/緑)の設定 */
    199174        rza1_config_port(RZA1_PORT_PIBC(6),  14, 0);
    200175        rza1_config_port(RZA1_PORT_PBDC(6),  14, 0);
    201         /* ポートモード,出力 */
     176        /* ポートモード,出力 */
    202177        rza1_config_port(RZA1_PORT_PMC(6),   14, 0);
    203178        rza1_config_port(RZA1_PORT_PM(6),    14, 0);
    204179
    205         /* ポート6:ビット15(LED3/青)の設定 */
     180        /* ポート6:ビット15(LED3/青)の設定 */
    206181        rza1_config_port(RZA1_PORT_PIBC(6),  15, 0);
    207182        rza1_config_port(RZA1_PORT_PBDC(6),  15, 0);
    208         /* ポートモード,出力 */
     183        /* ポートモード,出力 */
    209184        rza1_config_port(RZA1_PORT_PMC(6),   15, 0);
    210185        rza1_config_port(RZA1_PORT_PM(6),    15, 0);
    211186
    212         /* ポート6:ビット12(LED4/ユーザ)の設定 */
     187        /* ポート6:ビット12(LED4/ユーザ)の設定 */
    213188        rza1_config_port(RZA1_PORT_PIBC(6),  12, 0);
    214189        rza1_config_port(RZA1_PORT_PBDC(6),  12, 0);
    215         /* ポートモード,出力 */
     190        /* ポートモード,出力 */
    216191        rza1_config_port(RZA1_PORT_PMC(6),   12, 0);
    217192        rza1_config_port(RZA1_PORT_PM(6),    12, 0);
    218193
    219         /* ポート6:ビット0(ユーザボタン)の設定 */
     194        /* ポート6:ビット0(ユーザボタン)の設定 */
    220195        rza1_config_port(RZA1_PORT_PIBC(6),  0, 1);
    221196        rza1_config_port(RZA1_PORT_PBDC(6),  0, 0);
    222         /* 第6å
    223 ¼ç”¨æ©Ÿèƒ½ï¼ˆIRQ5),å
    224 ¥åŠ› */
     197        /* 第6兼用機能(IRQ5),入力 */
    225198        rza1_config_port(RZA1_PORT_PMC(6),   0, 1);
    226199        rza1_config_port(RZA1_PORT_PFCAE(6), 0, 1);
     
    231204
    232205/*
    233  *  システムログの低レベル出力のための初期化
    234  *
    235  *  セルタイプtPutLogGRPeachå†
    236 ã«å®Ÿè£
    237 ã•ã‚Œã¦ã„る関数を直接呼び出す.
     206 *  システムログの低レベル出力のための初期化
     207 *
     208 *  セルタイプtPutLogGRPeach内に実装されている関数を直接呼び出す.
    238209 */
    239210extern void     tPutLogGRPeach_initialize(void);
    240211
    241212/*
    242  *  ターゲット依存の初期化
     213 *  ターゲット依存の初期化
    243214 */
    244215void
    245216target_initialize(void)
    246217{
    247         extern void     *vector_table;          /* ベクタテーブル */
    248 
    249         /*
    250          *  Low exception vectorsを使用
     218        extern void     *vector_table;          /* ベクタテーブル */
     219
     220        /*
     221         *  Low exception vectorsを使用
    251222         */
    252223        /*arm_set_low_vectors();*/
    253224
    254225        /*
    255          *  チップ依存の初期化
     226         *  チップ依存の初期化
    256227         */
    257228        /*chip_initialize();*/
    258229
    259230        /*
    260          *  低消費電力モードの初期化
     231         *  低消費電力モードの初期化
    261232         */
    262233        lowpower_initialize();
    263234
    264235        /*
    265          *  汎用å
    266 ¥å‡ºåŠ›ãƒãƒ¼ãƒˆã®åˆæœŸåŒ–(ポート/ペリフェラルå
    267 ¼ç”¨ãƒ”ンのアサインの設定)
     236         *  汎用入出力ポートの初期化(ポート/ペリフェラル兼用ピンのアサインの設定)
    268237         */
    269238        port_initialize();
    270239
    271240        /*
    272          *  ベクタテーブルの設定
     241         *  ベクタテーブルの設定
    273242         */
    274243        /*CP15_WRITE_VBAR((uint32_t) &vector_table);*/
    275244
    276245        /*
    277          *  L2キャッシュコントローラ(PL310)の初期化
     246         *  L2キャッシュコントローラ(PL310)の初期化
    278247         */
    279248        /*pl310_initialize(0x0U, ~0x0U);*/
    280249
    281250        /*
    282          *  LEDを青色に点灯させる
     251         *  LEDを青色に点灯させる
    283252         */
    284253        gr_peach_set_led(GR_PEACH_LED_BLUE, 1);
    285254
    286255        /*
    287          *  低レベル出力用にSIOを初期化
     256         *  低レベル出力用にSIOを初期化
    288257         */
    289258#ifndef TOPPERS_OMIT_TECS
     
    293262
    294263/*
    295  *  ターゲット依存の終了処理
     264 *  ターゲット依存の終了処理
    296265 */
    297266void
     
    301270
    302271        /*
    303          *  チップ依存の終了処理
     272         *  チップ依存の終了処理
    304273         */
    305274        chip_terminate();
    306275
    307276        /*
    308          *  bkpt命令によりデバッガに制御を移す(パラメータが何が良いか未検討)
     277         *  bkpt命令によりデバッガに制御を移す(パラメータが何が良いか未検討)
    309278         */
    310279        if (first){
     
    317286
    318287/*
    319  *  LEDの点灯/消灯
     288 *  LEDの点灯/消灯
    320289 */
    321290void
Note: See TracChangeset for help on using the changeset viewer.