CODECの不具合対策でVolをSPIから書くための仕組みを追加

スライダの可動範囲がもともと筐体で制限されているが、0側に寄っているのでVolレジスタに反映させる際に0-63がでるようスケーリングを調整
バッテリパラメータの最終版を反映。
ROMがあふれそうなのでRTCをブートブロックに移動
ホタル廃止、SoCからは流し込めないがお知らせLEDの様にテーブルから補完するように変更。コード流用。仕様変更
充電周りのたくさんのバグを修正
・電池を抜いてもCEをアサートしっぱなしだったり、
・過放電の電池に充電できなかったり
・バッテリパラメータを送りすぎたり送り忘れたり
歩数計の境界分・秒の判定を誤っていた。修正・リファクタリング
電池電圧で残量をキャップしたり
 キャップしたときにLEDが赤青しないようにヒステリシスを入れた
温度で充電停止、チャタリングがひどいので一般的なチャタリング防止を追加
機種判定などがもうめちゃめちゃだったのでリファクタリング
電源OFF時、とりあえずLCD系電源を落とすがウェイトを調整
電池残量ICが電池残量0といってもマイコンからは電源を落とさない。3.1Vまでは動かす。仕様変更
強制電源断の仕様変更。2sec抑えたら問答無用でさらに4sec後にoff→6秒押さえ続けたら0ff


git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@202 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
N2232 2010-07-13 12:12:27 +00:00
parent 510e8fb69b
commit 4efe357491
30 changed files with 2307 additions and 2270 deletions

View File

@ -18,13 +18,12 @@
// ===================================================== // // ===================================================== //
bit adc_updated; bit adc_updated;
bit vol_changed_by_ctr;
bit vol_changed_by_twl;
u8 vol_old;
u8 adc_raw_vol; u8 adc_raw_vol;
u8 adc_raw_dep; u8 adc_raw_dep;
u8 vol_written_ctr;
bit vol_by_twl;
typedef struct filter_work typedef struct filter_work
@ -68,7 +67,7 @@ static u8 adc_scaling( u8 );
VOL VOL
PM_BT_DET,_P BT_init PM_BT_DET,_P BT_chk
8tics毎に呼ばれADCを停止します 8tics毎に呼ばれADCを停止します
   
@ -87,25 +86,27 @@ void tsk_adc( )
#if 0 #if 0
// debug // debug
{ {
static u16 loop;
static u8 dat_old;
static bit interval; static bit interval;
/*
// VOL書き頻度を半分にする // VOL書き頻度を半分にする
interval++; interval++;
if( !interval ) if( !interval )
{ {
return; return;
} }
*/ }
#endif
#if 0
{
static u16 loop;
if( system_status.pwr_state == ON ) if( system_status.pwr_state == ON )
{ {
loop++; loop++;
if( loop == 499 ){ if( loop == 499 ){
// vol_written_ctr = 0;
} }
else if( loop == 500 ){ else if( loop == 500 ){
vol_written_ctr = 0;
loop = 0; loop = 0;
} }
else else
@ -140,24 +141,14 @@ void tsk_adc( )
// Volume ///////////////////////////////////// // Volume /////////////////////////////////////
{ {
static u8 vol_old;
adc_filter( adc_scaling( adc_raw_vol ), &work_vr_vol ); // 結果は*work_vr_volから指されるvol_data_ctr 読みにくい... adc_filter( adc_scaling( adc_raw_vol ), &work_vr_vol ); // 結果は*work_vr_volから指されるvol_data_ctr 読みにくい...
vol_data_ctr = vol_data_ctr_tmp / 4; vol_data_ctr = vol_data_ctr_tmp / 4;
if(( vreg_ctr[ VREG_C_VOL_DIGITAL ] & REG_BIT_VOL_FORCE_REG ) != 0 )
{
// レジスタから強制セット
vol_data_ctr = ( vreg_ctr[ VREG_C_VOL_DIGITAL ] & ~( REG_BIT_VOL_RESET | REG_BIT_VOL_FORCE_REG ) );
}
if( vol_old != vol_data_ctr ) if( vol_old != vol_data_ctr )
{ {
vol_changed_by_ctr = 1;
vol_old = vol_data_ctr; vol_old = vol_data_ctr;
vol_by_twl = 0;
vreg_ctr[ VREG_C_SND_VOL ] = vol_data_ctr; // 64段
vol_written_ctr = slider_to_codec[ vol_data_ctr ];
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = vol_data_ctr / 2;
// renge_task_immed_add( tski_vol_update ); 2ms後でいいでしょう... // renge_task_immed_add( tski_vol_update ); 2ms後でいいでしょう...
} }
} }
@ -181,6 +172,12 @@ void tsk_adc( )
void vol_reset()
{
vol_old = vol_data_ctr;
vreg_ctr[ VREG_C_SND_VOL ] = vol_data_ctr; // 64段
}
/* ======================================================== /* ========================================================
 Volを更新します  Volを更新します
@ -191,41 +188,99 @@ void tsk_adc( )
======================================================== */ ======================================================== */
task_status_immed tski_vol_update() task_status_immed tski_vol_update()
{ {
u8 vol_scaled; static u8 sent_index, sent_index_slider, sent_index_twl;
u8 temp; static u8 sent_data;
u8 i; static bit last_modifyer; // 0 = ctr
// SPIでかくテスト todo if( system_status.pwr_state != ON ){
// return( ERR_FINISED ); return( ERR_FINISED );
}
if( vol_by_twl ) // どの音量にするの? //
if( vreg_ctr[ VREG_C_VOL_OPTION ] & REG_BIT_VOL_FORCE_SLIDER )
{ {
temp = slider_to_codec[ vreg_twl[ REG_TWL_INT_ADRS_VOL ] * 2 ]; // 最優先 スライダに上書き
sent_index = vol_data_ctr;
}
else if( vol_changed_by_ctr )
{
// スライダ
vol_changed_by_ctr = 0;
last_modifyer = 0;
if( vreg_ctr[ VREG_C_VOL_OPTION ] & REG_BIT_VOL_FORCE_REG )
{
// レジスタから強制セット
sent_index_slider = vreg_ctr[ VREG_C_VOL_DIGITAL ];
} }
else else
{ {
temp = vol_written_ctr; sent_index_slider = vol_data_ctr; // CTRスライダ
} }
sent_index = sent_index_slider;
}
else if( vol_changed_by_twl )
{
// TWLアプリ
vol_changed_by_twl = 0;
last_modifyer = 1;
if( vreg_twl[ REG_TWL_INT_ADRS_VOL ] == 0 )
{
sent_index_twl = 0;
}
else
{
sent_index_twl = vreg_twl[ REG_TWL_INT_ADRS_VOL ] *2 +1;
}
sent_index = sent_index_twl;
set_irq( VREG_C_IRQ2, REG_BIT_TWL_SNDVOL_CHANGE );
}
else
{
// force_sliderを0にしたとき & 書きまくるとき
// スライダかTWLの最後にセットした方をセット
if( last_modifyer == 0 )
{
sent_index = sent_index_slider;
}
else
{
sent_index = sent_index_twl;
}
}
// レジスタの更新 //
vreg_ctr[ VREG_C_SND_VOL ] = sent_index;
if( sent_index == 1 )
{
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = 1;
}
else
{
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = sent_index/2 ;
}
// CODECに書きに行く
if( vreg_ctr[ VREG_C_VOL_OPTION ] & REG_BIT_VOL_BY_SPI )
{
return( ERR_FINISED );
}
// by SPI ならここまででおしまい //
// debug todo // debug todo
iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL ); iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL );
// codecに伝える // codecに伝える
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, temp ); iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, slider_to_codec[ sent_index ] );
// debug todo // debug todo
iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL ); iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL );
#ifndef _MODEL_CTR_
iic_mcu_write_a_byte( IIC_SLA_DCP, 0, slider_to_codec[ ( 255 - vol_data ) / 4 ] );
#endif
// set_irq( VREG_C_IRQ0, REG_BIT_VR_SNDVOL_CHANGE ); // 割り込み廃止 // set_irq( VREG_C_IRQ0, REG_BIT_VR_SNDVOL_CHANGE ); // 割り込み廃止
return( ERR_FINISED ); return( ERR_FINISED );
} }
/* ======================================================== /* ========================================================
 minでもMAXでもない値を返す  minでもMAXでもない値を返す
   
@ -384,23 +439,24 @@ u8 get_adc( u8 ch )
/* ======================================================== /* ========================================================
VRの可動範囲を考えてスケーリング VRの可動範囲を考えてスケーリング
======================================================== */ ======================================================== */
#define ASOBI 10 #define ASOBI_L 4
#define ASOBI_H 16
static u8 adc_scaling( u8 orig_val ) static u8 adc_scaling( u8 orig_val )
{ {
u16 temp; u16 temp;
if( orig_val > ( 255 - ASOBI )) if( orig_val > ( 255 - ASOBI_H ))
{ {
return( 255 ); return( 255 );
} }
if( orig_val <= ASOBI ) if( orig_val <= ASOBI_L )
{ {
return( 0 ); return( 0 );
} }
orig_val -= ASOBI; orig_val -= ASOBI_L;
temp = (u16)( orig_val * 256 ) / ( 256 - ( 2 * ASOBI )); temp = (u16)( orig_val * 256 ) / ( 256 - ( ASOBI_L + ASOBI_H ));
return( (u8)( temp & 0xFF ) ); return( (u8)( temp & 0xFF ) );
} }

View File

@ -38,6 +38,8 @@
/////////////////////////////////////// ///////////////////////////////////////
u8 get_adc( u8 ch ); u8 get_adc( u8 ch );
void vol_reset();
#endif #endif

View File

