Ignore:
Timestamp:
Jun 10, 2015, 8:40:31 PM (9 years ago)
Author:
coas-nagasima
Message:

SHIFT_JISのコードにcharsetプロパティを付けた

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/src/ukadecot/data_flash.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚ƁD
    21  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    24  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    26  *        •ñ‚·‚邱‚ƁD
    27  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    3228 *
    33  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    34  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    35  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *  ƒTƒ“ƒvƒ‹ƒvƒƒOƒ‰ƒ€(1)‚Ì–{‘Ì
     39 *  サンプルプログラム(1)の本体
    4440 */
    4541
     
    129125        ER ret;
    130126
    131         /* E2ƒf[ƒ^ƒtƒ‰ƒbƒVƒ
    132 ‚̓ǂݍž‚Ý‹–‰Â */
     127        /* E2データフラッシュの読み込み許可 */
    133128        sil_wrh_mem(FLASH_DFLRE0_ADDR, 0x2DFF);
    134129        sil_wrh_mem(FLASH_DFLRE1_ADDR, 0xD2FF);
    135         /* E2ƒf[ƒ^ƒtƒ‰ƒbƒVƒ
    136 ‚̏‘‚«ž‚Ý‹–‰Â */
     130        /* E2データフラッシュの書き込み許可 */
    137131        sil_wrh_mem(FLASH_DFLWE0_ADDR, 0x1EFF);
    138132        sil_wrh_mem(FLASH_DFLWE1_ADDR, 0xE1FF);
     
    141135        fcu_check_frdy(240000);
    142136
    143         /* ƒGƒ‰[Šm”F */
     137        /* エラー確認 */
    144138        fcu_check_error();
    145139
    146         /* FCUƒtƒ@[ƒ€ƒEƒFƒA‚̃Rƒs[ */
     140        /* FCUファームウェアのコピー */
    147141        fcu_copy_firm();
    148142
    149         /* P/Eƒ‚[ƒhˆÚs */
     143        /* P/Eモード移行 */
    150144        fcu_pe_mode();
    151145
    152         /* P/E ƒm[ƒ}ƒ‹ƒ‚[ƒhˆÚs */
     146        /* P/E ノーマルモード移行 */
    153147        *((uint8_t *)DATA_FLASH_BASE_ADDR) = 0xFF;
    154148
    155         /* ƒGƒ‰[Šm”F */
     149        /* エラー確認 */
    156150        fcu_check_error();
    157151
    158         /* Žü•ÓƒNƒƒbƒN’Ê’mƒRƒ}ƒ“ƒh”­s */
     152        /* 周辺クロック通知コマンド発行 */
    159153        ret = fcu_notify_clock();
    160154
    161         /* ƒŠ[ƒhƒ‚[ƒhˆÚs */
     155        /* リードモード移行 */
    162156        fcu_read_mode();
    163157
     
    170164        uint16_t *dst = (uint16_t *)data;
    171165
    172         /* P/Eƒ‚[ƒhˆÚs */
     166        /* P/Eモード移行 */
    173167        fcu_pe_mode();
    174168
    175         /* —LŒøƒf[ƒ^ƒ`ƒFƒbƒN */
     169        /* 有効データチェック */
    176170        if(!fcu_check_valid(blockno)){
    177                 /* ƒŠ[ƒhƒ‚[ƒhˆÚs */
     171                /* リードモード移行 */
    178172                fcu_read_mode();
    179173                return E_OBJ;
    180174        }
    181175
    182         /* ƒŠ[ƒhƒ‚[ƒhˆÚs */
     176        /* リードモード移行 */
    183177        fcu_read_mode();
    184178
     
    186180        end = &wa[DATA_FLASH_BLOCK_SIZE/sizeof(uint16_t)];
    187181
    188         /* “ǂݏo‚µ */
     182        /* 読み出し */
    189183        for(; wa < end; wa++, dst++){
    190184                *dst = *wa;
     
    198192        bool_t ret = true;
    199193
    200         /* P/Eƒ‚[ƒhˆÚs */
     194        /* P/Eモード移行 */
    201195        fcu_pe_mode();
    202196
    203         /* ƒuƒ‰ƒ“ƒNƒ`ƒFƒbƒN */
     197        /* ブランクチェック */
    204198        if(!fcu_check_blank(blockno)){
    205                 /* ƒuƒ‰ƒ“ƒN‚Å‚È‚¢‚È‚çƒuƒƒbƒNÁ‹Ž */
     199                /* ブランクでないならブロック消去 */
    206200                ret = fcu_erase(blockno);
    207201                if(!ret)
     
    210204
    211205        if(ret){
    212                 /* ‘‚«ž‚Ý */
     206                /* 書き込み */
    213207                ret = fcu_write(blockno, data);
    214208                if(!ret)
     
    216210        }
    217211
    218         /* ƒŠ[ƒhƒ‚[ƒhˆÚs */
     212        /* リードモード移行 */
    219213        fcu_read_mode();
    220214
     
    226220        unsigned int *src, *dst, *end;
    227221
    228         /* ƒŠ[ƒhƒ‚[ƒhˆÚs */
     222        /* リードモード移行 */
    229223        if(sil_reh_mem(FLASH_FENTRYR_ADDR) != 0)
    230224                sil_wrh_mem(FLASH_FENTRYR_ADDR, 0xAA00);
    231225
    232         /* FCU RAMƒAƒNƒZƒX‹–‰Â */
     226        /* FCU RAMアクセス許可 */
    233227        sil_wrh_mem(FLASH_FCURAME_ADDR, 0xC401);
    234228
    235         /* FCUƒtƒ@[ƒ€ƒEƒFƒA‚ðFCU RAM‚ɃRƒs[ */
     229        /* FCUファームウェアをFCU RAMにコピー */
    236230        src = (unsigned int *)FCU_FIRMWARE_ADDR;
    237231        dst = (unsigned int *)FCU_RAM_ADDR;
     
    249243        wa = (volatile uint16_t *)ra;
    250244
    251         /* Žü”g”‚ðÝ’è */
     245        /* 周波数を設定 */
    252246        sil_wrh_mem(FLASH_PCKAR_ADDR, 48/*FREQ_PCLK / 1000*/);
    253247
    254         /* Žü•ÓƒNƒƒbƒN’Ê’mƒRƒ}ƒ“ƒh”­s */
     248        /* 周辺クロック通知コマンド発行 */
    255249        *ra = 0xE9;
    256250        *ra = 0x03;
     
    260254        *ra = 0xD0;
    261255
    262         /* 120ƒÊs */
     256        /* 120μs */
    263257        fcu_check_frdy(120);
    264258
    265         /* ƒGƒ‰[Šm”F */
     259        /* エラー確認 */
    266260        return !fcu_check_error();
    267261}
    268262
    269263/*
    270  * ƒŠ[ƒhƒ‚[ƒhˆÚs
     264 * リードモード移行
    271265 */
    272266static void fcu_read_mode()
     
    290284
    291285/*
    292  * P/Eƒ‚[ƒhˆÚs
     286 * P/Eモード移行
    293287 */
    294288static void fcu_pe_mode()
     
    309303        for(wa = (volatile uint16_t *)ra; wa < end; wa++, src++)
    310304        {
    311                 /* ƒvƒƒOƒ‰ƒ€ƒRƒ}ƒ“ƒh”­s */
     305                /* プログラムコマンド発行 */
    312306                *ra = 0xE8;
    313307                *ra = 0x01;
     
    315309                *ra = 0xD0;
    316310
    317                 /* 2ms~1.1 */
     311                /* 2ms×1.1 */
    318312                fcu_check_frdy(2200);
    319313
    320                 /* ƒGƒ‰[Šm”F */
     314                /* エラー確認 */
    321315                if(fcu_check_error())
    322316                        return false;
     
    332326        ra = (volatile uint8_t *)(DATA_FLASH_BLOCK_SIZE * blockno + (intptr_t)DATA_FLASH_BASE_ADDR);
    333327
    334         /* ƒCƒŒ[ƒXƒRƒ}ƒ“ƒh”­s */
     328        /* イレースコマンド発行 */
    335329        *ra = 0x20;
    336330        *ra = 0xD0;
    337331
    338         /* 20ms~1.1 */
     332        /* 20ms×1.1 */
    339333        fcu_check_frdy(22000);
    340334
    341         /* ƒGƒ‰[Šm”F */
     335        /* エラー確認 */
    342336        return !fcu_check_error();
    343337}
     
    361355                *ra = 0xD0;
    362356
    363                 /* 30ƒÊs~1.1 */
     357                /* 30μs×1.1 */
    364358                fcu_check_frdy(33);
    365359
    366                 /* ƒGƒ‰[Šm”F */
     360                /* エラー確認 */
    367361                if(fcu_check_error())
    368362                        return false;
    369363
    370                 /* ƒuƒ‰ƒ“ƒNŠm”F */
     364                /* ブランク確認 */
    371365                if((sil_reh_mem(FLASH_DFLBCSTAT_ADDR) & FLASH_DFLBCSTAT_BCST_BIT) != 0)
    372366                        return false;
     
    394388                *ra = 0xD0;
    395389
    396                 /* 30ƒÊs~1.1 */
     390                /* 30μs×1.1 */
    397391                fcu_check_frdy(33);
    398392
    399                 /* ƒGƒ‰[Šm”F */
     393                /* エラー確認 */
    400394                if(fcu_check_error())
    401395                        return false;
    402396
    403                 /* ƒuƒ‰ƒ“ƒNŠm”F */
     397                /* ブランク確認 */
    404398                if((sil_reh_mem(FLASH_DFLBCSTAT_ADDR) & FLASH_DFLBCSTAT_BCST_BIT) == 0)
    405399                        return false;
     
    423417                }
    424418
    425                 /* ƒXƒe[ƒ^ƒXƒNƒŠƒAƒRƒ}ƒ“ƒh”­s */
     419                /* ステータスクリアコマンド発行 */
    426420                *((uint8_t *)DATA_FLASH_BASE_ADDR) = 0x50;
    427421        }
     
    437431
    438432        for(i = 0; i < tWAIT; i++){
    439                 /* €”õŠ®—¹‚È‚çI—¹ */
     433                /* 準備完了なら終了 */
    440434                if((sil_reb_mem(FLASH_FSTATR0_ADDR) & FLASH_FSTATR0_FRDY_BIT) != 0)
    441435                        return true;
    442436
    443                 /* 1ƒÊs? */
     437                /* 1μs? */
    444438                for(j = 0; j < 100; j++);
    445439        }
     
    447441        syslog(LOG_WARNING, "fcu_check_frdy timeout");
    448442
    449         /* FCU‰Šú‰» */
     443        /* FCU初期化 */
    450444        fcu_init();
    451445
     
    459453        sil_wrh_mem(FLASH_FRESETR_ADDR, 0xCC01);
    460454
    461         // 200ƒÊs? */
     455        // 200μs? */
    462456        for(j = 0; j < 20000; j++);
    463457
Note: See TracChangeset for help on using the changeset viewer.