diff --git a/trunk/led.c b/trunk/led.c index bc154dc..57470a0 100644 --- a/trunk/led.c +++ b/trunk/led.c @@ -521,9 +521,6 @@ void tsk_led_notify( ) LED_duty_notify_blu = 0; LED_duty_notify_red = 0; LED_duty_notify_grn = 0; - LED_dim_status_info_R.to = 0; - LED_dim_status_info_G.to = 0; - LED_dim_status_info_B.to = 0; LED_dim_status_info_R.now = 0; LED_dim_status_info_G.now = 0; LED_dim_status_info_B.now = 0; diff --git a/trunk/loader.c b/trunk/loader.c index b2c24cc..04aff14 100644 --- a/trunk/loader.c +++ b/trunk/loader.c @@ -128,18 +128,16 @@ void main( ) { volatile u8 my_resf = RESF; // ←読むと消え、生存区間の関係 if( ( my_resf & REG_BIT_RESF_WDT ) != 0 ) - // 0x80 : TRAP { vreg_ctr[ VREG_C_MCU_STATUS ] |= REG_BIT_STATUS_WDT_RESET; // set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET ); // ↑I2Cの初期化後に行う system_status.reboot = 1; } -/* - else if(( my_resf & REG_BIT_RESF_TRAP ) != 0 ) // 'r'で再起動 + else if( ( my_resf & REG_BIT_RESF_TRAP ) != 0 ) // ( FSL_ForceReset, 'r' ) { + system_status.reboot = 1; } -*/ /* else if(( my_resf & REG_BIT_RESF_LVI ) != 0 ) { diff --git a/trunk/pedo_alg_thre_det2.c b/trunk/pedo_alg_thre_det2.c index 4997042..fc4e611 100644 --- a/trunk/pedo_alg_thre_det2.c +++ b/trunk/pedo_alg_thre_det2.c @@ -191,6 +191,8 @@ u8 last_month = 0x12; u8 last_year = 0x99; u8 now_min; u8 now_sec; +u8 log_year; + #define HOSU_NODATA 0xFFFF #define HOSU_MAX 0xFFFE @@ -223,7 +225,7 @@ static void hosu_increment() DI(); RWAIT = 1; while( !RWST ){;} - now_year = bcdtob( YEAR ); + log_year = now_year = bcdtob( YEAR ); // 履歴読み出し時に使用。BCDのままでよい last_hour = HOUR; @@ -240,6 +242,7 @@ static void hosu_increment() if( now_longhour == 65535 ) { now_longhour = ( ( 365 + (( now_year & 0x03 ) == 1 ? 1: 0 )) * 24 ) -1; + now_year -= 1; } // 歩数計が止まっていた時間を考慮して必要なら進める // @@ -372,7 +375,7 @@ u8 hosu_read( ) case( 3 ): iic_burst_state += 1; - return( btobcd( last_year ) ); + return( btobcd( log_year ) ); case( 4 ): iic_burst_state += 1; diff --git a/trunk/pm.c b/trunk/pm.c index 82ea0b2..e27eebc 100644 --- a/trunk/pm.c +++ b/trunk/pm.c @@ -83,38 +83,24 @@ void tsk_batt( ) // アダプタステータス更新 ///////// { - static u8 anti_chatter; - static bit pm_extdc_old; - u8 temp_EXT_DC; + static u8 pm_extdc_old; + u8 temp_pm_extdc; - temp_EXT_DC = !PM_EXTDC_n; // volatileのため - - if( pm_extdc_old == temp_EXT_DC ) + temp_pm_extdc = !PM_EXTDC_n; // volatileのため + if( pm_extdc_old != temp_pm_extdc ) { - anti_chatter = 0; - } - else - { - if( anti_chatter < 4 ) // 電池無しでアダプタさすとCHG_ENがぱたぱたするので + pm_extdc_old = temp_pm_extdc; + if( temp_pm_extdc ) { - anti_chatter++; + set_bit( 1, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY ); + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_CONNECT ); + chg_led_override = (u8)( 1000 / INTERVAL_TSK_BATT / SYS_INTERVAL_TICK ); } else { - // アダプタの情報など更新 - pm_extdc_old = temp_EXT_DC; - if( pm_extdc_old ) - { - set_bit( 1, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY ); - set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_CONNECT ); - chg_led_override = (u8)( 1000 / INTERVAL_TSK_BATT / SYS_INTERVAL_TICK ); - } - else - { - set_bit( 0, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY ); - set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_DISC ); - chg_led_override = 0; - } + set_bit( 0, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY ); + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_DISC ); + chg_led_override = 0; } } } @@ -182,7 +168,7 @@ void tsk_batt( ) } else { - if( anti_chatter < 4 ) // 電池無しでアダプタさして、電極をさわさわ + if( anti_chatter < 2 ) // 電池無しでアダプタさして、電極をさわさわ { // すると充電LEDががさがさするので anti_chatter++; } @@ -983,7 +969,7 @@ err PM_sys_pow_off( ) __interrupt void intp4_extdc( ) { // chg_led_override = (u8)( 1000 / INTERVAL_TSK_BATT / SYS_INTERVAL_TICK ); - chg_led_override = 4; +// chg_led_override = 4; } diff --git a/trunk/self_flash.c b/trunk/self_flash.c index dc8ef2c..8dbdba4 100644 --- a/trunk/self_flash.c +++ b/trunk/self_flash.c @@ -36,7 +36,7 @@ const u8 fsl_low_voltage_u08 = 1; #define INACTIVE_BOOTSECT_TOP 4 #define FIRM_TOP 8 #define FIRM_SIZE 12 -#define ALTERNATE_FIRM_BLOCK_TOP ( FIRM_TOP + FIRM_SIZE ) +#define ALTERNATE_FIRMTOP 20 #ifdef _MCU_BSR_ @@ -90,6 +90,7 @@ extern uni_pool pool; // 0.D以降 新アップデータ向け +// 新ファームは大丈夫? #define N_MGC_L 0x1FF6 #define N_MGC_T 0x4FF6 @@ -116,13 +117,13 @@ void firm_update( ) 0x5000 - 0x7FFF (ブロック 20 - 31) にコピー */ firm_duplicate( FIRM_TOP, - ALTERNATE_FIRM_BLOCK_TOP ); + ALTERNATE_FIRMTOP ); // 全ブロック削除 ///////////////////////////////////// // 電源断を判定するため、最初に全クラスタ消去する //(新ファームが書かれるところに残ってる、以前のファームのフッタを消したい) for( target_block = INACTIVE_BOOTSECT_TOP; - target_block < ALTERNATE_FIRM_BLOCK_TOP; + target_block < ALTERNATE_FIRMTOP; target_block += 1 ) { FSL_Erase( target_block ); @@ -132,7 +133,7 @@ void firm_update( ) // ●ストップコンディションが来るまで続ける // ●終わったら、スタートアップルーチンに飛ぶ for( target_block = INACTIVE_BOOTSECT_TOP; - target_block < ALTERNATE_FIRM_BLOCK_TOP; + target_block < ALTERNATE_FIRMTOP; target_block += 1 ) { /* すでに消してある。でないと中断されたとき終了してるか判別出来ない @@ -176,8 +177,9 @@ void firm_update( ) alert(1); // 書き込み後のチェックエラー // リストア - firm_duplicate( ALTERNATE_FIRM_BLOCK_TOP, FIRM_TOP ); - FSL_SwapBootCluster( ); // リセットせずに頭から。FSL_Closeは不要 + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // リセット + // FSL_SwapBootCluster( ); // ブートスワップ「せずに」再起動って出来ないらしい // 戻ってこない // } @@ -187,8 +189,9 @@ void firm_update( ) alert(2); // 再度消去→書き込み ベリファイを繰り返すだけじゃダメでした... todo…? // リストア - firm_duplicate( ALTERNATE_FIRM_BLOCK_TOP, FIRM_TOP ); - FSL_SwapBootCluster( ); // リセットせずに頭から。FSL_Closeは不要 + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // リセット + // FSL_SwapBootCluster( ); // ブートスワップ「せずに」再起動って出来ないらしい // 戻ってこない // } @@ -214,15 +217,17 @@ void firm_update( ) { // OK! FSL_InvertBootFlag( ); + FSL_SwapBootCluster( ); // リセットせずに頭から。FSL_Closeは不要 } else { // データ(マジックナンバーしか見てない)エラー // リストア alert(3); - firm_duplicate( ALTERNATE_FIRM_BLOCK_TOP, FIRM_TOP ); + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // リセット + // FSL_SwapBootCluster( ); // ブートスワップ「せずに」再起動って出来ないらしい } - FSL_SwapBootCluster( ); // リセットせずに頭から。FSL_Closeは不要 // 戻ってこない // } } @@ -343,7 +348,7 @@ void firm_restore( ) 0x4800 - 0x7FFF (ブロック 18 - 27) から 0x2000 - 0x47FF (ブロック 8 - 17) へコピー */ - if( firm_duplicate( ALTERNATE_FIRM_BLOCK_TOP, FIRM_TOP ) != ERR_SUCCESS ) + if( firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ) != ERR_SUCCESS ) { alert(2); } @@ -356,7 +361,8 @@ void firm_restore( ) { alert(3); } - FSL_SwapBootCluster(); + FSL_ForceReset(); // リセット + // FSL_SwapBootCluster( ); // ブートスワップ「せずに」再起動って出来ないらしい } diff --git a/trunk/yav_mcu_bsr.plg b/trunk/yav_mcu_bsr.plg index ec2c735..e51f05d 100644 --- a/trunk/yav_mcu_bsr.plg +++ b/trunk/yav_mcu_bsr.plg @@ -1,20 +1,37 @@ C:\WINDOWS\system32\cmd.exe /c touch magic.c +"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -qvjl2w -sainter_asm -zpb -no pm.c +pm.c(89) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(160) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(247) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add' +pm.c(467) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(567) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(568) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(674) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(710) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(748) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(832) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(840) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(995) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add' +pm.c(1062) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1065) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.h(97) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.h(97) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.h(98) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.h(98) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.h(99) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.h(99) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.h(100) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.h(101) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.h(102) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.h(103) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 24 warning(s) found. +"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\pm.asm +Assembly complete, 0 error(s) and 0 warning(s) found. "C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -qvjl2w -sainter_asm -zpb -no magic.c Compilation complete, 0 error(s) and 0 warning(s) found. "C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\magic.asm Assembly complete, 0 error(s) and 0 warning(s) found. -"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -qvjl2w -sainter_asm -zpb -no led.c -led.c(108) : CC78K0R warning W0745: Expected function prototype -led.c(244) : CC78K0R warning W0401: Conversion may lose significant digits -led.c(249) : CC78K0R warning W0401: Conversion may lose significant digits -led.c(311) : CC78K0R warning W0401: Conversion may lose significant digits -led.c(370) : CC78K0R warning W0401: Conversion may lose significant digits -led.c(396) : CC78K0R warning W0401: Conversion may lose significant digits -led.c(573) : CC78K0R warning W0401: Conversion may lose significant digits -Compilation complete, 0 error(s) and 7 warning(s) found. -"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\led.asm -Assembly complete, 0 error(s) and 0 warning(s) found. -"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\lk78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -obsr.lmf "..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r\s0rm.rel" -go85h,0FC00h,1024 -pbsr_k0r.map -nkd -gb7EFFFFh -b"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r" -dbsr_mcu.dr -s -w0 loader.rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel sw.rel task_debug.rel task_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_status.rel +"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\lk78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -obsr.lmf "..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r\s0rm.rel" -go85h,0FC00h,1024 -gi10A84B295BE95C03D45Bh -pbsr_k0r.map -nkd -gb7EFFFFh -b"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r" -dbsr_mcu.dr -s -w0 loader.rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel sw.rel task_debug.rel task_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_status.rel Link complete, 0 error(s) and 0 warning(s) found. "C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\oc78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -ki -U0FFH -R bsr.lmf Object Conversion Complete, 0 error(s) and 0 warning(s) found. @@ -24,4 +41,4 @@ intel-HEX to bsr bin converter file converted! -Build Total error(s) : 0 Total warning(s) : 7 +Build Total error(s) : 0 Total warning(s) : 24 diff --git a/trunk/yav_mcu_bsr.pri b/trunk/yav_mcu_bsr.pri index 18cee71..1147cd5 100644 --- a/trunk/yav_mcu_bsr.pri +++ b/trunk/yav_mcu_bsr.pri @@ -22,7 +22,7 @@ SubClock=None [Mapping] Count=0 [Main] -Geometry=92, 176, 1200, 882 +Geometry=-1211, 40, 1200, 882 Window=Max MDI_MAX=OFF Button=ON @@ -78,10 +78,10 @@ Symbol Type=OFF Language=C Kanji=SJIS [Source] -Geometry=406, 215, 757, 775 +Geometry=43, 34, 757, 775 Window=Normal -DispStart=41 -CaretPos=79,0 +DispStart=70 +CaretPos=71,0 Mode=Normal DispFile= Address1= @@ -998,15 +998,7 @@ Line=16 Geometry=1049, 744, 445, 260 Window=Normal Width=150 30 200 100 -Name0=Swb00001 -Address0=pm.c#_tsk_batt+0xd9 -Window0=ASM -Status0=ON -Name1=Swb00003 -Address1=pm.c#_tsk_batt+0xcd -Window1=ASM -Status1=ON -Count=2 +Count=0 [Reset] Debugger=ON Symbol=OFF diff --git a/trunk/yav_mcu_bsr.prj b/trunk/yav_mcu_bsr.prj index 53c7678..353e54f 100644 --- a/trunk/yav_mcu_bsr.prj +++ b/trunk/yav_mcu_bsr.prj @@ -844,7 +844,7 @@ GO=1 GOValue=85 GOStart=FC00 GOSizeValue=1024 -GI=0 +GI=1 GIValue=10A84B295BE95C03D45B CCZA=0 MemInfoCheck=1 diff --git a/trunk/yav_mcu_bsr.prk b/trunk/yav_mcu_bsr.prk index 52583c3..27a1912 100644 --- a/trunk/yav_mcu_bsr.prk +++ b/trunk/yav_mcu_bsr.prk @@ -1,14 +1,17 @@ [ProjectManager] FrameMax=0 -FrameX=0 -FrameY=55 +FrameX=21 +FrameY=37 FrameCX=1299 FrameCY=1044 OpenFile1=ProjectWindow PrjPos=0,2,754,3,253 OpenFile2=task_sys.c,0,110,110,1354,867,0,329,0,0 OpenFile3=task_misc.c,0,352,352,1596,1109,0,219,0,0 -OpenFile4=OutputWindow +OpenFile4=led.c,0,154,154,1133,791,25,566,0,0 +OpenFile5=self_flash.c,0,220,220,1199,857,42,223,42,0 +OpenFile6=pedo_alg_thre_det2.c,0,298,260,1277,897,9,217,9,0 +OpenFile7=OutputWindow OutputPos=0,73,1018,56,1365 ActivePRJ=yav_mcu_bsr.prj [ProjectWindow] diff --git a/trunk/yav_mcu_bsr.sdb b/trunk/yav_mcu_bsr.sdb index 482e16c..53c10ce 100644 --- a/trunk/yav_mcu_bsr.sdb +++ b/trunk/yav_mcu_bsr.sdb @@ -12,7 +12,7 @@ T=4c3fc60e 8=reboot.h 9=magic.h [pm.c] -T=4c5769ce +T=4c592153 1=incs.h 2=adc.h 3=led.h @@ -36,7 +36,7 @@ T=4c3c0229 7=adc.h 8=pool.h [magic.c] -T=4c58c413 +T=4c59305d 1=config.h [WDT.c] T=4bf0d1e1 @@ -52,7 +52,7 @@ T=4c29c700 3=i2c_twl_defs.h 4=i2c_twl.h [led.c] -T=4c58fedd +T=4c591e8a 1=incs.h 2=led.h [rtc.c] @@ -98,7 +98,7 @@ T=4c525844 2=incs.h 3=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h [self_flash.c] -T=4c502289 +T=4c592fc3 1=incs_loader.h 2=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h 3=fsl_user.h @@ -143,7 +143,7 @@ T=4c3ea0de 9=adc.h 10=self_flash.h [pedo_alg_thre_det2.c] -T=4c3fdc7e +T=4c59304d 1=incs.h 2=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h 3=accero.h