@ -7,43 +7,34 @@
const u8 BT_PARAM[][64] = { const u8 BT_PARAM[][64] = {
// ID = 0 GND マクセル // ID = 0 GND マクセル
{ {
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00, 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00, 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10,
0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0, 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0, 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30,
0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00, 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0, 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
}, },
{ // ID = 1 120 ohm (ダミーでマクセル) { // ID = 1 120 ohm (ダミーでマクセル)
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00, 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00, 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10,
0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0, 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0, 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30,
0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00, 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0, 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
}, },
{ // ID = 2 360 hom (ダミーでマクセル) { // ID = 2 360 hom (ダミーでマクセル)
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00, 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00, 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10,
0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0, 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0, 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30,
0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00, 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0, 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
}, },
{ // ID = 3 750 ohm ダミーでパナ { // ID = 3 750 ohm ダミーでパナ
0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40,
@ -103,9 +94,9 @@ typedef struct _st_bt_comp
// 電池残量補正パラメータ // 電池残量補正パラメータ
const st_bt_comp BT_COMP[] = { const st_bt_comp BT_COMP[] = {
// rcomp R_co_up R_co_down // rcomp R_co_up R_co_down
{ 135, -256* 0.15, -256* 2.15 }, // maxell { 92, -256* 0.79, -256* 4.35 }, // maxell
{ 135, -256* 0.15, -256* 2.15 }, // dummy(M ) { 92, -256* 0.79, -256* 4.35 }, // dummy(M )
{ 135, -256* 0.15, -256* 2.15 }, // dummy(M ) { 92, -256* 0.79, -256* 4.35 }, // dummy(M )
{ 171, -256* 1.00, -256* 2.60 }, // dummy( P) { 171, -256* 1.00, -256* 2.60 }, // dummy( P)
{ 171, -256* 1.00, -256* 2.60 }, // dummy( P) { 171, -256* 1.00, -256* 2.60 }, // dummy( P)
{ 171, -256* 1.00, -256* 2.60 }, // panasonic { 171, -256* 1.00, -256* 2.60 }, // panasonic
@ -113,18 +104,23 @@ const st_bt_comp BT_COMP[] = {
}; };
const u16 BT_OCV[] = {
{ 0xD800 }, { 0xD800 }, { 0xD800 }, // maxell, dummy, dummy,
{ 0xDA20 }, { 0xDA20 }, { 0xDA20 }, { 0xDA20 } // dummy, dummy, panaso, dummy
};
const u8 BT_VERIFY_H[] = { const u8 BT_VERIFY_H[] = {
0x75, 0x75, 0x75, // maxell, dummy, dummy, 0xEA, 0xEA, 0xEA, // maxell, dummy, dummy,
0x69, 0x69, 0x69, 0x69 // dummy, dummy, panaso, dummy 0x69, 0x69, 0x69, 0x69 // dummy, dummy, panaso, dummy
}; };
const u8 BT_VERIFY_L[] = { const u8 BT_VERIFY_L[] = {
0x74, 0x74, 0x74, // maxell, dummy, dummy, 0xE8, 0xE8, 0xE8, // maxell, dummy, dummy,
0x67, 0x67, 0x67, 0x67 // dummy, dummy, panaso, dummy 0x67, 0x67, 0x67, 0x67 // dummy, dummy, panaso, dummy
}; };
const u8 BT_RCOMP_SCALE[] = { const u8 BT_RCOMP_SCALE[] = {
1, 1, 1, // maxell, dummy, dummy, 2, 2, 2, // maxell, dummy, dummy,
1, 1, 1, 1 // dummy, dummy, panaso, dummy 1, 1, 1, 1 // dummy, dummy, panaso, dummy
}; };

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,20 +1,20 @@
78K0R Linker W1.31 Date: 7 Jul 2010 Page: 1 78K0R Linker W1.31 Date:13 Jul 2010 Page: 1
Command: -yC:\Program Files\NEC Electronics Tools\DEV -_msgoff -obsr.l Command: -yC:\Program Files\NEC Electronics Tools\DEV -_msgoff -obsr.l
mf ..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10 mf ..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10
\lib78k0r\s0rm.rel -go85h,0FC00h,1024 -gi0FFFFFFFFFFFFFFFFFFF \lib78k0r\s0rm.rel -go85h,0FC00h,1024 -gi0FFFFFFFFFFFFFFFFFFF
Fh -pbsr_k0r.map -nkd -gb7EFBFFh -bC:\Program Files\NEC Elect Fh -pbsr_k0r.map -nkd -gb0FEFBFFh -bC:\Program Files\NEC Elec
ronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib -bcl0rd tronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib -bcl0r
m.lib -bcl0rm.lib -bcl0rmf.lib -iC:\Program Files\NEC Electro dm.lib -bcl0rm.lib -bcl0rmf.lib -iC:\Program Files\NEC Electr
nics Tools\CC78K0R\W2.10\lib78k0r -dbsr_mcu.dr -s -w0 loader. onics 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 .rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.re
i2c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.re l i2c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.r
l renge.rel accero.rel self_flash.rel sw.rel task_debug.rel t el renge.rel accero.rel self_flash.rel sw.rel task_debug.rel
ask_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.re
task_status.rel l task_status.rel
Para-file: Para-file:
Out-file: bsr.lmf Out-file: bsr.lmf
Map-file: bsr_k0r.map Map-file: bsr_k0r.map
@ -24,8 +24,8 @@ Direc-file:bsr_mcu.dr
*** Link information *** *** Link information ***
66 output segment(s) 66 output segment(s)
3B91H byte(s) real data 3CE9H byte(s) real data
5392 symbol(s) defined 5453 symbol(s) defined
*** Memory map *** *** Memory map ***
@ -48,6 +48,8 @@ Direc-file:bsr_mcu.dr
LDR_CNSL WDT 00002H 00000H LDR_CNSL WDT 00002H 00000H
LDR_CNSL 00002H 00000H CSEG PAGE64KP LDR_CNSL 00002H 00000H CSEG PAGE64KP
LDR_CNSL i2c_mcu 00002H 00000H LDR_CNSL i2c_mcu 00002H 00000H
LDR_CNSL 00002H 00000H CSEG PAGE64KP
LDR_CNSL rtc 00002H 00000H
LDR_CNSL 00002H 00000H CSEG PAGE64KP LDR_CNSL 00002H 00000H CSEG PAGE64KP
LDR_CNSL self_flash LDR_CNSL self_flash
00002H 00000H 00002H 00000H
@ -86,55 +88,57 @@ Direc-file:bsr_mcu.dr
LDR_CODL main 000C4H 00000H LDR_CODL main 000C4H 00000H
LDR_CODL WDT 000C4H 00000H LDR_CODL WDT 000C4H 00000H
LDR_CODL i2c_mcu 000C4H 00000H LDR_CODL i2c_mcu 000C4H 00000H
LDR_CODL rtc 000C4H 00000H
LDR_CODL self_flash LDR_CODL self_flash
000C4H 00000H 000C4H 00000H
?CSEGSI 000C4H 0000AH CSEG ?CSEGSI 000C4H 0000AH CSEG
?OCDSTAD 000CEH 0000AH CSEG ?OCDSTAD 000CEH 0000AH CSEG
LDR_CODE 000D8H 00841H CSEG LDR_CODE 000D8H 00912H CSEG
LDR_CODE loader 000D8H 001E0H LDR_CODE loader 000D8H 001E0H
LDR_CODE main 002B8H 0006EH LDR_CODE main 002B8H 0006EH
LDR_CODE WDT 00326H 00000H LDR_CODE WDT 00326H 00000H
LDR_CODE i2c_mcu 00326H 002AAH LDR_CODE i2c_mcu 00326H 002AAH
LDR_CODE rtc 005D0H 000E0H
LDR_CODE self_flash LDR_CODE self_flash
005D0H 00349H 006B0H 0033AH
FSL_CODE 00919H 00322H CSEG FSL_CODE 009EAH 00322H CSEG
FSL_CODE fsl_block_cmd FSL_CODE fsl_block_cmd
00919H 0002BH 009EAH 0002BH
FSL_CODE fsl_block_check FSL_CODE fsl_block_check
00944H 00013H 00A15H 00013H
FSL_CODE fsl_common FSL_CODE fsl_common
00957H 0014FH 00A28H 0014FH
FSL_CODE fsl_reset FSL_CODE fsl_reset
00AA6H 00001H 00B77H 00001H
FSL_CODE fsl_si_ibf FSL_CODE fsl_si_ibf
00AA7H 00064H 00B78H 00064H
FSL_CODE fsl_phySwap FSL_CODE fsl_phySwap
00B0BH 0004DH 00BDCH 0004DH
FSL_CODE fsl_si_common FSL_CODE fsl_si_common
00B58H 00061H 00C29H 00061H
FSL_CODE fsl_swap 00BB9H 00030H FSL_CODE fsl_swap 00C8AH 00030H
FSL_CODE fsl_write FSL_CODE fsl_write
00BE9H 00052H 00CBAH 00052H
@@LCODE 00C3BH 002AFH CSEG @@LCODE 00D0CH 002AFH CSEG
@@LCODE @cstart 00C3BH 0006DH @@LCODE @cstart 00D0CH 0006DH
@@LCODE @imul 00CA8H 00011H @@LCODE @imul 00D79H 00011H
@@LCODE @lumul 00CB9H 0002BH @@LCODE @lumul 00D8AH 0002BH
@@LCODE @isdiv 00CE4H 00022H @@LCODE @isdiv 00DB5H 00022H
@@LCODE @iudiv 00D06H 0002DH @@LCODE @iudiv 00DD7H 0002DH
@@LCODE @isrem 00D33H 00021H @@LCODE @isrem 00E04H 00021H
@@LCODE @iurem 00D54H 0002FH @@LCODE @iurem 00E25H 0002FH
@@LCODE @lsdiv 00D83H 00039H @@LCODE @lsdiv 00E54H 00039H
@@LCODE @ludiv 00DBCH 0003FH @@LCODE @ludiv 00E8DH 0003FH
@@LCODE @divuw 00DFBH 00034H @@LCODE @divuw 00ECCH 00034H
@@LCODE @ladd 00E2FH 0000FH @@LCODE @ladd 00F00H 0000FH
@@LCODE @llsh 00E3EH 0001BH @@LCODE @llsh 00F0FH 0001BH
@@LCODE @lursh 00E59H 0001FH @@LCODE @lursh 00F2AH 0001FH
@@LCODE @iscmp 00E78H 0000CH @@LCODE @iscmp 00F49H 0000CH
@@LCODE @lscmp 00E84H 00014H @@LCODE @lscmp 00F55H 00014H
@@LCODE @lband 00E98H 00014H @@LCODE @lband 00F69H 00014H
@@LCODE @bcdtob 00EACH 0001AH @@LCODE @bcdtob 00F7DH 0001AH
@@LCODE @bbcd 00EC6H 00024H @@LCODE @bbcd 00F97H 00024H
* gap * 00EEAH 0010CH * gap * 00FBBH 0003BH
MGC_LOAD 00FF6H 0000AH CSEG AT MGC_LOAD 00FF6H 0000AH CSEG AT
MGC_LOAD magic 00FF6H 0000AH MGC_LOAD magic 00FF6H 0000AH
@ -152,8 +156,6 @@ Direc-file:bsr_mcu.dr
@@CNSTL i2c_twl 02000H 00000H @@CNSTL i2c_twl 02000H 00000H
@@CNSTL 02000H 00000H CSEG PAGE64KP @@CNSTL 02000H 00000H CSEG PAGE64KP
@@CNSTL led 02000H 00000H @@CNSTL led 02000H 00000H
@@CNSTL 02000H 00000H CSEG PAGE64KP
@@CNSTL rtc 02000H 00000H
@@CNSTL 02000H 00000H CSEG PAGE64KP @@CNSTL 02000H 00000H CSEG PAGE64KP
@@CNSTL vreg_ctr 02000H 00000H @@CNSTL vreg_ctr 02000H 00000H
@@CNSTL 02000H 00000H CSEG PAGE64KP @@CNSTL 02000H 00000H CSEG PAGE64KP
@ -314,7 +316,6 @@ Direc-file:bsr_mcu.dr
@@CODEL magic 02056H 00000H @@CODEL magic 02056H 00000H
@@CODEL i2c_twl 02056H 00000H @@CODEL i2c_twl 02056H 00000H
@@CODEL led 02056H 00000H @@CODEL led 02056H 00000H
@@CODEL rtc 02056H 00000H
@@CODEL vreg_ctr 02056H 00000H @@CODEL vreg_ctr 02056H 00000H
@@CODEL vreg_twl 02056H 00000H @@CODEL vreg_twl 02056H 00000H
@@CODEL adc 02056H 00000H @@CODEL adc 02056H 00000H
@ -336,87 +337,86 @@ Direc-file:bsr_mcu.dr
* gap * 0205EH 000A2H * gap * 0205EH 000A2H
MGC_MIMI 02100H 0000AH CSEG AT MGC_MIMI 02100H 0000AH CSEG AT
MGC_MIMI magic 02100H 0000AH MGC_MIMI magic 02100H 0000AH
@@CNST 0210AH 00290H CSEG @@CNST 0210AH 002AEH CSEG
@@CNST @cstart 0210AH 00000H @@CNST @cstart 0210AH 00000H
@@CNST loader 0210AH 00000H @@CNST loader 0210AH 00000H
@@CNST pm 0210AH 00204H @@CNST pm 0210AH 00212H
@@CNST i2c_ctr 0230EH 00000H @@CNST i2c_ctr 0231CH 00000H
@@CNST main 0230EH 00000H @@CNST main 0231CH 00000H
@@CNST magic 0230EH 00000H @@CNST magic 0231CH 00000H
@@CNST WDT 0230EH 00000H @@CNST WDT 0231CH 00000H
@@CNST i2c_mcu 0230EH 00000H @@CNST i2c_mcu 0231CH 00000H
@@CNST i2c_twl 0230EH 00000H @@CNST i2c_twl 0231CH 00000H
@@CNST led 0230EH 00000H @@CNST led 0231CH 00010H
@@CNST rtc 0230EH 00000H @@CNST rtc 0232CH 00000H
@@CNST vreg_ctr 0230EH 00000H @@CNST vreg_ctr 0232CH 00000H
@@CNST vreg_twl 0230EH 00000H @@CNST vreg_twl 0232CH 00000H
@@CNST adc 0230EH 00040H @@CNST adc 0232CH 00040H
@@CNST renge 0234EH 00000H @@CNST renge 0236CH 00000H
@@CNST accero 0234EH 00000H @@CNST accero 0236CH 00000H
@@CNST self_flash @@CNST self_flash
0234EH 00002H 0236CH 00002H
@@CNST sw 02350H 00000H @@CNST sw 0236EH 00000H
@@CNST task_debug @@CNST task_debug
02350H 00000H 0236EH 00000H
@@CNST task_misc @@CNST task_misc
02350H 00000H 0236EH 00000H
@@CNST task_sys 02350H 00000H @@CNST task_sys 0236EH 00000H
@@CNST pedo_alg_thre_det2 @@CNST pedo_alg_thre_det2
02350H 0004AH 0236EH 0004AH
@@CNST ini_VECT 0239AH 00000H @@CNST ini_VECT 023B8H 00000H
@@CNST task_status @@CNST task_status
0239AH 00000H 023B8H 00000H
ROM_CODE 0239AH 02558H CSEG ROM_CODE 023B8H 025C1H CSEG
ROM_CODE pm 0239AH 008FEH ROM_CODE pm 023B8H 009C6H
ROM_CODE i2c_ctr 02C98H 00060H ROM_CODE i2c_ctr 02D7EH 00060H
ROM_CODE i2c_twl 02CF8H 0005EH ROM_CODE i2c_twl 02DDEH 0005EH
ROM_CODE led 02D56H 004E8H ROM_CODE led 02E3CH 004BAH
ROM_CODE rtc 0323EH 000E0H ROM_CODE vreg_ctr 032F6H 00444H
ROM_CODE vreg_ctr 0331EH 00447H ROM_CODE vreg_twl 0373AH 00163H
ROM_CODE vreg_twl 03765H 00156H ROM_CODE adc 0389DH 002B5H
ROM_CODE adc 038BBH 00249H ROM_CODE renge 03B52H 001C3H
ROM_CODE renge 03B04H 001C3H ROM_CODE accero 03D15H 0013DH
ROM_CODE accero 03CC7H 0013DH ROM_CODE sw 03E52H 000F3H
ROM_CODE sw 03E04H 000DDH
ROM_CODE task_debug ROM_CODE task_debug
03EE1H 0001BH 03F45H 0001BH
ROM_CODE task_misc ROM_CODE task_misc
03EFCH 001B1H 03F60H 001BAH
ROM_CODE task_sys 040ADH 002FFH ROM_CODE task_sys 0411AH 00305H
ROM_CODE pedo_alg_thre_det2 ROM_CODE pedo_alg_thre_det2
043ACH 004C1H 0441FH 004D5H
ROM_CODE task_status ROM_CODE task_status
0486DH 00085H 048F4H 00085H
@@BASE 048F2H 004E7H CSEG BASE @@BASE 04979H 004E7H CSEG BASE
@@BASE loader 048F2H 00000H @@BASE loader 04979H 00000H
@@BASE pm 048F2H 00043H @@BASE pm 04979H 00043H
@@BASE i2c_ctr 04935H 00183H @@BASE i2c_ctr 049BCH 00183H
@@BASE main 04AB8H 00000H @@BASE main 04B3FH 00000H
@@BASE magic 04AB8H 00000H @@BASE magic 04B3FH 00000H
@@BASE WDT 04AB8H 00000H @@BASE WDT 04B3FH 00000H
@@BASE i2c_mcu 04AB8H 000D9H @@BASE i2c_mcu 04B3FH 000D9H
@@BASE i2c_twl 04B91H 000CDH @@BASE i2c_twl 04C18H 000CDH
@@BASE led 04C5EH 00000H @@BASE led 04CE5H 00000H
@@BASE rtc 04C5EH 00043H @@BASE rtc 04CE5H 00043H
@@BASE vreg_ctr 04CA1H 00000H @@BASE vreg_ctr 04D28H 00000H
@@BASE vreg_twl 04CA1H 00000H @@BASE vreg_twl 04D28H 00000H
@@BASE adc 04CA1H 000B3H @@BASE adc 04D28H 000B3H
@@BASE renge 04D54H 00000H @@BASE renge 04DDBH 00000H
@@BASE accero 04D54H 0004AH @@BASE accero 04DDBH 0004AH
@@BASE self_flash @@BASE self_flash
04D9EH 00000H 04E25H 00000H
@@BASE sw 04D9EH 00000H @@BASE sw 04E25H 00000H
@@BASE task_debug @@BASE task_debug
04D9EH 00000H 04E25H 00000H
@@BASE task_misc @@BASE task_misc
04D9EH 00000H 04E25H 00000H
@@BASE task_sys 04D9EH 00000H @@BASE task_sys 04E25H 00000H
@@BASE pedo_alg_thre_det2 @@BASE pedo_alg_thre_det2
04D9EH 00000H 04E25H 00000H
@@BASE ini_VECT 04D9EH 0003BH @@BASE ini_VECT 04E25H 0003BH
@@BASE task_status @@BASE task_status
04DD9H 00000H 04E60H 00000H
* gap * 04DD9H 0021DH * gap * 04E60H 00196H
MGC_TAIL 04FF6H 0000AH CSEG AT MGC_TAIL 04FF6H 0000AH CSEG AT
MGC_TAIL magic 04FF6H 0000AH MGC_TAIL magic 04FF6H 0000AH
@ -424,230 +424,230 @@ Direc-file:bsr_mcu.dr
BASE ADDRESS=FF900H SIZE=00500H BASE ADDRESS=FF900H SIZE=00500H
OUTPUT INPUT INPUT BASE SIZE OUTPUT INPUT INPUT BASE SIZE
SEGMENT SEGMENT MODULE ADDRESS SEGMENT SEGMENT MODULE ADDRESS
@@DATA FF900H 003FEH DSEG BASEP @@DATA FF900H 00406H DSEG BASEP
@@DATA @cstart FF900H 00002H @@DATA @cstart FF900H 00002H
@@DATA loader FF902H 00000H @@DATA loader FF902H 00000H
@@DATA pm FF902H 00012H @@DATA pm FF902H 00014H
@@DATA i2c_ctr FF914H 00006H @@DATA i2c_ctr FF916H 00006H
@@DATA main FF91AH 0021EH @@DATA main FF91CH 0021EH
@@DATA magic FFB38H 00000H @@DATA magic FFB3AH 00000H
@@DATA WDT FFB38H 00000H @@DATA WDT FFB3AH 00000H
@@DATA i2c_mcu FFB38H 00008H @@DATA i2c_mcu FFB3AH 00008H
@@DATA i2c_twl FFB40H 00000H @@DATA i2c_twl FFB42H 00000H
@@DATA led FFB40H 00084H @@DATA led FFB42H 00088H
@@DATA rtc FFBC4H 00008H @@DATA rtc FFBCAH 00008H
@@DATA vreg_ctr FFBCCH 00056H @@DATA vreg_ctr FFBD2H 00056H
@@DATA vreg_twl FFC22H 00010H @@DATA vreg_twl FFC28H 00010H
@@DATA adc FFC32H 00014H @@DATA adc FFC38H 00016H
@@DATA renge FFC46H 00016H @@DATA renge FFC4EH 00016H
@@DATA accero FFC5CH 00002H @@DATA accero FFC64H 00002H
@@DATA self_flash @@DATA self_flash
FFC5EH 00002H
@@DATA sw FFC60H 00004H
@@DATA task_debug
FFC64H 00002H
@@DATA task_misc
FFC66H 00002H FFC66H 00002H
@@DATA task_sys FFC68H 00002H @@DATA sw FFC68H 00004H
@@DATA task_debug
FFC6CH 00002H
@@DATA task_misc
FFC6EH 00002H
@@DATA task_sys FFC70H 00002H
@@DATA pedo_alg_thre_det2 @@DATA pedo_alg_thre_det2
FFC6AH 00092H FFC72H 00092H
@@DATA ini_VECT FFCFCH 00000H @@DATA ini_VECT FFD04H 00000H
@@DATA task_status @@DATA task_status
FFCFCH 00002H FFD04H 00002H
@@DATA @rom FFCFEH 00000H @@DATA @rom FFD06H 00000H
@@INIT FFCFEH 0003CH DSEG BASEP @@INIT FFD06H 0003CH DSEG BASEP
@@INIT @cstart FFCFEH 00000H @@INIT @cstart FFD06H 00000H
@@INIT loader FFCFEH 00000H @@INIT loader FFD06H 00000H
@@INIT pm FFCFEH 00002H @@INIT pm FFD06H 00002H
@@INIT i2c_ctr FFD00H 00002H @@INIT i2c_ctr FFD08H 00002H
@@INIT main FFD02H 00000H @@INIT main FFD0AH 00000H
@@INIT magic FFD02H 00000H @@INIT magic FFD0AH 00000H
@@INIT WDT FFD02H 00000H @@INIT WDT FFD0AH 00000H
@@INIT i2c_mcu FFD02H 00000H @@INIT i2c_mcu FFD0AH 00000H
@@INIT i2c_twl FFD02H 00000H @@INIT i2c_twl FFD0AH 00000H
@@INIT led FFD02H 00006H @@INIT led FFD0AH 00006H
@@INIT rtc FFD08H 00000H @@INIT rtc FFD10H 00000H
@@INIT vreg_ctr FFD08H 00000H @@INIT vreg_ctr FFD10H 00000H
@@INIT vreg_twl FFD08H 00000H @@INIT vreg_twl FFD10H 00000H
@@INIT adc FFD08H 0000AH @@INIT adc FFD10H 0000AH
@@INIT renge FFD12H 00018H @@INIT renge FFD1AH 00018H
@@INIT accero FFD2AH 00000H @@INIT accero FFD32H 00000H
@@INIT self_flash @@INIT self_flash
FFD2AH 00000H FFD32H 00000H
@@INIT sw FFD2AH 00002H @@INIT sw FFD32H 00002H
@@INIT task_debug @@INIT task_debug
FFD2CH 00002H FFD34H 00002H
@@INIT task_misc @@INIT task_misc
FFD2EH 00000H FFD36H 00000H
@@INIT task_sys FFD2EH 00002H @@INIT task_sys FFD36H 00002H
@@INIT pedo_alg_thre_det2 @@INIT pedo_alg_thre_det2
FFD30H 00008H FFD38H 00008H
@@INIT ini_VECT FFD38H 00000H @@INIT ini_VECT FFD40H 00000H
@@INIT task_status @@INIT task_status
FFD38H 00002H FFD40H 00002H
@@INIT @rom FFD3AH 00000H @@INIT @rom FFD42H 00000H
@@INIS FFD3AH 00000H DSEG UNITP @@INIS FFD42H 00000H DSEG UNITP
@@INIS @cstart FFD3AH 00000H @@INIS @cstart FFD42H 00000H
@@INIS loader FFD3AH 00000H @@INIS loader FFD42H 00000H
@@INIS pm FFD3AH 00000H @@INIS pm FFD42H 00000H
@@INIS i2c_ctr FFD3AH 00000H @@INIS i2c_ctr FFD42H 00000H
@@INIS main FFD3AH 00000H @@INIS main FFD42H 00000H
@@INIS magic FFD3AH 00000H @@INIS magic FFD42H 00000H
@@INIS WDT FFD3AH 00000H @@INIS WDT FFD42H 00000H
@@INIS i2c_mcu FFD3AH 00000H @@INIS i2c_mcu FFD42H 00000H
@@INIS i2c_twl FFD3AH 00000H @@INIS i2c_twl FFD42H 00000H
@@INIS led FFD3AH 00000H @@INIS led FFD42H 00000H
@@INIS rtc FFD3AH 00000H @@INIS rtc FFD42H 00000H
@@INIS vreg_ctr FFD3AH 00000H @@INIS vreg_ctr FFD42H 00000H
@@INIS vreg_twl FFD3AH 00000H @@INIS vreg_twl FFD42H 00000H
@@INIS adc FFD3AH 00000H @@INIS adc FFD42H 00000H
@@INIS renge FFD3AH 00000H @@INIS renge FFD42H 00000H
@@INIS accero FFD3AH 00000H @@INIS accero FFD42H 00000H
@@INIS self_flash @@INIS self_flash
FFD3AH 00000H FFD42H 00000H
@@INIS sw FFD3AH 00000H @@INIS sw FFD42H 00000H
@@INIS task_debug @@INIS task_debug
FFD3AH 00000H FFD42H 00000H
@@INIS task_misc @@INIS task_misc
FFD3AH 00000H FFD42H 00000H
@@INIS task_sys FFD3AH 00000H @@INIS task_sys FFD42H 00000H
@@INIS pedo_alg_thre_det2 @@INIS pedo_alg_thre_det2
FFD3AH 00000H FFD42H 00000H
@@INIS ini_VECT FFD3AH 00000H @@INIS ini_VECT FFD42H 00000H
@@INIS task_status @@INIS task_status
FFD3AH 00000H FFD42H 00000H
@@INIS @rom FFD3AH 00000H @@INIS @rom FFD42H 00000H
@@DATS FFD3AH 00000H DSEG UNITP @@DATS FFD42H 00000H DSEG UNITP
@@DATS @cstart FFD3AH 00000H @@DATS @cstart FFD42H 00000H
@@DATS loader FFD3AH 00000H @@DATS loader FFD42H 00000H
@@DATS pm FFD3AH 00000H @@DATS pm FFD42H 00000H
@@DATS i2c_ctr FFD3AH 00000H @@DATS i2c_ctr FFD42H 00000H
@@DATS main FFD3AH 00000H @@DATS main FFD42H 00000H
@@DATS magic FFD3AH 00000H @@DATS magic FFD42H 00000H
@@DATS WDT FFD3AH 00000H @@DATS WDT FFD42H 00000H
@@DATS i2c_mcu FFD3AH 00000H @@DATS i2c_mcu FFD42H 00000H
@@DATS i2c_twl FFD3AH 00000H @@DATS i2c_twl FFD42H 00000H
@@DATS led FFD3AH 00000H @@DATS led FFD42H 00000H
@@DATS rtc FFD3AH 00000H @@DATS rtc FFD42H 00000H
@@DATS vreg_ctr FFD3AH 00000H @@DATS vreg_ctr FFD42H 00000H
@@DATS vreg_twl FFD3AH 00000H @@DATS vreg_twl FFD42H 00000H
@@DATS adc FFD3AH 00000H @@DATS adc FFD42H 00000H
@@DATS renge FFD3AH 00000H @@DATS renge FFD42H 00000H
@@DATS accero FFD3AH 00000H @@DATS accero FFD42H 00000H
@@DATS self_flash @@DATS self_flash
FFD3AH 00000H FFD42H 00000H
@@DATS sw FFD3AH 00000H @@DATS sw FFD42H 00000H
@@DATS task_debug @@DATS task_debug
FFD3AH 00000H FFD42H 00000H
@@DATS task_misc @@DATS task_misc
FFD3AH 00000H FFD42H 00000H
@@DATS task_sys FFD3AH 00000H @@DATS task_sys FFD42H 00000H
@@DATS pedo_alg_thre_det2 @@DATS pedo_alg_thre_det2
FFD3AH 00000H FFD42H 00000H
@@DATS ini_VECT FFD3AH 00000H @@DATS ini_VECT FFD42H 00000H
@@DATS task_status @@DATS task_status
FFD3AH 00000H FFD42H 00000H
@@DATS @rom FFD3AH 00000H @@DATS @rom FFD42H 00000H
FSL_DATA FFD3AH 00010H DSEG UNITP FSL_DATA FFD42H 00010H DSEG UNITP
FSL_DATA fsl_common FSL_DATA fsl_common
FFD3AH 00010H FFD42H 00010H
@@INITL FFD4AH 00000H DSEG UNIT64KP @@INITL FFD52H 00000H DSEG UNIT64KP
@@INITL loader FFD4AH 00000H @@INITL loader FFD52H 00000H
@@INITL pm FFD4AH 00000H @@INITL pm FFD52H 00000H
@@INITL i2c_ctr FFD4AH 00000H @@INITL i2c_ctr FFD52H 00000H
@@INITL main FFD4AH 00000H @@INITL main FFD52H 00000H
@@INITL magic FFD4AH 00000H @@INITL magic FFD52H 00000H
@@INITL WDT FFD4AH 00000H @@INITL WDT FFD52H 00000H
@@INITL i2c_mcu FFD4AH 00000H @@INITL i2c_mcu FFD52H 00000H
@@INITL i2c_twl FFD4AH 00000H @@INITL i2c_twl FFD52H 00000H
@@INITL led FFD4AH 00000H @@INITL led FFD52H 00000H
@@INITL rtc FFD4AH 00000H @@INITL rtc FFD52H 00000H
@@INITL vreg_ctr FFD4AH 00000H @@INITL vreg_ctr FFD52H 00000H
@@INITL vreg_twl FFD4AH 00000H @@INITL vreg_twl FFD52H 00000H
@@INITL adc FFD4AH 00000H @@INITL adc FFD52H 00000H
@@INITL renge FFD4AH 00000H @@INITL renge FFD52H 00000H
@@INITL accero FFD4AH 00000H @@INITL accero FFD52H 00000H
@@INITL self_flash @@INITL self_flash
FFD4AH 00000H FFD52H 00000H
@@INITL sw FFD4AH 00000H @@INITL sw FFD52H 00000H
@@INITL task_debug @@INITL task_debug
FFD4AH 00000H FFD52H 00000H
@@INITL task_misc @@INITL task_misc
FFD4AH 00000H FFD52H 00000H
@@INITL task_sys FFD4AH 00000H @@INITL task_sys FFD52H 00000H
@@INITL pedo_alg_thre_det2 @@INITL pedo_alg_thre_det2
FFD4AH 00000H FFD52H 00000H
@@INITL ini_VECT FFD4AH 00000H @@INITL ini_VECT FFD52H 00000H
@@INITL task_status @@INITL task_status
FFD4AH 00000H FFD52H 00000H
@@INITL @rom FFD4AH 00000H @@INITL @rom FFD52H 00000H
@@DATAL FFD4AH 00000H DSEG UNIT64KP @@DATAL FFD52H 00000H DSEG UNIT64KP
@@DATAL loader FFD4AH 00000H @@DATAL loader FFD52H 00000H
@@DATAL pm FFD4AH 00000H @@DATAL pm FFD52H 00000H
@@DATAL i2c_ctr FFD4AH 00000H @@DATAL i2c_ctr FFD52H 00000H
@@DATAL main FFD4AH 00000H @@DATAL main FFD52H 00000H
@@DATAL magic FFD4AH 00000H @@DATAL magic FFD52H 00000H
@@DATAL WDT FFD4AH 00000H @@DATAL WDT FFD52H 00000H
@@DATAL i2c_mcu FFD4AH 00000H @@DATAL i2c_mcu FFD52H 00000H
@@DATAL i2c_twl FFD4AH 00000H @@DATAL i2c_twl FFD52H 00000H
@@DATAL led FFD4AH 00000H @@DATAL led FFD52H 00000H
@@DATAL rtc FFD4AH 00000H @@DATAL rtc FFD52H 00000H
@@DATAL vreg_ctr FFD4AH 00000H @@DATAL vreg_ctr FFD52H 00000H
@@DATAL vreg_twl FFD4AH 00000H @@DATAL vreg_twl FFD52H 00000H
@@DATAL adc FFD4AH 00000H @@DATAL adc FFD52H 00000H
@@DATAL renge FFD4AH 00000H @@DATAL renge FFD52H 00000H
@@DATAL accero FFD4AH 00000H @@DATAL accero FFD52H 00000H
@@DATAL self_flash @@DATAL self_flash
FFD4AH 00000H FFD52H 00000H
@@DATAL sw FFD4AH 00000H @@DATAL sw FFD52H 00000H
@@DATAL task_debug @@DATAL task_debug
FFD4AH 00000H FFD52H 00000H
@@DATAL task_misc @@DATAL task_misc
FFD4AH 00000H FFD52H 00000H
@@DATAL task_sys FFD4AH 00000H @@DATAL task_sys FFD52H 00000H
@@DATAL pedo_alg_thre_det2 @@DATAL pedo_alg_thre_det2
FFD4AH 00000H FFD52H 00000H
@@DATAL ini_VECT FFD4AH 00000H @@DATAL ini_VECT FFD52H 00000H
@@DATAL task_status @@DATAL task_status
FFD4AH 00000H FFD52H 00000H
@@DATAL @rom FFD4AH 00000H @@DATAL @rom FFD52H 00000H
* gap * FFD4AH 000B6H * gap * FFD52H 000AEH
MEMORY=RAM2 MEMORY=RAM2
BASE ADDRESS=FFE20H SIZE=000C0H BASE ADDRESS=FFE20H SIZE=000C0H
OUTPUT INPUT INPUT BASE SIZE OUTPUT INPUT INPUT BASE SIZE
SEGMENT SEGMENT MODULE ADDRESS SEGMENT SEGMENT MODULE ADDRESS
@@BITS FFE20H 00003H BSEG @@BITS FFE20H 00004H BSEG
@@BITS @cstart FFE20H.0 00000H.0 @@BITS @cstart FFE20H.0 00000H.0
@@BITS loader FFE20H.0 00000H.0 @@BITS loader FFE20H.0 00000H.0
@@BITS pm FFE20H.0 00000H.3 @@BITS pm FFE20H.0 00000H.4
@@BITS i2c_ctr FFE20H.3 00000H.0 @@BITS i2c_ctr FFE20H.4 00000H.0
@@BITS main FFE20H.3 00000H.0 @@BITS main FFE20H.4 00000H.0
@@BITS magic FFE20H.3 00000H.0 @@BITS magic FFE20H.4 00000H.0
@@BITS WDT FFE20H.3 00000H.0 @@BITS WDT FFE20H.4 00000H.0
@@BITS i2c_mcu FFE20H.3 00000H.3 @@BITS i2c_mcu FFE20H.4 00000H.3
@@BITS i2c_twl FFE20H.6 00000H.0 @@BITS i2c_twl FFE20H.7 00000H.0
@@BITS led FFE20H.6 00000H.4 @@BITS led FFE20H.7 00000H.4
@@BITS rtc FFE21H.2 00000H.3 @@BITS rtc FFE21H.3 00000H.3
@@BITS vreg_ctr FFE21H.5 00000H.1 @@BITS vreg_ctr FFE21H.6 00000H.1
@@BITS vreg_twl FFE21H.6 00000H.0 @@BITS vreg_twl FFE21H.7 00000H.0
@@BITS adc FFE21H.6 00000H.2 @@BITS adc FFE21H.7 00000H.4
@@BITS renge FFE22H.0 00000H.2 @@BITS renge FFE22H.3 00000H.2
@@BITS accero FFE22H.2 00000H.0 @@BITS accero FFE22H.5 00000H.0
@@BITS self_flash @@BITS self_flash
FFE22H.2 00000H.0 FFE22H.5 00000H.0
@@BITS sw FFE22H.2 00000H.2 @@BITS sw FFE22H.5 00000H.2
@@BITS task_debug @@BITS task_debug
FFE22H.4 00000H.0 FFE22H.7 00000H.0
@@BITS task_misc @@BITS task_misc
FFE22H.4 00000H.3 FFE22H.7 00000H.3
@@BITS task_sys FFE22H.7 00000H.0 @@BITS task_sys FFE23H.2 00000H.0
@@BITS pedo_alg_thre_det2 @@BITS pedo_alg_thre_det2
FFE22H.7 00000H.1 FFE23H.2 00000H.1
@@BITS ini_VECT FFE23H.0 00000H.0 @@BITS ini_VECT FFE23H.3 00000H.0
@@BITS task_status @@BITS task_status
FFE23H.0 00000H.0 FFE23H.3 00000H.0
* gap * FFE23H 000B1H * gap * FFE24H 000B0H
@@SEGREG FFED4H 00004H DSEG AT @@SEGREG FFED4H 00004H DSEG AT
@@SEGREG @SEGREG FFED4H 00004H @@SEGREG @SEGREG FFED4H 00004H
@@RTARG0 FFED8H 00008H DSEG AT @@RTARG0 FFED8H 00008H DSEG AT

View File

@ -46,7 +46,7 @@ typedef struct _system_status_
unsigned char reboot:1; unsigned char reboot:1;
unsigned char info_fullcolor:1; unsigned char info_fullcolor:1;
enum model_ model; enum model_ model;
unsigned short cnt_force_off; unsigned char force_off; // bitできないんだそうな
}system_status_; }system_status_;

