■1.33(区別できるように) 内容は1.32と同じでデバッグを不許可にしただけ

IS箱でP40,41がGNDに接続されている状態で、デバッグ許可状態のバイナリを書き込むとMCUが動作しなくなる(デバッガ接続待ち?)
 誤った状態ではhoge.binが出来ないようにスクリプトを修正


git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@327 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
n2232 2011-04-13 08:16:22 +00:00
parent 3cbb3d9054
commit 221bd1ccbc
9 changed files with 101 additions and 93 deletions

Binary file not shown.

View File

@ -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_

Binary file not shown.

View File

@ -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)

View File

@ -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 );
}

View File

@ -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 )
{

View File

@ -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;
}
}
}

View File

@ -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

View File

@ -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