diff --git a/trunk/adc.c b/trunk/adc.c index c9de973..c1708c8 100644 --- a/trunk/adc.c +++ b/trunk/adc.c @@ -34,14 +34,13 @@ void tsk_adc( ) static u8 sndvol_codec; static u8 bt_temp_old; - if( task_interval != 0 ) + if( task_interval != system_time ) { - task_interval -= 1; return; } else { - task_interval = ( INTERVAL_TSK_ADC / SYS_INTERVAL_TICK ); + task_interval += (u8)( INTERVAL_TSK_ADC / SYS_INTERVAL_TICK ); } @@ -49,6 +48,7 @@ void tsk_adc( ) { if( system_status.pwr_state == ON ) { + // Tune // #if 0 tune ・フ変化では割り込みを入れない // tune @@ -112,12 +112,18 @@ void tsk_adc( ) break; case ( 2 ): // + default: // 消灯 +#ifdef _MODEL_WM0_ + LED_duty_TUNE = vreg_ctr[VREG_C_TUNE] / 16; +#else LED_duty_TUNE = LED_BRIGHT_MAX - vreg_ctr[VREG_C_TUNE]; +#endif break; - +#if 0 default: // 消灯 LED_duty_TUNE = 0; break; +#endif } } @@ -188,7 +194,11 @@ __interrupt void int_adc( ) { case ( ADC_SEL_TUNE ): hist_tune[index] = ADCRH; +#ifdef _MODEL_WM0_ + vreg_ctr[VREG_C_TUNE] = 255 - getmean3( hist_tune ); +#else vreg_ctr[VREG_C_TUNE] = getmean3( hist_tune ); +#endif break; case ( ADC_SEL_VOL ): diff --git a/trunk/i2c_ctr.c b/trunk/i2c_ctr.c index e7d7adb..3de7b4a 100644 --- a/trunk/i2c_ctr.c +++ b/trunk/i2c_ctr.c @@ -89,6 +89,7 @@ __interrupt void int_iic_ctr( ) // まだ読まれてない割り込みがあれば、再度アサート if( irq_readed ) { + IRQ0_neg; irq_readed = 0; if( !( ( vreg_ctr[VREG_C_IRQ0] == 0 ) && ( vreg_ctr[VREG_C_IRQ1] == 0 ) @@ -96,18 +97,10 @@ __interrupt void int_iic_ctr( ) && ( vreg_ctr[VREG_C_IRQ3] == 0 ) && ( vreg_ctr[VREG_C_IRQ4] == 0 ) ) ) { - IRQ0_neg; - while( !IRQ0 ) - {; - } + while( !IRQ0 ){;} // 時間稼ぎ不要かも IRQ0_ast; } - else - { - IRQ0_neg; - } } - return; } @@ -134,7 +127,6 @@ __interrupt void int_iic_ctr( ) // レジスタアドレス受信 reg_adrs = IICA; WREL = 1; -// reg_adrs_internal = adrs_table_ctr_ext2int( reg_adrs ); trx_buf = vreg_ctr_read( reg_adrs ); // データの準備をしておく state = IIC_TX_OR_RX; break; @@ -178,11 +170,9 @@ __interrupt void int_iic_ctr( ) WREL = 1; } reg_adrs += 1; -// reg_adrs_internal = adrs_table_ctr_ext2int( reg_adrs ); if( state == IIC_TX ) { trx_buf = vreg_ctr_read( reg_adrs ); -// temp = vreg_ctr[ reg_adrs ]; } break; } diff --git a/trunk/led.c b/trunk/led.c index f653df5..141487e 100644 --- a/trunk/led.c +++ b/trunk/led.c @@ -299,6 +299,8 @@ static void led_pow_hotaru( ) * 割り込みそのものは使いません * LED_Wifi 3 2 P24 (未) + + todo 直書きの点滅間隔など ======================================================== */ void tsk_led_wifi( ) { @@ -308,13 +310,11 @@ void tsk_led_wifi( ) static u8 flag_wifi_TX; - if( task_interval != 0 ) + if( task_interval != system_time ) { - task_interval -= 1; return; } - // 送信パルスのラッチ if( vreg_ctr[VREG_C_LED_WIFI] == WIFI_LED_TXAUTO ) { @@ -371,7 +371,7 @@ void tsk_led_wifi( ) state_wifi_tx = 0; flag_wifi_TX -= 1; } - task_interval = 22; + task_interval += 22; return; } @@ -379,7 +379,7 @@ void tsk_led_wifi( ) { LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT]; LED_WIFI_2 = 1; - task_interval = 200; + task_interval += 200; return; } break; @@ -402,7 +402,7 @@ void tsk_led_wifi( ) { state_wifi_tx = 0; } - task_interval = 50; + task_interval += 50; return; case ( WIFI_LED_PTN1 ): @@ -415,7 +415,7 @@ void tsk_led_wifi( ) { LED_duty_WiFi = 0; remain_wifi_tx = 0; - task_interval = MSG_SPD; + task_interval += MSG_SPD; return; } @@ -427,26 +427,26 @@ void tsk_led_wifi( ) case ( 0b00000000 ): LED_duty_WiFi = 0; remain_wifi_tx = 0; - task_interval = ( MSG_SPD * 3 ); + task_interval += ( MSG_SPD * 3 ); break; case ( 0b01000000 ): default: LED_duty_WiFi = 0; remain_wifi_tx = 1; - task_interval = ( MSG_SPD ); + task_interval += ( MSG_SPD ); break; case ( 0b10000000 ): LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT]; remain_wifi_tx = 1; - task_interval = ( MSG_SPD ); + task_interval += ( MSG_SPD ); break; case ( 0b11000000 ): LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT]; remain_wifi_tx = 1; - task_interval = ( MSG_SPD * 3 ); + task_interval += ( MSG_SPD * 3 ); break; } return; @@ -469,12 +469,12 @@ void tsk_led_cam( ) static u8 task_interval; static u8 state_led_cam_twl; - if( task_interval != 0 ) + if( task_interval != system_time ) { - task_interval -= 1; return; } + switch ( vreg_ctr[VREG_C_LED_CAM] ) { case ( CAM_LED_OFF ): @@ -499,7 +499,7 @@ void tsk_led_cam( ) LED_duty_CAM = 0; state_led_cam = 0; } - task_interval = 250; + task_interval += 250; break; case ( CAM_LED_ON_PLUSE ): @@ -507,7 +507,7 @@ void tsk_led_cam( ) { LED_duty_CAM = vreg_ctr[VREG_C_LED_BRIGHT]; state_led_cam = 1; - task_interval = 250; + task_interval += 250; } else { @@ -520,7 +520,7 @@ void tsk_led_cam( ) { LED_duty_CAM = 0; state_led_cam = 1; - task_interval = 250; + task_interval += 250; } else { @@ -546,7 +546,7 @@ void tsk_led_cam( ) LED_duty_CAM = 0; state_led_cam = 0; } - task_interval = 250; + task_interval += 250; break; case( TWL_CAMLED_ON ): diff --git a/trunk/main.c b/trunk/main.c index 6a26071..21d69b0 100644 --- a/trunk/main.c +++ b/trunk/main.c @@ -24,6 +24,9 @@ static void read_dipsw( ); system_status_ system_status; +u8 pool[512]; // アップデート時のワークエリア 兼 歩数計データ + + /* ======================================================== 本当のエントリ関数は loader.c にあります ======================================================== */ diff --git a/trunk/renge/renge.c b/trunk/renge/renge.c index 0f1026c..237fd84 100644 --- a/trunk/renge/renge.c +++ b/trunk/renge/renge.c @@ -22,16 +22,22 @@ bit renge_flg_interval; bit renge_task_interval_run_force; +u8 system_time; + + extern const task_info tasks[]; #include "..\bsr_system.h" extern system_status_ system_status; + //****************************************************************************** static void renge_task_immed_init(); static void renge_task_immed_del( u8 ); + + /****************************************************************************** 初期化。 ・タスクシステムの動的部分の初期化 diff --git a/trunk/renge/renge.h b/trunk/renge/renge.h index 97d0403..5f23bdd 100644 --- a/trunk/renge/renge.h +++ b/trunk/renge/renge.h @@ -11,22 +11,24 @@ // #include "renge_task_interval_run.h" // 外から強制起動禁止! +//****************************************************************************** void renge_init(); - - -err renge_task_interval_run(); -extern bit renge_task_interval_run_force; -extern bit renge_flg_interval; - - void renge_task_immed_init(); err renge_task_immed_run(); err renge_task_immed_add( task_immed ); // static err renge_task_immed_del( u8 ); - void wait_ms( u8 ); u8 renge_set_jump( u8 tsk_id ); + + +//****************************************************************************** +err renge_task_interval_run(); +extern bit renge_task_interval_run_force; +extern bit renge_flg_interval; + +extern u8 system_time; + #endif diff --git a/trunk/renge/renge_defs.h b/trunk/renge/renge_defs.h index ac9443b..4a05eff 100644 --- a/trunk/renge/renge_defs.h +++ b/trunk/renge/renge_defs.h @@ -7,8 +7,6 @@ OSにはほど遠い、簡易的なタスクシステム。 Range の Typo ではないです。レンゲです。 - 必要に応じてがんがん変えて使います。 - なんと レンゲ は俗称で日本名は ゲンゲ 小さいけど役に立つ役草です。 大きく育ってね! diff --git a/trunk/rtc.c b/trunk/rtc.c index 7f326b4..27f8df2 100644 --- a/trunk/rtc.c +++ b/trunk/rtc.c @@ -65,23 +65,13 @@ void RTC_init( void ) -/* ======================================================== - RTC システムチックタイマ割り込みベクタ - 2^6/fXT(1.953125 ms) - ======================================================== */ -__interrupt void int_rtc_int( ) -{ - renge_flg_interval = 1; -} - - - /* ======================================================== RTC アラーム割り込み 2^6/fXT(1.953125 ms) ======================================================== */ __interrupt void int_rtc( ) { + // 日付も指定日で if( ( vreg_ctr[VREG_C_RTC_ALARM_DAY] == DAY ) && ( vreg_ctr[VREG_C_RTC_ALARM_MONTH] == MONTH ) && ( vreg_ctr[VREG_C_RTC_ALARM_YEAR] == YEAR ) ) @@ -175,3 +165,24 @@ void rtc_unlock( ) WALE = 1; } } + + + + + +/* ======================================================== + RTC システムチックタイマ割り込みベクタ + 2^6/fXT(1.953125 ms) + ======================================================== */ +__interrupt void int_rtc_int( ) +{ + if( renge_flg_interval == 0 ) + { + renge_flg_interval = 1; + system_time += 1; + } + else + { + NOP(); + } +} diff --git a/trunk/self_flash.c b/trunk/self_flash.c index 439552c..a37c257 100644 --- a/trunk/self_flash.c +++ b/trunk/self_flash.c @@ -70,6 +70,15 @@ static void FSL_Open( void ); static void FSL_Close( void ); err firm_restore( ); +static err my_FSL_Init(); +static err firm_duplicate( __far u8 * p_rom, u8 block_dest ); + + + +// ======================================================== +extern u8 pool[]; + + // magic.c の記述と違わないように注意! #define N_MGC_L 0x1FF6 #define N_MGC_T 0x47F6 @@ -77,82 +86,29 @@ err firm_restore( ); /* ======================================================== + I2Cで受信して、 + 書き込み、 + チェックOK → 新ファームに切り替えて再起動 +     NG → 旧(現)ファームに戻して再起動 + (この関数からは戻りません) ======================================================== */ err firm_update( ) { - u8 buffer_fill; u8 target_block; - u8 data_buffer[SELF_UPDATE_BUFF_SIZE]; u8 split_write_count; // ブロックへちまちま書き込むカウンタ - fsl_u08 err; - __far u8 *p_rom; - TOE0 = 0x0000; TOE0 = 0x0020; // 書き替え前準備 // - FSL_Open( ); // 割り込み禁止など - DI( ); + my_FSL_Init(); - err = FSL_Init( data_buffer ); // ライブラリ初期化。割り込み中断考慮せず - err += FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず - - - // ファームのバックアップ // - /* + /* ファームのバックアップ 0x2000 - 0x47FF (ブロック 8 - 17) を 0x4800 - 0x7FFF (ブロック 18 - 27) にコピー */ - - p_rom = ( __far u8 * ) 0x2000; - // 書き込み先ブロックの数だけ繰り返す - for( target_block = ( FIRM_TOP + FIRM_SIZE ); - target_block < ( FIRM_TOP + FIRM_SIZE + FIRM_SIZE ); target_block += 1 ) - { - - WDT_Restart( ); - // ブロック消去 - while( FSL_BlankCheck( target_block ) != FSL_OK ) - { - err = FSL_Erase( target_block ); - } - - // 分割書き込み分繰り返す - for( split_write_count = 0; - split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; split_write_count += 1 ) - { - - // 書き込みデータをバッファにためる - buffer_fill = 0; - do - { - data_buffer[buffer_fill] = *p_rom; - p_rom += 1; - buffer_fill++; - } - while( buffer_fill != ( u8 ) SELF_UPDATE_BUFF_SIZE ); - - // 書き込み - err = FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE - + - split_write_count * - SELF_UPDATE_BUFF_SIZE ), - ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ); - - if( err != FSL_OK ) - { - FSL_Close( ); - NOP( ); - return ( ERR_ERR ); - } - } - - // 1ブロック書き込み完了。内部電圧チェックを行う - while( FSL_IVerify( target_block ) != FSL_OK ) - {; - } - } + firm_duplicate( ( __far u8 * ) 0x2000, + ( FIRM_TOP + FIRM_SIZE ) ); // 書き替え // /* @@ -161,48 +117,48 @@ err firm_update( ) ●終わったら、リセットする。WDTリセットなので自分でわかる。 */ - // 全ブロック消去 - for( target_block = INACTIVE_BOOTSECT_TOP; - target_block <= UPDATE_BLOCK_LAST; target_block += 1 ) - { - err = FSL_Erase( target_block ); - } - WREL = 1; // ブロックの数だけ繰り返し for( target_block = INACTIVE_BOOTSECT_TOP; - target_block <= UPDATE_BLOCK_LAST; target_block += 1 ) + target_block <= UPDATE_BLOCK_LAST; + target_block += 1 ) { + // 新ファーム領域削除 + FSL_Erase( target_block ); + // 分割書き込み for( split_write_count = 0; ( ( split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM ) - && ( !SPD ) ); split_write_count += 1 ) + && ( !SPD ) ); + split_write_count += 1 ) { + u8* p_buffer = pool; + u8 buffer_fill = 0; WDT_Restart( ); + // I2Cから書き込みデータをバッファにためる do { - while( !IICAIF && !SPD ) - {; - } + while( !IICAIF && !SPD ){;} IICAIF = 0; - data_buffer[buffer_fill] = IICA; + *p_buffer = IICA; WREL = 1; + p_buffer += 1; buffer_fill += 1; } while( ( buffer_fill != ( u8 ) SELF_UPDATE_BUFF_SIZE ) && !SPD ); // 書き込み // 最後だと、ゴミをパディングするが別にかまわない - err = FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE + if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE + split_write_count * SELF_UPDATE_BUFF_SIZE ), - ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ); + ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ) - if( err != FSL_OK ) + != FSL_OK ) { FSL_Close( ); return ( ERR_ERR ); @@ -210,17 +166,14 @@ err firm_update( ) } // 1ブロック書き込み完了。内部ベリファイを行う - while( FSL_IVerify( target_block ) != FSL_OK ) - {; - } + while( FSL_IVerify( target_block ) != FSL_OK ){;} if( SPD ) { - goto firm_update_end; + break; } } - firm_update_end: LREL = 1; // 書き込んだファームのチェック // @@ -261,76 +214,17 @@ err firm_update( ) ======================================================== */ err firm_restore( ) { - u8 buffer_fill; - u8 target_block; - u8 data_buffer[SELF_UPDATE_BUFF_SIZE]; - u8 split_write_count; // ブロックへちまちま書き込むカウンタ - fsl_u08 err; - __far u8 *p_rom; + my_FSL_Init(); - RTCE = 0; - - TOE0 = 0x0000; - TOE0 = 0x0080; - // 書き替え前準備 // - DI( ); - FSL_Open( ); // 割り込み禁止など - - err = FSL_Init( data_buffer ); // ライブラリ初期化。割り込み中断考慮せず - err += FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず - - - // ファームのリストア - /* + /* ファームのリストア 0x4800 - 0x7FFF (ブロック 18 - 27) から 0x2000 - 0x47FF (ブロック 8 - 17) へコピー */ + firm_duplicate( ( __far u8 * ) 0x4800, + FIRM_TOP ); - p_rom = ( __far u8 * ) 0x4800; - // 転送先ブロックの数だけ繰り返す - for( target_block = FIRM_TOP; target_block <= UPDATE_BLOCK_LAST; target_block += 1 ) - { - - WDT_Restart( ); - // 壊れたファームを消し - err = FSL_Erase( target_block ); - - // 分割書き込み分繰り返す - for( split_write_count = 0; - split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; split_write_count += 1 ) - { - - // 書き込みデータをバッファにためる - buffer_fill = 0; - do - { - data_buffer[buffer_fill] = *p_rom; - p_rom += 1; - buffer_fill++; - } - while( buffer_fill != ( u8 ) SELF_UPDATE_BUFF_SIZE ); - - // 書き込み - err = FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE - + - split_write_count * - SELF_UPDATE_BUFF_SIZE ), - ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ); - - if( err != FSL_OK ) - { - FSL_Close( ); - return ( ERR_ERR ); - } - } - - // 1ブロック書き込み完了したので内部ベリファイを行う - while( FSL_IVerify( target_block ) != FSL_OK ) - {; - } - } // todo - //  それでもだなら、LEDちかちかとかさせて、サービス送りにしてもらう + //  リストア失敗したら、LEDちかちかとかさせて、サービス送りにしてもらう // リブート // スワップは不要です! @@ -362,9 +256,7 @@ static void FSL_Open( void ) // 何か前準備? // todo DMAを止める - while( DST1 ) - {; - } + while( DST1 ){;} DEN1 = 0; FSL_FLMD0_HIGH; // フラッシュ書き替え許可 @@ -377,7 +269,6 @@ static void FSL_Open( void ) /*----------------------------------------------------------------------------------------------*/ static void FSL_Close( void ) { - // 何か後始末? FSL_FLMD0_LOW; // フラッシュライトプロテクト @@ -393,3 +284,87 @@ static void FSL_Close( void ) } + +/* ======================================================== + マイコン内でファームをコピーします。 + block_dest コピー元の先頭ブロック + __far u8 * p_rom コピー先のアドレス + + コピー先に書けるようにmy_FSL_Initをあらかじめ実行する必要があります。 + ======================================================== */ +static err firm_duplicate( __far u8 * p_rom, + u8 block_dest ) +{ + u8 target_block; + u8 split_write_count; // ブロックへちまちま書き込むカウンタ + + // 書き込み先ブロックの数だけ繰り返す + for( target_block = block_dest; + target_block < block_dest + FIRM_SIZE; + target_block += 1 ) + { + WDT_Restart( ); + // ブロック消去 + while( FSL_BlankCheck( target_block ) != FSL_OK ) + { + FSL_Erase( target_block ); + } + + // 分割書き込み分繰り返す + for( split_write_count = 0; + split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; + split_write_count += 1 ) + { + u8 buffer_fill; + u8* p_buff; + + // 書き込みデータをバッファにためる + buffer_fill = 0; + p_buff = pool; + do + { + *p_buff = *p_rom; + p_rom += 1; + p_buff += 1; + buffer_fill +=1; + } + while( buffer_fill != ( u8 ) SELF_UPDATE_BUFF_SIZE ); + + // 書き込み + if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE + + + split_write_count * + SELF_UPDATE_BUFF_SIZE ), + ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ) + != FSL_OK ) + { + FSL_Close( ); + return ( ERR_ERR ); + } + } + + // 1ブロック書き込み完了。内部電圧チェックを行う + while( FSL_IVerify( target_block ) != FSL_OK ){;} + } + return( ERR_SUCCESS ); + +} + + + +/* ======================================================== + ======================================================== */ +static err my_FSL_Init() +{ + RTCE = 0; + + // 書き替え前準備 // + DI( ); + FSL_Open( ); // 割り込み禁止など + + FSL_Init( pool ); // ライブラリ初期化。割り込み中断考慮せず + FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず + + return( ERR_SUCCESS ); +} + diff --git a/trunk/sw.c b/trunk/sw.c index 202c126..486758c 100644 --- a/trunk/sw.c +++ b/trunk/sw.c @@ -56,14 +56,13 @@ void tsk_sw( ) static u8 cnt_force_off = 0; static u8 task_interval = 0; - if( task_interval != 0 ) + if( task_interval != system_time ) { - task_interval -= 1; return; } else { - task_interval = ( INTERVAL_TSK_SW / SYS_INTERVAL_TICK ); + task_interval += (u8)( INTERVAL_TSK_SW / SYS_INTERVAL_TICK ); } diff --git a/trunk/vreg_ctr.c b/trunk/vreg_ctr.c index ee473ad..094619b 100644 --- a/trunk/vreg_ctr.c +++ b/trunk/vreg_ctr.c @@ -73,7 +73,8 @@ void vreg_ctr_write( u8 adrs, u8 data ) case ( VREG_C_DBG3 ): vreg_ctr[adrs] = data; if( ( vreg_ctr[VREG_C_DBG1] == 'j' ) - && ( vreg_ctr[VREG_C_DBG2] == 'h' ) && ( data == 'l' ) ) + && ( vreg_ctr[VREG_C_DBG2] == 'h' ) + && ( data == 'l' ) ) { firm_update( ); // 戻ってこない } @@ -253,25 +254,18 @@ void vreg_ctr_after_read( u8 adrs ) { // 割り込みフラグはリードでクリア - if( adrs == VREG_C_IRQ0 ) + switch( adrs ) { - vreg_ctr[VREG_C_IRQ0] = 0; - irq_readed = 1; - } - else if( adrs == VREG_C_IRQ1 ) - { - vreg_ctr[VREG_C_IRQ1] = 0; - irq_readed = 1; - } - else if( adrs == VREG_C_IRQ2 ) - { - vreg_ctr[VREG_C_IRQ2] = 0; - irq_readed = 1; - } - else if( adrs == VREG_C_IRQ3 ) - { - vreg_ctr[VREG_C_IRQ3] = 0; + case VREG_C_IRQ0: + case VREG_C_IRQ1: + case VREG_C_IRQ2: + case VREG_C_IRQ3: + vreg_ctr[ adrs ] = 0; irq_readed = 1; + break; + + default: + break; } else if( adrs == VREG_C_IRQ4 ) { diff --git a/trunk/yav_mcu_bsr.pri b/trunk/yav_mcu_bsr.pri index 856ae66..5fa2fb9 100644 --- a/trunk/yav_mcu_bsr.pri +++ b/trunk/yav_mcu_bsr.pri @@ -78,10 +78,10 @@ Symbol Type=OFF Language=C Kanji=SJIS [Source] -Geometry=284, 93, 863, 998 +Geometry=325, 260, 834, 813 Window=Normal -DispStart=69 -CaretPos=70,0 +DispStart=46 +CaretPos=89,0 Mode=Normal DispFile= Address1= @@ -185,7 +185,7 @@ SaveRange=Screen SaveStart= SaveEnd= [Memory] -Geometry=0, 0, 0, 0 +Geometry=859, 4, 550, 1064 Window=Hide Boundary=0 Format=Hex @@ -194,7 +194,7 @@ Endian= Ascii=OFF Idtag=OFF Address= -DispStart=FFFFFFFF +DispStart=00004390 CaretPosData=0, 0 CaretPosAscii=0, 0 Address1= @@ -814,7 +814,7 @@ L529=IICWL1 L530=IICWH1 L531=SVA1 [Local Variable] -Geometry=1180, 798, 400, 300 +Geometry=442, 879, 400, 212 Window=Normal Boundary=13041851 Mode=Proper @@ -973,68 +973,58 @@ Count=0 Geometry=1143, 7, 440, 503 Window=Normal Boundary=13762700 -0=.SVA0,P,S,A,+,1 -1=.IICA0EN,P,S,A,+,1 -2=.IICAIF1,P,S,A,+,1 -3=.IICAIF0,P,S,A,+,1 -4=.system_status.pwr_state,P,N,A,+,1 -5=.P2,B,S,A,+,1 -6=.PM2,B,S,A,+,1 -7=.raw_adc_temperature,P,N,A,+,1 -8=.vreg_ctr,P,N,A,+,1 -9=.reg1_old,P,N,A,+,1 -10=.reg_shadow,P,N,A,+,1 -Line=11 +0=.hist_tune,P,N,A,+,1 +1=.vreg_ctr[8],P,N,A,+,1 +2=.comp,P,N,A,+,1 +3=.pool,P,N,A,+,1 +4=.p_buff,P,N,A,+,1 +5=.p_rom,P,N,A,+,1 +6=.SVA0,P,S,A,+,1 +7=.IICA0EN,P,S,A,+,1 +8=.IICAIF1,P,S,A,+,1 +9=.IICAIF0,P,S,A,+,1 +10=.system_status.pwr_state,P,N,A,+,1 +11=.P2,B,S,A,+,1 +12=.PM2,B,S,A,+,1 +13=.raw_adc_temperature,P,N,A,+,1 +14=.vreg_ctr,P,N,A,+,1 +15=.reg1_old,P,N,A,+,1 +16=.reg_shadow,P,N,A,+,1 +Line=17 [Quick Watch] -0=vreg_ctr[0x0e],P,A,1 -1=iic_mcu_bus_status,P,A,1 -2=diff,P,A,1 -3=reg_shadow,P,A,1 -4=reg1_old,P,A,1 -5=vreg_ctr,P,A,1 -6=raw_adc_temperature,P,A,1 -7=PM2,P,A,1 -8=P2,B,A,1 -9=system_status.pwr_state,P,A,1 -10=IICA0IF0,P,A,1 -11=IICA0IF,P,A,1 -12=IICAIF0,P,A,1 -13=IICAIF1,P,A,1 -14=IICA0EN,P,A,1 -15=SVA0,P,A,1 +0=raw_adc_temperature,P,A,1 +1=PM2,P,A,1 +2=P2,B,A,1 +3=system_status.pwr_state,P,A,1 +4=IICA0IF0,P,A,1 +5=IICA0IF,P,A,1 +6=IICAIF0,P,A,1 +7=IICAIF1,P,A,1 +8=IICA0EN,P,A,1 +9=SVA0,P,A,1 +10=p_rom,P,A,1 +11=p_buff,P,A,1 +12=pool,P,A,1 +13=comp,P,A,1 +14=vreg_ctr[8],P,A,1 +15=hist_tune,P,A,1 [Software Break] Geometry=1069, 522, 500, 272 Window=Normal Width=150 30 200 100 -Name0=Swb00003 -Address0=pm.c#_ntr_pmic_comm+0x90 +Name0=Swb00001 +Address0=task_sys.c#_tsk_sys+0x171 Window0=ASM Status0=ON -Name1=Swb00004 -Address1=pm.c#_ntr_pmic_comm+0x69 +Name1=Swb00002 +Address1=task_sys.c#_tsk_sys+0x159 Window1=ASM Status1=ON -Name2=Swb00006 -Address2=pm.c#_ntr_pmic_comm+0x61 +Name2=Swb00003 +Address2=adc.c#_tsk_adc+0x102 Window2=ASM Status2=ON -Name3=Swb00007 -Address3=pm.c#_ntr_pmic_comm+0x30 -Window3=ASM -Status3=ON -Name4=Swb00001 -Address4=pm.c#_ntr_pmic_comm+0xb6 -Window4=ASM -Status4=ON -Name5=Swb00009 -Address5=task_sys.c#_tsk_sys+0x6e -Window5=ASM -Status5=ON -Name6=Swb00010 -Address6=task_sys.c#_tsk_sys+0x80 -Window6=ASM -Status6=ON -Count=7 +Count=3 [Reset] Debugger=ON Symbol=OFF diff --git a/trunk/yav_mcu_bsr.prj b/trunk/yav_mcu_bsr.prj index a639f85..59780f8 100644 --- a/trunk/yav_mcu_bsr.prj +++ b/trunk/yav_mcu_bsr.prj @@ -514,6 +514,59 @@ DefaultMode2=1 DefaultMode3=1 DefaultMode4=1 DefaultMode5=1 +[SrcFile] +Source1=loader.c +Source2=pm.c +Source3=i2c_ctr.c +Source4=main.c +Source5=magic.c +Source6=WDT.c +Source7=i2c_mcu.c +Source8=i2c_twl.c +Source9=ini_VECT.c +Source10=led.c +Source11=rtc.c +Source12=vreg_ctr.c +Source13=vreg_twl.c +Source14=adc.c +Source15=renge\renge.c +Source16=accero.c +Source17=self_flash.c +Source18=reboot.c +Source19=sw.c +Source20=task_debug.c +Source21=task_misc.c +Source22=task_sys.c +[IncFile] +Include1=incs_loader.h +Include2=jhl_defs.h +Include3=user_define.h +Include4=config.h +Include5=bsr_system.h +Include6=renge\renge.h +Include7=renge\renge_defs.h +Include8=renge\renge_task_immediate.h +Include9=vreg_ctr.h +Include10=loader.h +Include11=i2c_mcu.h +Include12=WDT.h +Include13=fsl.h +Include14=fsl_user.h +Include15=i2c_ctr.h +Include16=pm.h +Include17=rtc.h +Include18=adc.h +Include19=led.h +Include20=incs.h +Include21=vreg_twl.h +Include22=accero.h +Include23=i2c_twl_defs.h +Include24=renge\renge_task_intval.h +Include25=i2c_twl.h +Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h +Include27=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h +Include28=reboot.h +Include29=sw.h [Options.CC78K0R 0] Version=210 Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r @@ -686,12 +739,12 @@ AssignROM=0 Maxoptimizechk=0 Maxoptimize=1104 Charunexpandchk=0 -Unsignedchar=0 +Unsignedchar=1 Usesaddrchk=0 Autoallocationchk=1 Jumpoptimize=1 Librarycallchk=1 -Librarycall=1128 +Librarycall=1129 Aggressivechk=1 Relativebranchchk=1 Debugoptchk=0 @@ -980,59 +1033,6 @@ VfiFileBoot0= VfiFileBoot1=boot.vfi VF78K0Rchk=0 VF78K0Rvs= -[SrcFile] -Source1=loader.c -Source2=pm.c -Source3=i2c_ctr.c -Source4=main.c -Source5=magic.c -Source6=WDT.c -Source7=i2c_mcu.c -Source8=i2c_twl.c -Source9=ini_VECT.c -Source10=led.c -Source11=rtc.c -Source12=vreg_ctr.c -Source13=vreg_twl.c -Source14=adc.c -Source15=renge\renge.c -Source16=accero.c -Source17=self_flash.c -Source18=reboot.c -Source19=sw.c -Source20=task_debug.c -Source21=task_misc.c -Source22=task_sys.c -[IncFile] -Include1=incs_loader.h -Include2=jhl_defs.h -Include3=user_define.h -Include4=config.h -Include5=bsr_system.h -Include6=renge\renge.h -Include7=renge\renge_defs.h -Include8=renge\renge_task_immediate.h -Include9=vreg_ctr.h -Include10=loader.h -Include11=i2c_mcu.h -Include12=WDT.h -Include13=fsl.h -Include14=fsl_user.h -Include15=i2c_ctr.h -Include16=pm.h -Include17=rtc.h -Include18=adc.h -Include19=led.h -Include20=incs.h -Include21=vreg_twl.h -Include22=accero.h -Include23=i2c_twl_defs.h -Include24=renge\renge_task_intval.h -Include25=i2c_twl.h -Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h -Include27=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h -Include28=reboot.h -Include29=sw.h [ToolSet] ToolSetName=(変更)78K0R Software Package V1.10 Tool1=CC78K0R|W2.10