View File

@ -12,7 +12,7 @@
#define MCU_VER_MAJOR 0x00 #define MCU_VER_MAJOR 0x00
#define MCU_VER_MINOR 0x23 #define MCU_VER_MINOR 0x27
//#define PM_CCIC_TIM //#define PM_CCIC_TIM

Binary file not shown.

View File

@ -36,6 +36,8 @@
#include "sw.h" #include "sw.h"
#include "adc.h"
#include "wdt.h" #include "wdt.h"
//========================================================= //=========================================================

View File

@ -26,7 +26,7 @@
// ======================================================== // ========================================================
static void led_pow_normal( ); static void led_pow_normal( );
static void led_pow_hotaru( ); static void led_pow_sleep( );
static void led_pow_bt_empty(); static void led_pow_bt_empty();
@ -40,6 +40,19 @@ uni_info_LED info_LED;
st_led_red_batt_empty led_red_batt_empty = { 0x55, 0x55, 0x55, 0x55 }; st_led_red_batt_empty led_red_batt_empty = { 0x55, 0x55, 0x55, 0x55 };
// スリープ中明滅のテーブル。マジか。
//const u8 LED_PTN_SLEEP[] = { 8,10,16,25, 36,47,56,62, 64,62,56,47, 36,25,16,10 };
//const u8 LED_PTN_SLEEP[] = { 8,12,24,42,64,86,104,116,120,116,104,86,64,42,24,12 };
//const u8 LED_PTN_SLEEP[] = { 0,5,18,39,64,89,109,123,128,123,109,89,64,39,18,5 };
const u8 LED_PTN_SLEEP[] = { 8,23,38,53,68,83,98,113,128,113,98,83,68,53,38,23 };
#define LED_SLEEP_FRAME_LEN 128
#define LED_SLEEP_DIM_LEN 128
#define LED_SLEEP_FRAME_NUM 16
// フルカラーとの自動判別のため、一時領域としてもっておく // フルカラーとの自動判別のため、一時領域としてもっておく
bit LED_pow_red_Mirror; bit LED_pow_red_Mirror;
@ -198,7 +211,7 @@ void LED_stop( )
enum LED_ILUM_MODE{ enum LED_ILUM_MODE{
LED_POW_ILM_AUTO, LED_POW_ILM_AUTO,
LED_POW_ILM_ON, LED_POW_ILM_ON,
LED_POW_ILM_HOTARU, LED_POW_ILM_SLEEP,
LED_POW_ILM_CEOFF LED_POW_ILM_CEOFF
}; };
======================================================== */ ======================================================== */
@ -211,8 +224,8 @@ void tsk_led_pow( )
led_pow_normal( ); led_pow_normal( );
break; break;
case ( LED_POW_ILM_HOTARU ): case ( LED_POW_ILM_SLEEP ):
led_pow_hotaru( ); led_pow_sleep( );
break; break;
case ( LED_POW_ILM_ON ): case ( LED_POW_ILM_ON ):
@ -327,71 +340,32 @@ static void led_pow_bt_empty()
/* ======================================================== /* ========================================================
======================================================== */ ======================================================== */
static void led_pow_hotaru( ) static void led_pow_sleep( )
{ {
static u8 delay; static u8 time_to_next_frame;
static u8 state; static u8 frame;
static u16 blue_to; static st_LED_dim_status LED_dim_status;
if( delay != 0 ) LED_dim_status.to = LED_PTN_SLEEP[frame] * 128;
{
delay -= 1;
return;
}
delay = 4; // グラデーションのデルタを計算
LED_dim_status.delta = (( LED_dim_status.to - LED_dim_status.now ) ) / LED_SLEEP_DIM_LEN;
led_fade_to2( LED_duty_pow_blu, &LED_dim_status );
switch ( state ) // 次のフレームに進める?
time_to_next_frame -= 1;
if( time_to_next_frame == 0 )
{ {
// フェードイン time_to_next_frame = LED_SLEEP_FRAME_LEN;
case ( 0 ):
case ( 2 ):
case ( 4 ):
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
{
blue_to = 0;
LED_pow_red_Mirror = 1;
}
else
{
blue_to = vreg_ctr[VREG_C_LED_BRIGHT];
LED_pow_red_Mirror = 0;
}
break;
default: frame += 1;
// フェードアウト if( frame >= LED_SLEEP_FRAME_NUM -1 )
if( vreg_ctr[VREG_C_BT_REMAIN] <= BATT_TH_LO )
{ {
LED_pow_red_Mirror = 0; frame = 0;
}
else
{
blue_to = 2;
}
break;
}
// LED更新
if( LED_duty_pow_blu != blue_to )
{
if( LED_duty_pow_blu > blue_to )
{
LED_duty_pow_blu -= 1;
}
else
{
LED_duty_pow_blu += 1;
} }
} }
if( LED_duty_pow_blu == blue_to )
{
state += 1;
}
return;
} }

