diff --git a/trunk/bsr.lmf b/trunk/bsr.lmf index b3aa832..516e888 100644 Binary files a/trunk/bsr.lmf and b/trunk/bsr.lmf differ diff --git a/trunk/config.h b/trunk/config.h index 89d36ee..1fe6e73 100644 --- a/trunk/config.h +++ b/trunk/config.h @@ -13,19 +13,29 @@ //#define _FORCE_TAIKENDAI_ //#define _FORCE_TAIKENDAI_NBD_ //#define _TAIKENDAI_SEISAN_SPECIAL_ -// 生産中に体験台向け使用が発症すると、アダプタがないと電源が入らずに検査に支障があるので -// 一時ファーム +// 生産中に体験台向け使用が発症すると、アダプタがないと電源が入らずに検査に支障があるので一時ファーム +//#define _TAIKENDAI_ +// homeメニューに入れてしまうのを回避する特殊ファームをつくる。ROMが足りないので電池パラメータ周りをパスする #define MCU_VER_MAJOR 0x01 -#define MCU_VER_MINOR 0x31 +#define MCU_VER_MINOR 0x33 // ↑改訂の時は↓気をつけないと体験台の生産できないからね! #ifdef _TAIKENDAI_SEISAN_SPECIAL_ #define MCU_VER_MINOR 0x80 #endif + +#ifdef _TAIKENDAI_ +#define MCU_VER_MINOR 0x90 +// 0x90 1.31 相当 HOMEに入れてしまうのをスイッチのマスクで対策 +// ROM不足のため、電池パラメータ削除 + +#endif + + #define _firm_format_v3_ //#define _MODEL_TEG2_ diff --git a/trunk/hoge.bin b/trunk/hoge.bin index 8e348e5..7ba2ee2 100644 Binary files a/trunk/hoge.bin and b/trunk/hoge.bin differ diff --git a/trunk/nec_s_2_bsrbin2.rb b/trunk/nec_s_2_bsrbin2.rb index dd64fcb..c4c33fa 100755 --- a/trunk/nec_s_2_bsrbin2.rb +++ b/trunk/nec_s_2_bsrbin2.rb @@ -23,7 +23,6 @@ unless(File.exist?( ARGV[0] )) end =end -#src = File.open( '/cygdrive/c/78k_data/yav-mcu-basara/bsr.hex' ) src = File.open( 'bsr.hex' ) dest = File.new( "hoge.bin","wb" ) @@ -64,6 +63,15 @@ while(src.readline) } end +### debug enable bit check ############# +# デバッグ許可になっているとISデバッガで起動しない(MCUが動作しない) +p bindata[0xC3] +if( bindata[0xC3] != 0x04 ) + print( "!E debug enable!!" ) + exit( 1 ) +end + + ### format data and output ############# 4096.times{ bindata.delete_at(4096) diff --git a/trunk/pm.c b/trunk/pm.c index 5a6461d..a808f3d 100644 --- a/trunk/pm.c +++ b/trunk/pm.c @@ -400,7 +400,9 @@ static void BT_mgic_init() }chars; }dat_16; - bt_comp = BT_COMP[ battery_manufacturer ]; // バッテリパラメータ変更 +#ifndef _TAIKENDAI_ + + bt_comp = BT_COMP[ battery_manufacturer ]; // バッテリパラメータ変更 /* // -1. リセットをかけてみる @@ -479,12 +481,11 @@ static void BT_mgic_init() // 11. ロック dat_16._u16 = swap_endian_16( 0x0000 ); // lock key iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16 ); +#endif } - - extern u16 _dbg_rcomp; /* ======================================================== raw_adc_temperatureに入っている値を℃に変換するとともに、 @@ -1005,7 +1006,7 @@ err PM_sys_pow_on( ) codec_reg_init(); // CODEC 不定レジスタ初期化(reset2の後でないといけないので) reg_shadow = 0; //  〃 こんなところで... - return ( ERR_SUCCESS ); + return ( ERR_SUCCESS ); } diff --git a/trunk/sw.c b/trunk/sw.c index 216f6df..84e505c 100644 --- a/trunk/sw.c +++ b/trunk/sw.c @@ -23,7 +23,7 @@ #define FORCEOFF_THREASHOLD (u8)( 4000 / INTERVAL_TSK_SW ) */ #define TIME_MUKAN (u8)( 300 / INTERVAL_TSK_SW ) -#define TIME_MUKAN_HOME (u16)( 5000 / INTERVAL_TSK_SW ) +#define TIME_MUKAN_PWSW (u16)( 8000 / INTERVAL_TSK_SW ) //========================================================= u16 SW_pow_count; @@ -36,8 +36,7 @@ bit SW_HOME_n; u16 off_timeout_timer; - -u16 sw_home_mukan_time; +u16 sw_pwsw_mukan_time; //========================================================= // 押した時間を数える。押しっぱなしでも0に戻らない @@ -111,6 +110,11 @@ void tsk_sw( ) if( SW_pow_count == ( TIME_PWSW_CLICK ) ) { set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK ); +#ifdef _TAIKENDAI_ + // いやなタイミングでPWSWを押すとHOMEメニューに入れてしまうのを回避 + SW_pow_count = 0; + sw_pwsw_mukan_time = TIME_MUKAN_PWSW; +#endif } else if( SW_pow_count == ( HOLD_THREASHOLD ) ) { @@ -130,7 +134,18 @@ void tsk_sw( ) } } - count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // ボタン押し時間のカウント +#ifdef _TAIKENDAI_ + if( sw_pwsw_mukan_time != 0 ) + { + sw_pwsw_mukan_time--; + } + else +#endif + { + count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // ボタン押し時間のカウント + + } + // HOME スイッチ // switch( system_status.model ) @@ -145,34 +160,12 @@ void tsk_sw( ) default: SW_HOME_n = 1; // 放されてる状態 } -#if 0 - if( system_status.taikendai ) - { -// ここから - if( sw_home_mukan_time != 0 ) - { - sw_home_mukan_time--; - } - else - { + - chk_clicked( SW_HOME_n, SW_home_count, REG_BIT_SW_HOME_CLICK ); - chk_clicked( !SW_HOME_n, SW_home_count_rel, REG_BIT_SW_HOME_RELEASE ); + chk_clicked( SW_HOME_n, SW_home_count, REG_BIT_SW_HOME_CLICK ); + chk_clicked( !SW_HOME_n, SW_home_count_rel, REG_BIT_SW_HOME_RELEASE ); - if( SW_wifi_count == CLICK_THRESHOLD +1 ) // 押した判定発生! - { - sw_home_mukan_time = TIME_MUKAN_HOME; - } - } - // ここまで - } - else -#endif - { - chk_clicked( SW_HOME_n, SW_home_count, REG_BIT_SW_HOME_CLICK ); - chk_clicked( !SW_HOME_n, SW_home_count_rel, REG_BIT_SW_HOME_RELEASE ); - } - // wifi sw // + // wifi sw // /// 最悪な実装なのはわかっているが、メモリ不足と、市場に出てしまった不良スイッチを救うため if( sw_wifi_mukan_time != 0 ) { diff --git a/trunk/task_sys.c b/trunk/task_sys.c index a76ac15..0f87d58 100644 --- a/trunk/task_sys.c +++ b/trunk/task_sys.c @@ -16,6 +16,10 @@ #include "self_flash.h" +//========================================================= +#define WAIT_SHIROBAKO_POW_CONTROL 240 + + //========================================================= extern void nop8(); @@ -484,7 +488,7 @@ static void chk_emergencyExit(){ } else { - if( shirobako_power_control_count == 240 ) // <- 240はマジックナンバー + if( shirobako_power_control_count == WAIT_SHIROBAKO_POW_CONTROL ) // マジックナンバー // デバッガが何かした。reset1を解除するまでは無視 { if( RESET1_n ) // リセットネゲート待ち @@ -496,13 +500,13 @@ static void chk_emergencyExit(){ // nothing to do } } - else if( shirobako_power_control_count == 200 ) + else if( shirobako_power_control_count == 200 ) // * (sys_tick)[ms] // デバッガが何かしたいらしい { // 白箱は電源を切りたいらしい system_status.pwr_state = OFF_TRIG; renge_task_interval_run_force = true; - shirobako_power_control_count = 240; + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; } else { @@ -512,12 +516,12 @@ static void chk_emergencyExit(){ } else { - // リセットをかけたらしい + // (TSボードで手動で/デバッガが)リセットをかけたらしい iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, 0 ); vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & 0b10011111 ); vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ; renge_task_immed_add( tski_do_command0 ); - shirobako_power_control_count = 240; + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; } } } diff --git a/trunk/yav_mcu_bsr.prj b/trunk/yav_mcu_bsr.prj index 98c2151..1957884 100644 --- a/trunk/yav_mcu_bsr.prj +++ b/trunk/yav_mcu_bsr.prj @@ -756,6 +756,37 @@ Include32=renge\renge_task_intval.h Include33=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h Include34=self_flash.h Include35=pedo_lpf_coeff.h +[Options.LCNV78K0R 0] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 1] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 2] +Version=100 +LCNV_GO=0 +O0=inter_asm +E=0 +CommandFile=0 +[Options.LCNV78K0R 3] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 4] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 5] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 [Options.LK78K0R 0] Version=100 O0=bsr_k0r.lmf @@ -840,7 +871,7 @@ G=1 E=0 E0=flash.elk E1=a.elk -GO=1 +GO=0 GOValue=85 GOStart=FC00 GOSizeValue=1024 @@ -1008,37 +1039,6 @@ ZB= Etcetera0= Etcetera1=boot.lmf CommandFile=0 -[Options.LCNV78K0R 0] -Version=100 -LCNV_GO=0 -E=0 -CommandFile=0 -[Options.LCNV78K0R 1] -Version=100 -LCNV_GO=0 -E=0 -CommandFile=0 -[Options.LCNV78K0R 2] -Version=100 -LCNV_GO=0 -O0=inter_asm -E=0 -CommandFile=0 -[Options.LCNV78K0R 3] -Version=100 -LCNV_GO=0 -E=0 -CommandFile=0 -[Options.LCNV78K0R 4] -Version=100 -LCNV_GO=0 -E=0 -CommandFile=0 -[Options.LCNV78K0R 5] -Version=100 -LCNV_GO=0 -E=0 -CommandFile=0 [Options.78K0R] BuildMode=2 BuildMode2=K0R_dbg diff --git a/trunk/yav_mcu_bsr.prk b/trunk/yav_mcu_bsr.prk index 03e2d63..c917809 100644 --- a/trunk/yav_mcu_bsr.prk +++ b/trunk/yav_mcu_bsr.prk @@ -1,23 +1,15 @@ [ProjectManager] -FrameMax=0 -FrameX=1936 -FrameY=64 -FrameCX=1435 -FrameCY=1045 -OpenFile1=jhl_defs.h,0,286,286,1530,1012,0,15,26,0 -OpenFile2=self_flash.c,0,352,352,1596,1078,0,142,5,0 -OpenFile3=ini_VECT.c,0,330,330,1574,1056,6,93,6,0 -OpenFile4=renge\renge.c,0,348,332,1592,1058,0,31,0,0 -OpenFile5=renge\renge.h,0,264,264,1508,990,3,4,3,0 -OpenFile6=vreg_twl.c,0,225,225,1340,826,0,70,0,0 -OpenFile7=task_debug.c,0,275,275,1390,876,0,1,0,0 -OpenFile8=config.h,0,390,41,1505,642,29,21,29,0 -OpenFile9=pedo_alg_thre_det2.c,0,72,264,1187,865,0,406,0,0 -OpenFile10=ProjectWindow -PrjPos=0,0,706,0,291 -OpenFile11=sw.c,0,250,250,1365,851,0,171,11,0 -OpenFile12=OutputWindow +FrameMax=1 +FrameX=2026 +FrameY=249 +FrameCX=1440 +FrameCY=850 +OpenFile1=config.h,0,442,428,1557,1029,14,18,14,0 +OpenFile2=OutputWindow OutputPos=0,34,740,376,1323 +OpenFile3=ProjectWindow +PrjPos=0,0,706,0,291 +OpenFile4=batt_params.h,0,300,300,1546,1022,0,28,0,0 ActivePRJ=yav_mcu_bsr.prj [ProjectWindow] ProjectWindowDispType=0