View File

@ -53,7 +53,7 @@ enum LED_ILUM_MODE
{ {
LED_POW_ILM_AUTO = 0, LED_POW_ILM_AUTO = 0,
LED_POW_ILM_ON, LED_POW_ILM_ON,
LED_POW_ILM_HOTARU, LED_POW_ILM_SLEEP,
LED_POW_ILM_OFF, LED_POW_ILM_OFF,
LED_POW_ILM_ONLY_RED, LED_POW_ILM_ONLY_RED,
LED_POW_ILM_ONLY_BLUE, LED_POW_ILM_ONLY_BLUE,

View File

@ -27,6 +27,7 @@ system_status_ system_status;
uni_pool pool; uni_pool pool;
/* ======================================================== /* ========================================================
loader.c loader.c
======================================================== */ ======================================================== */
@ -41,7 +42,7 @@ void main_loop( void )
iic_mcu_start( ); iic_mcu_start( );
EI( ); EI( );
BT_init( ); // 実機やバッテリの判定、電池残量ICの設定 BT_chk();
system_status.pwr_state = OFF_TRIG; system_status.pwr_state = OFF_TRIG;
if( system_status.reboot ) if( system_status.reboot )

View File

@ -218,6 +218,7 @@ static void hosu_increment()
u8 now_year; u8 now_year;
u8 now_min; u8 now_min;
u8 now_sec; u8 now_sec;
u8 after_boundary;
// 時計を止める必要が有るので↓は一気に行って下さい // 時計を止める必要が有るので↓は一気に行って下さい
DI(); DI();
@ -233,18 +234,30 @@ static void hosu_increment()
// RWAIT = 0; ↑で行っています // RWAIT = 0; ↑で行っています
// EI(); 〃 // EI(); 〃
if( ( now_min > vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] )
|| ( ( now_min == vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] )
&& ( now_sec >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC ] ))
)
{
after_boundary = 1;
}
else
{
after_boundary = 0;
}
// 歩数計が止まっていた時間を考慮して必要なら進める // // 歩数計が止まっていた時間を考慮して必要なら進める //
if( last_year == now_year ) if( last_year == now_year )
{ {
if( now_hour > last_hour_fny ) if( ( now_hour + after_boundary ) > last_hour_fny ) // 右辺に足してるのは負の数が困るので
{ {
fill_hosu_hist_hours( now_hour - last_hour_fny ); fill_hosu_hist_hours( now_hour + after_boundary - last_hour_fny );
} }
} }
else if( last_year == ( now_year -1 ) ) else if( last_year == ( now_year -1 ) )
{ {
// 年をまたいでいるとき // 年をまたいでいるとき
u16 temp_hours = ( ( 365 + (( now_year & 0x03 ) == 1 ? 1: 0 )) * 24 ) - last_hour_fny + now_hour; u16 temp_hours = ( ( 365 + (( now_year & 0x03 ) == 1 ? 1: 0 )) * 24 ) - last_hour_fny + now_hour + after_boundary;
fill_hosu_hist_hours( temp_hours ); fill_hosu_hist_hours( temp_hours );
} }
else if( last_year < now_year ) else if( last_year < now_year )
@ -258,29 +271,19 @@ static void hosu_increment()
// ノーケアでよい // ノーケアでよい
} }
last_year = now_year; last_year = now_year;
last_hour_fny = now_hour; last_hour_fny = now_hour + after_boundary;
// 実際にインクリメント // 実際にインクリメント
{ {
u8 temp; u16* p_pedo_data = &pool.vreg_c_ext.pedo_log[ p_record ];
temp = p_record; if( *p_pedo_data == HOSU_NODATA )
if(( now_min < vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] ) &&
( now_sec < vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC ] ))
{ {
temp -= 1; *p_pedo_data = 1;
if( PEDOMETER_LOG_SIZE <= temp )
{
temp = PEDOMETER_LOG_SIZE -1;
} }
} else if( *p_pedo_data != HOSU_MAX )
if( pool.vreg_c_ext.pedo_log[ temp ] == HOSU_NODATA )
{ {
pool.vreg_c_ext.pedo_log[ temp ] = 1; *p_pedo_data += 1;
}
else if( pool.vreg_c_ext.pedo_log[ temp ] != HOSU_MAX )
{
pool.vreg_c_ext.pedo_log[ temp ] += 1;
} }
} }
} }

1261
trunk/pm.c

File diff suppressed because it is too large Load Diff

View File

@ -15,15 +15,12 @@
#define BATT_TH_LO 10 #define BATT_TH_LO 10
#define BATT_TH_EMPTY 5 #define BATT_TH_EMPTY 5
/* #define V_TH_30 42240
#define V_K 16 / 1.25
#define V_TH_LO (u16)( 3200 * V_K )
#define V_TH_EMPTY (u16)( 3150 * V_K )
#define V_TH_ZERO (u16)( 3100 * V_K )
*/
#define V_TH_LO 40960 #define V_TH_LO 40960
#define V_TH_EMPTY 40320 #define V_TH_EMPTY 40320
#define V_TH_ZERO 39680 #define V_TH_ZERO 39680
// 上から順に 3300, 3200, 3150, 3100[mV]
//========================================================= //=========================================================
#define LED_CHARGE P2.4 #define LED_CHARGE P2.4
@ -125,6 +122,8 @@ typedef enum BT_VENDER
//========================================================= //=========================================================
extern u8 raw_adc_temperature; extern u8 raw_adc_temperature;
extern BT_VENDER battery_manufacturer; extern BT_VENDER battery_manufacturer;
extern bit bt_force_update;
//========================================================= //=========================================================
@ -138,10 +137,11 @@ void PM_LCD_off( );
err PM_BL_set( u8 ); err PM_BL_set( u8 );
void BT_init(); void BT_chk();
void BT_get_left(); void BT_get_left();
task_status_immed tski_BT_temp_update( ); task_status_immed tski_BT_temp_update( );
task_status_immed tski_vcom_set( ); task_status_immed tski_vcom_set( );
task_status_immed tski_PM_LCD_on(); task_status_immed tski_PM_LCD_on();
@ -149,7 +149,7 @@ task_status_immed tski_PM_LCD_off();
task_status_immed tski_PM_BL_set(); task_status_immed tski_PM_BL_set();
#define PM_Chg_Stop() { BT_TEMP_P = 0; BT_CHG_DISABLE(); while( !BT_CHG_n ){;}; LED_CHARGE = 0; } #define PM_Chg_Stop() { BT_TEMP_P = 0; BT_CHG_DISABLE(); while( !BT_CHG_n ){;}; LED_CHARGE = 0; bt_chg_ready = 0; }
//  これを呼ぶ前に、現在温度を教えておく必要があります。 //  これを呼ぶ前に、現在温度を教えておく必要があります。

View File

@ -5,7 +5,7 @@
#pragma inline #pragma inline
#include "incs.h" #include "incs_loader.h"

View File

@ -183,9 +183,10 @@ void firm_update( )
} }
// 1ブロック書き込み完了。内部ベリファイを行う // 1ブロック書き込み完了。内部ベリファイを行う
#ifdef _DBG_LED_PRINT_
P1.5 = 1; P1.5 = 1;
DBG_LED_on; DBG_LED_on;
#endif
if( FSL_IVerify( target_block ) != FSL_OK ){ if( FSL_IVerify( target_block ) != FSL_OK ){
while(1){} while(1){}
// 再度消去→書き込み ベリファイを繰り返すだけじゃダメでした... todo… // 再度消去→書き込み ベリファイを繰り返すだけじゃダメでした... todo…
@ -194,8 +195,10 @@ void firm_update( )
FSL_ForceReset(); FSL_ForceReset();
// 戻ってこない // // 戻ってこない //
} }
#ifdef _DBG_LED_PRINT_
DBG_LED_off; DBG_LED_off;
P1.5 = 0; P1.5 = 0;
#endif
if( SPD ) if( SPD )
{ {

View File

@ -24,7 +24,7 @@
*/ */
//========================================================= //=========================================================
u8 SW_pow_count; u16 SW_pow_count;
bit SW_pow_mask; bit SW_pow_mask;
u8 SW_home_count, SW_wifi_count; u8 SW_home_count, SW_wifi_count;
@ -115,7 +115,10 @@ void tsk_sw( )
#else #else
set_irq( VREG_C_IRQ0, REG_BIT_SW_HOME_HOLD ); set_irq( VREG_C_IRQ0, REG_BIT_SW_HOME_HOLD );
#endif #endif
system_status.cnt_force_off = 1; }
else if( SW_pow_count > ( HOLD_THREASHOLD + vreg_ctr[ VREG_C_OFF_DELAY ] *5 ))
{
system_status.force_off = 1;
} }
count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // ボタン押し時間のカウント count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // ボタン押し時間のカウント

View File

@ -3,18 +3,13 @@
#include "config.h" #include "config.h"
extern u8 SW_pow_count; extern u16 SW_pow_count;
extern bit SW_pow_mask; extern bit SW_pow_mask;
#define INTERVAL_TSK_SW 8 #define INTERVAL_TSK_SW 8
#define CLICK_THRESHOLD 2 #define CLICK_THRESHOLD 2
#ifdef _FORCE_OFF_1SEC_ #define HOLD_THREASHOLD (u8)( 2000 /1.024 /INTERVAL_TSK_SW )
#define HOLD_THREASHOLD (u8)( 800 / INTERVAL_TSK_SW ) #define FORCEOFF_THREASHOLD 50
#define FORCEOFF_THREASHOLD (u8)( 1200 / SYS_INTERVAL_TICK /64 )
#else
#define HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW )
#define FORCEOFF_THREASHOLD (u8)( 4000 / SYS_INTERVAL_TICK /64 )
#endif
#endif #endif

View File

@ -203,6 +203,9 @@ task_status_immed do_command0( )
PM_reset_neg(); PM_reset_neg();
RESET2_neg; RESET2_neg;
vol_reset();
renge_task_immed_add( tski_vol_update );
twl_ntr_mode = 0; twl_ntr_mode = 0;
// 起動時以外はリセット不要 // 起動時以外はリセット不要
/* /*
@ -235,7 +238,7 @@ extern u8 raw_adc_temperature;
extern u8 iic_burst_state; extern u8 iic_burst_state;
extern bit temp_zone_charge_enable; extern bit temp_zone_charge_disable;
extern bit bt_chg_ready; extern bit bt_chg_ready;
/* ======================================================== /* ========================================================
@ -295,7 +298,7 @@ task_status_immed tski_mcu_info_read()
break; break;
case( 7 ): case( 7 ):
IICA = ( temp_zone_charge_enable | ( bt_chg_ready << 1 ) ); IICA = ( !temp_zone_charge_disable | ( bt_chg_ready << 1 ) );
break; break;
default: default:

View File

@ -29,6 +29,7 @@ static void send_getup_to_soc();
//========================================================= //=========================================================
extern bit info_led_off; extern bit info_led_off;
extern bit going_to_sleep; extern bit going_to_sleep;
extern bit bt_chg_ready;
static u8 timeout_sleep = 0; static u8 timeout_sleep = 0;
@ -92,17 +93,21 @@ void tsk_sys( )
// 電源投入 // // 電源投入 //
iic_mcu_start( ); iic_mcu_start( );
BT_init(); // 実機やバッテリの判定、電池残量ICの設定
bt_force_update = 0;
BT_chk(); // 実機やバッテリの判定、電池残量ICの設定
#ifndef _ALLOW_NOBATT_
if( system_status.model == MODEL_JIKKI_NOBATT ) if( system_status.model == MODEL_JIKKI_NOBATT )
{ {
renge_task_interval_run_force = 1; renge_task_interval_run_force = 1;
system_status.pwr_state = OFF_TRIG; system_status.pwr_state = OFF_TRIG;
return; return;
} }
#endif
// 残量チェック // 残量チェック
BT_get_left(); // 先に、BT_init()が実行されている必要があります。 BT_get_left(); // 先に、BT_chk()が実行されている必要があります。
if( if(
// ( vreg_ctr[VREG_C_BT_REMAIN] < 1 ) && // ( vreg_ctr[VREG_C_BT_REMAIN] < 1 ) &&
( vreg_ctr[VREG_C_BT_VOLTAGE] < ( V_TH_ZERO / 256 ) ) ( vreg_ctr[VREG_C_BT_VOLTAGE] < ( V_TH_ZERO / 256 ) )
@ -188,10 +193,10 @@ void tsk_sys( )
vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 ); vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 );
set_bit( ( iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD ) != 0 ), set_bit( ( iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD ) != 0 ),
vreg_ctr[ VREG_C_STATUS ], REG_BIT_LCD_POW ); vreg_ctr[ VREG_C_STATUS ], REG_BIT_LCD_POW );
BT_init(); BT_chk();
} }
LED_init( ); // reboot時の↑BT_Chk,BT_init後に行いたい LED_init( ); // reboot時の↑BT_Chk,BT_chk後に行いたい
system_status.reboot = 0; system_status.reboot = 0;
system_status.pwr_state = ON; system_status.pwr_state = ON;
@ -261,7 +266,7 @@ void tsk_sys( )
return; return;
} }
vreg_ctr[ VREG_C_LED_TUNE ] = LED_TUNE_ILM_OFF; vreg_ctr[ VREG_C_LED_TUNE ] = LED_TUNE_ILM_OFF;
system_status.cnt_force_off = 0; system_status.force_off = 0;
LED_stop( ); LED_stop( );
IIC_ctr_Stop( ); IIC_ctr_Stop( );
@ -304,21 +309,23 @@ void tsk_sys( )
PM_sys_pow_off( ); PM_sys_pow_off( );
iic_mcu_stop( );
timeout = 0; timeout = 0;
system_status.pwr_state = BT_CHARGE; system_status.pwr_state = BT_CHARGE;
SW_pow_mask = 1; SW_pow_mask = 1;
SW_pow_count = 0; SW_pow_count = 0;
// no break // // no break //
case BT_CHARGE: case BT_CHARGE:
if( !PM_EXTDC_n ) if( !PM_EXTDC_n )
{ {
// アダプタが刺さってるときはこのブロックを繰り返す。 // アダプタが刺さってるときはこのブロックを繰り返す。
/// ↓は中で初期化フラグをもってるので呼びまくって良い BT_chk(); // 要ポーリング(電池抜かれ検出のため)
iic_mcu_start( ); // ↑の中で必要だったらI2C_m_init呼んでます
BT_init();
// アダプタ有り:充電温度監視 // アダプタ有り:充電温度監視
if( SW_pow_count >= 10 ) // 電源スイッチが押されるのを待つ if( SW_pow_count >= 10 ) // 電源スイッチが押されるのを待つ
@ -327,19 +334,24 @@ void tsk_sys( )
system_status.poweron_reason = PWSW; system_status.poweron_reason = PWSW;
system_status.pwr_state = OFF; system_status.pwr_state = OFF;
} }
if( system_status.model != MODEL_JIKKI )
{
iic_mcu_stop( );
}
} }
else else
{ {
// 省電力へ移行 // 省電力へ移行
system_status.poweron_reason = NONE; system_status.poweron_reason = NONE;
iic_mcu_stop( );
PM_Chg_Stop(); PM_Chg_Stop();
bt_force_update = 1;
while( RWST ) while( RWST )
{;} {;}
iic_mcu_stop( );
// 割り込み待ちで寝る // // 割り込み待ちで寝る //
RTCIMK = 1; RTCIMK = 1;
@ -456,15 +468,11 @@ static void chk_emergencyExit(){
======================================================== */ ======================================================== */
static void force_off_check() static void force_off_check()
{ {
if( system_status.cnt_force_off != 0 ) if( system_status.force_off )
{
system_status.cnt_force_off += 1;
if( system_status.cnt_force_off >= ( vreg_ctr[ VREG_C_OFF_DELAY ] * 64 ) )
{ {
system_status.pwr_state = OFF_TRIG; system_status.pwr_state = OFF_TRIG;
renge_task_interval_run_force = 1; renge_task_interval_run_force = 1;
} }
}
} }

View File

@ -20,7 +20,6 @@ extern u8 mcu_info_read(); // task_misc.c
extern u8 iic_burst_state; extern u8 iic_burst_state;
extern bit vol_by_twl;
// ******************************************************** // ********************************************************
@ -297,16 +296,19 @@ void vreg_ctr_write( u8 adrs, u8 data )
vreg_ctr[ VREG_C_COMMAND3 ] = data; vreg_ctr[ VREG_C_COMMAND3 ] = data;
break; break;
case ( VREG_C_VOL_DIGITAL ): case ( VREG_C_VOL_OPTION ):
vreg_ctr[ VREG_C_VOL_DIGITAL ] = ( data & ~REG_BIT_VOL_RESET) ; // コマンドビットが混ざってる【使用時に】マスクせよ if(( vreg_ctr[ VREG_C_VOL_OPTION ] ^ data ) & REG_BIT_VOL_FORCE_SLIDER )
if(( data & REG_BIT_VOL_RESET ) != 0 )
{ {
vol_by_twl = 0;
renge_task_immed_add( tski_vol_update ); renge_task_immed_add( tski_vol_update );
} }
vreg_ctr[ VREG_C_VOL_OPTION ] = data;
break; break;
#define REG_BIT_VOL_FORCE_REG ( 1 << 2 )
#define REG_BIT_VOL_FORCE_SLIDER ( 1 << 1 )
// read only //
case ( VREG_C_MCU_VER_MAJOR ): case ( VREG_C_MCU_VER_MAJOR ):
case ( VREG_C_MCU_VER_MINOR ): case ( VREG_C_MCU_VER_MINOR ):
// VREG_C_TUNE = 0x08, // VREG_C_TUNE = 0x08,
@ -327,9 +329,9 @@ void vreg_ctr_write( u8 adrs, u8 data )
case ( VREG_C_RTC_SEC_FINE_H ): case ( VREG_C_RTC_SEC_FINE_H ):
// VREG_C_ACC_RESERVE, // VREG_C_ACC_RESERVE,
// VREG_C_ACC_HOSU_HIST = 0x4F, // VREG_C_ACC_HOSU_HIST = 0x4F,
// read only //
break; break;
// ½¾lð<E2809A>X<EFBFBD>V·é¾¯ //
default: default:
/* /*
case ( VREG_C_IRQ_MASK0 ): case ( VREG_C_IRQ_MASK0 ):
@ -348,6 +350,7 @@ void vreg_ctr_write( u8 adrs, u8 data )
case ( VREG_C_RTC_ALARM_YEAR ): case ( VREG_C_RTC_ALARM_YEAR ):
case ( VREG_C_ACC_W_ADRS ): case ( VREG_C_ACC_W_ADRS ):
case ( VREG_C_OFF_DELAY ): case ( VREG_C_OFF_DELAY ):
case ( VREG_C_VOL_DIGITAL ):
*/ */
if( adrs < VREG_C_ENDMARK_ ) if( adrs < VREG_C_ENDMARK_ )
{ {
@ -385,6 +388,15 @@ u8 vreg_ctr_read( u8 adrs )
( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x03 ) << 6 ) | // sys_mode ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x03 ) << 6 ) | // sys_mode
( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) >> 2 )); // vol32 ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) >> 2 )); // vol32
} }
else if( adrs == VREG_C_RTC_SEC_FINE_L )
{
rsub_temp = RSUBC;
return( (u8)( rsub_temp & 0xFF ) );
}
else if( adrs == VREG_C_RTC_SEC_FINE_H )
{
return( (u8)( ( rsub_temp >> 8 ) & 0xFF ) );
}
else if( adrs == VREG_C_ACC_HOSU_HIST ) else if( adrs == VREG_C_ACC_HOSU_HIST )
{ {
return( hosu_read() ); return( hosu_read() );
@ -395,15 +407,6 @@ u8 vreg_ctr_read( u8 adrs )
// vreg_free_adrs += 1; // ここで加算してしまうとインデックスがずれる // vreg_free_adrs += 1; // ここで加算してしまうとインデックスがずれる
return( temp ); return( temp );
} }
else if( adrs == VREG_C_RTC_SEC_FINE_L )
{
rsub_temp = RSUBC;
return( (u8)( rsub_temp & 0xFF ) );
}
else if( adrs == VREG_C_RTC_SEC_FINE_H )
{
return( (u8)( ( rsub_temp >> 8 ) & 0xFF ) );
}
else if( adrs == VREG_CX_INFO ) else if( adrs == VREG_CX_INFO )
{ {
// I2C_mを使うので、ここからでは割り込みが使えなくて困る // I2C_mを使うので、ここからでは割り込みが使えなくて困る

View File

@ -112,10 +112,11 @@
#define REG_BIT_TWL_IRQ_BT_EMPTY 0x10 #define REG_BIT_TWL_IRQ_BT_EMPTY 0x10
#define REG_BIT_TWL_IRQ_VOL_CHANGE 0x40 #define REG_BIT_TWL_IRQ_VOL_CHANGE 0x40
// VOL(0x25) // VOL option (0x26)
#define REG_BIT_VOL_RESET ( 1 << 6 ) #define REG_BIT_VOL_FORCE_REG ( 1 << 2 )
#define REG_BIT_VOL_FORCE_REG ( 1 << 7 ) #define REG_BIT_VOL_FORCE_SLIDER ( 1 << 1 )
#define REG_BIT_VOL_BY_SPI ( 1 << 0 )
// FORCE_REGの方が弱い
// CODEC上のPMIC NTR の代理レジスタ // CODEC上のPMIC NTR の代理レジスタ
#define REG_BIT_TWL_REQ_OFF ( 1 << 6 ) #define REG_BIT_TWL_REQ_OFF ( 1 << 6 )
@ -189,6 +190,7 @@ enum VREG_C_ADRS
VREG_C_OFF_DELAY = 0x24, VREG_C_OFF_DELAY = 0x24,
VREG_C_VOL_DIGITAL = 0x25, VREG_C_VOL_DIGITAL = 0x25,
VREG_C_VOL_OPTION,
VREG_C_LED_BRIGHT = 0x28, VREG_C_LED_BRIGHT = 0x28,
VREG_C_LED_POW, VREG_C_LED_POW,

View File

@ -21,7 +21,10 @@ u8 vreg_twl[_REG_TWL_INT_ADRS_ENDMARK];
extern bit twl_ver_read; extern bit twl_ver_read;
extern bit cam_led_update; extern bit cam_led_update;
extern bit twl_ntr_mode; extern bit twl_ntr_mode;
extern bit vol_by_twl;
extern bit vol_changed_by_twl;
/* ======================================================== /* ========================================================
@ -44,10 +47,9 @@ void vreg_twl_write( u8 adrs, u8 data )
{ {
case ( REG_TWL_INT_ADRS_VOL ): case ( REG_TWL_INT_ADRS_VOL ):
{ {
vol_by_twl = 1; vol_changed_by_twl = 1;
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = data; vreg_twl[ REG_TWL_INT_ADRS_VOL ] = data;
renge_task_immed_add( tski_vol_update ); renge_task_immed_add( tski_vol_update );
set_irq( VREG_C_IRQ2, REG_BIT_TWL_SNDVOL_CHANGE );
break; break;
} }
@ -130,7 +132,13 @@ u8 vreg_twl_read( u8 phy_adrs )
return( temp ); return( temp );
case( REG_TWL_INT_ADRS_VOL ): case( REG_TWL_INT_ADRS_VOL ):
return( vreg_twl[ REG_TWL_INT_ADRS_VOL ] ); if( vreg_ctr[ VREG_C_SND_VOL ] != 1 ){
return( vreg_ctr[ VREG_C_SND_VOL ] /2 );
}
else
{
return( 1 );
}
case( REG_TWL_INT_ADRS_VER_INFO ): case( REG_TWL_INT_ADRS_VER_INFO ):
// set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); // 速度的に無理なので // set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); // 速度的に無理なので

View File

@ -1,36 +1,16 @@
C:\WINDOWS\system32\cmd.exe /c touch magic.c 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(67) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(105) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(189) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(197) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(415) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
pm.c(482) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(485) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(762) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
pm.c(977) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1077) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1078) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1153) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(106) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(106) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(107) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(107) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(108) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(108) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(109) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(110) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(111) : CC78K0R warning W0401: Conversion may lose significant digits
batt_params.h(112) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(1095) : CC78K0R warning W0401: Conversion may lose significant digits
Compilation complete, 0 error(s) and 23 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 "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. 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 "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. 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 -gi0FFFFFFFFFFFFFFFFFFFFh -pbsr_k0r.map -nkd -gb7EFBFFh -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\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 task_sys.c
task_sys.c(193) : CC78K0R warning W0401: Conversion may lose significant digits
task_sys.c(452) : CC78K0R warning W0401: Conversion may lose significant digits
task_sys.c(454) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
Compilation complete, 0 error(s) and 3 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\task_sys.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 -gi0FFFFFFFFFFFFFFFFFFFFh -pbsr_k0r.map -nkd -gb0FEFBFFh -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. 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 -nu -ki bsr.lmf "C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\oc78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -nu -ki bsr.lmf
Object Conversion Complete, 0 error(s) and 0 warning(s) found. Object Conversion Complete, 0 error(s) and 0 warning(s) found.
@ -40,4 +20,4 @@ intel-HEX to bsr bin converter
file converted! file converted!
Build Total error(s) : 0 Total warning(s) : 23 Build Total error(s) : 0 Total warning(s) : 3

View File

@ -23,7 +23,7 @@ SubClock=None
Count=0 Count=0
[Main] [Main]
Geometry=-1211, 40, 1200, 882 Geometry=-1211, 40, 1200, 882
Window=Max Window=Normal
MDI_MAX=OFF MDI_MAX=OFF
Button=ON Button=ON
Mode=Auto Mode=Auto
@ -78,10 +78,10 @@ Symbol Type=OFF
Language=C Language=C
Kanji=SJIS Kanji=SJIS
[Source] [Source]
Geometry=56, 72, 844, 790 Geometry=86, 109, 754, 790
Window=Normal Window=Normal
DispStart=975 DispStart=83
CaretPos=988,0 CaretPos=114,20
Mode=Normal Mode=Normal
DispFile= DispFile=
Address1= Address1=
@ -140,17 +140,33 @@ SaveStart=
SaveEnd= SaveEnd=
Accumulative=ON Accumulative=ON
[Source1] [Source1]
Geometry=0, 0, 844, 790 Geometry=0, 0, 754, 790
Window=Normal Window=Normal
DispStart=952 DispStart=331
CaretPos=727,2 CaretPos=356,0
Mode=Normal
DispFile=led.c
Accumulative=ON
[Source2]
Geometry=0, 0, 754, 790
Window=Normal
DispStart=379
CaretPos=433,0
Mode=Normal
DispFile=adc.c
Accumulative=ON
[Source3]
Geometry=25, 25, 754, 790
Window=Normal
DispStart=97
CaretPos=217,0
Mode=Normal Mode=Normal
DispFile=pm.c DispFile=pm.c
Accumulative=ON Accumulative=ON
[Assemble] [Assemble]
Geometry=282, 92, 968, 626 Geometry=282, 92, 968, 626
Window=Hide Window=Hide
DispStart=864531456 DispStart=864505856
CaretPos=0,0 CaretPos=0,0
Address1= Address1=
Address2= Address2=
@ -194,17 +210,17 @@ SaveStart=
SaveEnd= SaveEnd=
[Memory] [Memory]
Geometry=224, 254, 968, 626 Geometry=224, 254, 968, 626
Window=Normal Window=Hide
Boundary=163 Boundary=0
Format=Hex Format=Hex
Mode=Byte Mode=Byte
Endian=Little Endian=
Ascii=OFF Ascii=OFF
Idtag=OFF Idtag=OFF
Address= Address=
DispStart=00007DC0 DispStart=FFFFFFFF
CaretPosData=0, 2012 CaretPosData=0, 0
CaretPosAscii=3, 2012 CaretPosAscii=0, 0
Address1= Address1=
Address2= Address2=
Address3= Address3=
@ -259,9 +275,9 @@ Destination=0
[I/O Port] [I/O Port]
Line=0 Line=0
[Stack] [Stack]
Geometry=0, 0, 400, 300 Geometry=498, 620, 400, 300
Window=Hide Window=Normal
Boundary=0 Boundary=13762687
Mode=Proper Mode=Proper
[Sfr] [Sfr]
Geometry=255, 105, 596, 915 Geometry=255, 105, 596, 915
@ -968,63 +984,69 @@ Count=0
Geometry=854, -3, 441, 595 Geometry=854, -3, 441, 595
Window=Normal Window=Normal
Boundary=18088086 Boundary=18088086
0=+iic_send_work,P,N,A,-,1 0=.p4.3,P,S,A,+,1
1=.hysteresis,P,N,A,+,1 1=.P2.4,P,S,A,+,1
2=.vreg_ctr[11],D,N,A,+,1 2=.bt_chg_ready,P,N,A,+,1
3=.system_status,.,N,A,+,1 3=.temp_zone_charge_enable,P,N,A,+,1
4=.vreg_ctr[13],H,N,A,+,1 4=.P5.1,P,S,A,+,1
5=.P4.2,P,S,A,+,1 5=.vreg_ctr,P,N,A,+,1
6=.hoge,P,N,A,+,1 6=.P5.3,P,S,A,+,1
7=.work,P,N,A,+,1 7=.heikinka_h,P,N,A,+,1
8=.new_val,P,N,A,+,1 8=.system_status,.,N,A,+,1
9=.raw_adc_temperature,D,N,A,+,1 9=.battery_manufacturer,P,N,A,+,1
10=.bt_chg_ready,P,N,A,+,1 10=.bt_comp,.,N,A,+,1
11=.pu20,P,S,A,+,1 11=.raw_adc_temperature,P,N,A,+,1
12=.temp_zone_charge_enable,P,N,A,+,1 12=.P1,B,S,A,+,1
13=.bt_remain_old,P,N,A,+,1 13=.bt_checked,P,N,A,+,1
14=.vreg_ctr,P,N,A,+,1 14=.TDR06,P,S,A,+,1
15=.system_status,.,N,A,+,1 15=.LED_dim_status,P,N,A,+,1
16=.battery_manufacturer,P,N,A,+,1 Line=16
17=.bt_comp,.,N,A,+,1
18=.per0,P,S,A,+,1
19=.pu20,P,S,A,+,1
20=.rtcc0,P,S,A,+,1
21=.vol_data,P,N,A,+,1
Line=22
[Quick Watch] [Quick Watch]
0=p4.3,P,A,1 0=temp16,P,A,1
1=work,P,A,1 1=SW_pow_count,P,A,1
2=new_val,P,A,1 2=bt_checked,P,A,1
3=vol_data,P,A,1 3=P1,B,A,1
4=hoge,P,A,1 4=PM1,B,A,1
5=P4.2,P,A,1 5=bt_param_sent,P,A,1
6=vreg_ctr[13],P,A,1 6=P5.3,P,A,1
7=vreg_ctr[11],P,A,1 7=bt_chg_ready,P,A,1
8=system_status,P,A,1 8=temp_zone_charge_enable,P,A,1
9=hysteresis,P,A,1 9=heikinka_h,P,A,1
10=pre0,P,A,1 10=P2.4,P,A,1
11=per0,P,A,1 11=P5.1,P,A,1
12=per1,P,A,1 12=raw_adc_temperature,P,A,1
13=rtcc0,P,A,1 13=LED_dim_status,P,A,1
14=pu20,P,A,1 14=LED_duty_pow_blu,P,A,1
15=iic_send_work,P,A,1 15=TDR06,P,A,1
[Software Break] [Software Break]
Geometry=792, 551, 445, 260 Geometry=792, 551, 445, 260
Window=Normal Window=Normal
Width=150 30 200 100 Width=150 30 200 100
Name0=Swb00001 Name0=Swb00002
Address0=pm.c#_BT_get_left+0xfe Address0=pm.c#_BT_get_left+0x129
Window0=ASM Window0=ASM
Status0=ON Status0=ON
Name1=Swb00004 Name1=Swb00005
Address1=pm.c#_BT_get_left+0x141 Address1=pm.c#_BT_get_left+0xd0
Window1=ASM Window1=ASM
Status1=ON Status1=ON
Name2=Swb00005 Name2=Swb00007
Address2=pm.c#_tski_BT_temp_update+0x8a Address2=pm.c#_BT_get_left+0x10f
Window2=ASM Window2=ASM
Status2=ON Status2=ON
Count=3 Name3=Swb00001
Address3=task_sys.c#_tsk_sys+0x222
Window3=ASM
Status3=ON
Name4=Swb00003
Address4=led.c#_led_pow_sleep+0x24
Window4=ASM
Status4=ON
Name5=Swb00006
Address5=pm.c#_tsk_batt+0x69
Window5=ASM
Status5=ON
Count=6
[Reset] [Reset]
Debugger=ON Debugger=ON
Symbol=OFF Symbol=OFF

View File

@ -686,6 +686,74 @@ VfiFileBoot0=
VfiFileBoot1=boot.vfi VfiFileBoot1=boot.vfi
VF78K0Rchk=0 VF78K0Rchk=0
VF78K0Rvs= VF78K0Rvs=
[ToolSet]
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|V3.60
[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=led.c
Source10=rtc.c
Source11=vreg_ctr.c
Source12=vreg_twl.c
Source13=adc.c
Source14=renge\renge.c
Source15=accero.c
Source16=self_flash.c
Source17=sw.c
Source18=task_debug.c
Source19=task_misc.c
Source20=task_sys.c
Source21=pedo_alg_thre_det2.c
Source22=ini_VECT.c
Source23=task_status.c
[IncFile]
Include1=incs_loader.h
Include2=jhl_defs.h
Include3=config.h
Include4=user_define.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=vreg_twl.h
Include11=loader.h
Include12=i2c_mcu.h
Include13=WDT.h
Include14=fsl_user.h
Include15=i2c_ctr.h
Include16=pm.h
Include17=rtc.h
Include18=reboot.h
Include19=incs.h
Include20=accero.h
Include21=pedometer.h
Include22=adc.h
Include23=led.h
Include24=batt_params.h
Include25=i2c_twl_defs.h
Include26=renge\renge_task_intval.h
Include27=i2c_twl.h
Include28=sw.h
Include29=self_flash.h
Include30=pool.h
Include31=pedo_lpf_coeff.h
Include32=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
Include33=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
Include34=voltable.h
Include35=magic.h
[BuildBefore-AfterCmd]
Before1=touch magic.c
After1=ruby nec_s_2_bsrbin2.rb bsr.hex
[Options.LK78K0R 0] [Options.LK78K0R 0]
Version=100 Version=100
O0=bsr_k0r.lmf O0=bsr_k0r.lmf
@ -785,7 +853,7 @@ P2=flash.map
P3=a.map P3=a.map
MI=0 MI=0
GB=1 GB=1
GBValue=7EFBFF GBValue=FEFBFF
KM=1 KM=1
KD=0 KD=0
KP=0 KP=0
@ -978,71 +1046,3 @@ DefaultMode2=1
DefaultMode3=1 DefaultMode3=1
DefaultMode4=1 DefaultMode4=1
DefaultMode5=1 DefaultMode5=1
[ToolSet]
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|V3.60
[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=led.c
Source10=rtc.c
Source11=vreg_ctr.c
Source12=vreg_twl.c
Source13=adc.c
Source14=renge\renge.c
Source15=accero.c
Source16=self_flash.c
Source17=sw.c
Source18=task_debug.c
Source19=task_misc.c
Source20=task_sys.c
Source21=pedo_alg_thre_det2.c
Source22=ini_VECT.c
Source23=task_status.c
[IncFile]
Include1=incs_loader.h
Include2=jhl_defs.h
Include3=config.h
Include4=user_define.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=vreg_twl.h
Include11=loader.h
Include12=i2c_mcu.h
Include13=WDT.h
Include14=fsl_user.h
Include15=i2c_ctr.h
Include16=pm.h
Include17=rtc.h
Include18=reboot.h
Include19=incs.h
Include20=accero.h
Include21=pedometer.h
Include22=adc.h
Include23=led.h
Include24=batt_params.h
Include25=i2c_twl_defs.h
Include26=renge\renge_task_intval.h
Include27=i2c_twl.h
Include28=sw.h
Include29=self_flash.h
Include30=pool.h
Include31=pedo_lpf_coeff.h
Include32=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
Include33=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
Include34=voltable.h
Include35=magic.h
[BuildBefore-AfterCmd]
Before1=touch magic.c
After1=ruby nec_s_2_bsrbin2.rb bsr.hex

View File

@ -1,15 +1,21 @@
[ProjectManager] [ProjectManager]
FrameMax=1 FrameMax=1
FrameX=168 FrameX=0
FrameY=127 FrameY=0
FrameCX=1299 FrameCX=1299
FrameCY=1044 FrameCY=1044
OpenFile1=ProjectWindow OpenFile1=ProjectWindow
PrjPos=0,2,754,3,253 PrjPos=0,2,754,3,253
OpenFile2=adc.c,0,330,330,1574,1087,18,267,18,0 OpenFile2=config.h,0,294,66,1538,823,18,42,29,0
OpenFile3=OutputWindow OpenFile3=main.c,0,125,195,1104,832,35,73,34,0
OpenFile4=task_sys.c,0,220,220,1464,977,0,137,31,0
OpenFile5=self_flash.c,0,176,176,1144,801,8,348,13,0
OpenFile6=task_misc.c,0,198,198,1166,823,48,91,48,0
OpenFile7=pedo_alg_thre_det2.c,0,220,220,1188,845,0,58,0,0
OpenFile8=pm.c,0,6,96,1250,853,26,208,0,0
OpenFile9=led.c,0,242,242,1210,867,0,348,0,0
OpenFile10=OutputWindow
OutputPos=0,36,981,694,1556 OutputPos=0,36,981,694,1556
OpenFile4=config.h,0,308,308,1552,1065,0,3,0,0
ActivePRJ=yav_mcu_bsr.prj ActivePRJ=yav_mcu_bsr.prj
[ProjectWindow] [ProjectWindow]
ProjectWindowDispType=0 ProjectWindowDispType=0

View File

@ -12,7 +12,7 @@ T=4c3198b9
8=reboot.h 8=reboot.h
9=magic.h 9=magic.h
[pm.c] [pm.c]
T=4c3318e4 T=4c3c0c4e
1=incs.h 1=incs.h
2=adc.h 2=adc.h
3=led.h 3=led.h
@ -26,7 +26,7 @@ T=4c072cf1
1=config.h 1=config.h
2=incs.h 2=incs.h
[main.c] [main.c]
T=4c32d86f T=4c3c0229
1=incs_loader.h 1=incs_loader.h
2=WDT.h 2=WDT.h
3=rtc.h 3=rtc.h
@ -36,7 +36,7 @@ T=4c32d86f
7=adc.h 7=adc.h
8=pool.h 8=pool.h
[magic.c] [magic.c]
T=4c331888 T=4c3c2c86
1=config.h 1=config.h
[WDT.c] [WDT.c]
T=4bf0d1e1 T=4bf0d1e1
@ -52,14 +52,14 @@ T=4c29c700
3=i2c_twl_defs.h 3=i2c_twl_defs.h
4=i2c_twl.h 4=i2c_twl.h
[led.c] [led.c]
T=4c31a042 T=4c3c31b3
1=incs.h 1=incs.h
2=led.h 2=led.h
[rtc.c] [rtc.c]
T=4c0cd30b T=4c3c10bc
1=incs.h 1=incs_loader.h
[vreg_ctr.c] [vreg_ctr.c]
T=4c319dfc T=4c3afe1f
1=incs.h 1=incs.h
2=vreg_ctr.h 2=vreg_ctr.h
3=rtc.h 3=rtc.h
@ -70,14 +70,14 @@ T=4c319dfc
8=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h 8=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
9=fsl_user.h 9=fsl_user.h
[vreg_twl.c] [vreg_twl.c]
T=4c2c3fca T=4c3af447
1=incs.h 1=incs.h
2=jhl_defs.h 2=jhl_defs.h
3=led.h 3=led.h
4=vreg_twl.h 4=vreg_twl.h
5=vreg_ctr.h 5=vreg_ctr.h
[adc.c] [adc.c]
T=4c32ed7a T=4c3b0f6d
1=incs.h 1=incs.h
2=adc.h 2=adc.h
3=pm.h 3=pm.h
@ -98,7 +98,7 @@ T=4c2aacdb
2=incs.h 2=incs.h
3=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h 3=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
[self_flash.c] [self_flash.c]
T=4c319f1f T=4c356ee9
1=incs_loader.h 1=incs_loader.h
2=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h 2=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
3=fsl_user.h 3=fsl_user.h
@ -107,7 +107,7 @@ T=4c319f1f
6=magic.h 6=magic.h
7=pm.h 7=pm.h
[sw.c] [sw.c]
T=4c2d5d86 T=4c3ad20e
1=incs.h 1=incs.h
2=i2c_twl.h 2=i2c_twl.h
3=i2c_ctr.h 3=i2c_ctr.h
@ -121,7 +121,7 @@ T=4c2aacdb
2=renge\renge.h 2=renge\renge.h
3=pm.h 3=pm.h
[task_misc.c] [task_misc.c]
T=4c2aacdb T=4c3aede4
1=incs.h 1=incs.h
2=renge\renge.h 2=renge\renge.h
3=pm.h 3=pm.h
@ -130,7 +130,7 @@ T=4c2aacdb
6=i2c_mcu.h 6=i2c_mcu.h
7=led.h 7=led.h
[task_sys.c] [task_sys.c]
T=4c330ab7 T=4c3c0229
1=incs.h 1=incs.h
2=i2c_twl.h 2=i2c_twl.h
3=i2c_ctr.h 3=i2c_ctr.h
@ -142,7 +142,7 @@ T=4c330ab7
9=adc.h 9=adc.h
10=self_flash.h 10=self_flash.h
[pedo_alg_thre_det2.c] [pedo_alg_thre_det2.c]
T=4c2aacdb T=4c36811e
1=incs.h 1=incs.h
2=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h 2=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
3=accero.h 3=accero.h
@ -175,11 +175,11 @@ T=4c119cde
T=4c075832 T=4c075832
1=config.h 1=config.h
[config.h] [config.h]
T=4c32adb6 T=4c3ae216
[user_define.h] [user_define.h]
T=4c2856fa T=4c2856fa
[bsr_system.h] [bsr_system.h]
T=4c22c0cc T=4c3ac965
[renge\renge.h] [renge\renge.h]
T=4c318e0f T=4c318e0f
1=renge\renge_defs.h 1=renge\renge_defs.h
@ -190,7 +190,7 @@ T=4c073c5a
T=4c284e89 T=4c284e89
1=renge\renge_defs.h 1=renge\renge_defs.h
[vreg_ctr.h] [vreg_ctr.h]
T=4c2d8983 T=4c3af447
1=config.h 1=config.h
[vreg_twl.h] [vreg_twl.h]
T=4c072cf1 T=4c072cf1
@ -205,13 +205,13 @@ T=4bf0d1e0
[i2c_ctr.h] [i2c_ctr.h]
T=4bf0d1e1 T=4bf0d1e1
[pm.h] [pm.h]
T=4c32fa1a T=4c3c0229
[rtc.h] [rtc.h]
T=4bf0d1e1 T=4bf0d1e1
[reboot.h] [reboot.h]
T=4bf0d1e1 T=4bf0d1e1
[incs.h] [incs.h]
T=4c318e3d T=4c36dec8
1=jhl_defs.h 1=jhl_defs.h
2=user_define.h 2=user_define.h
3=bsr_system.h 3=bsr_system.h
@ -225,7 +225,8 @@ T=4c318e3d
11=accero.h 11=accero.h
12=pm.h 12=pm.h
13=sw.h 13=sw.h
14=WDT.h 14=adc.h
15=WDT.h
[accero.h] [accero.h]
T=4bf0d1e1 T=4bf0d1e1
1=jhl_defs.h 1=jhl_defs.h
@ -233,12 +234,12 @@ T=4bf0d1e1
[pedometer.h] [pedometer.h]
T=4bfd1372 T=4bfd1372
[adc.h] [adc.h]
T=4bf0d1e1 T=4c3b0190
1=jhl_defs.h 1=jhl_defs.h
[led.h] [led.h]
T=4c31d05a T=4c3c1235
[batt_params.h] [batt_params.h]
T=4c2c4bd3 T=4c36b4fc
[i2c_twl_defs.h] [i2c_twl_defs.h]
T=4bf0d1e1 T=4bf0d1e1
[renge\renge_task_intval.h] [renge\renge_task_intval.h]
@ -247,7 +248,7 @@ T=4c072cf1
[i2c_twl.h] [i2c_twl.h]
T=4bf4e29e T=4bf4e29e
[sw.h] [sw.h]
T=4c070c1a T=4c3ad191
1=config.h 1=config.h
[self_flash.h] [self_flash.h]
T=4bf0d1e0 T=4bf0d1e0
@ -263,4 +264,4 @@ T=45f12258
[voltable.h] [voltable.h]
T=4c31be66 T=4c31be66
[magic.h] [magic.h]
T=4c316840 T=4c356d89