VolをTWLからも書けるように
 スライダとの後着優先になる
Codecの「書いたVolと違う値にセットされる(MAX?)」バグワークアラウンドのため、ポーリングするように再度変更
 TWLからも書けるのと併せ、そのつもりで作っていたかったので修正箇所が多い
スライダのレジスタの値を読み出されるのでスライダのアソビを考えてスケーリングするよう変更
 テーブル引きのテーブルをいじるのでは対応出来ない
ADCのフィルタの誤り。閾値付近でふらふらしてしまっていた。フィルタの意味なし
電池残量0時のデフォルトパターンを設定。
 ほぼすっからかんな電池をセットされたときなどでSoCから何も書かれてない状態の時、消灯で不便なため
電源LED autoでホタルにしない用にした。
 ホタル消そうか…
ファームが壊れ、バックアップからも復帰できないときに赤LEDを ぴぴっ、ぴぴっ と点滅させるように変更
 ファームバックアップ後、新ファーム書き込み中のある期間で電源を落とすとバックアップが消える?
 todo:デバッグコードが残っている
MGICにバッテリーパラメータを書くタイミングを変更(パラメータ転送~に時間が掛かるため)
 1)電池交換を検出したとき
 2)電源を入れようとしたときに万が一電池がすり替わってたとき
電圧で電池残量をキャップする
 分解能20mVではあまりよろしい結果が得られなかったのでMGICより下位バイトも取得するように変更
 比較部をリファクタリング
wait_msを違うモジュールに
 ROM上のbootブロックに置きたかったため
Vol更新コマンド ビットの自動クリアを忘れていた
バッテリ残量パラメータ更新
 ビットシフトが必要になったので対応 残念なコードに
電源LED赤とカメラLEDがひっくり返っていた
VOLテーブルを-10dbに更新


git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@200 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
N2232 2010-07-06 09:01:09 +00:00
parent 7dde520ba2
commit 3da96fcad8
33 changed files with 2320 additions and 2005 deletions

View File

@ -14,7 +14,7 @@
#define WDT_Restart() WDTE = WDT_RESTART_MAGIC
// 規定値以外を書くと例外でリセットがかかる
#define mcu_reset WDTE = 0xFF
#define mcu_wdt_reset WDTE = 0x0
#endif

View File

@ -22,6 +22,9 @@ bit adc_updated;
u8 adc_raw_vol;
u8 adc_raw_dep;
u8 vol_written_ctr;
bit vol_by_twl;
typedef struct filter_work
@ -38,17 +41,16 @@ filter_work work_vr_3d = {
u8 vol_data_ctr;
u8 vol_data_ctr_tmp;
filter_work work_vr_vol = {
&vol_data_ctr
&vol_data_ctr_tmp
};
u8 vol_data;
// ===================================================== //
extern void nop8();
static void adc_filter( u8 new_val, filter_work* work );
static u8 adc_scaling( u8 );
@ -82,12 +84,41 @@ void tsk_adc( )
static u8 sndvol_codec;
static u8 bt_temp_old;
#ifdef _DEBUG_PM_BOMB_VOL_
if( system_status.pwr_state == ON )
#if 0
// debug
{
static u16 loop;
static u8 dat_old;
static bit interval;
/*
// VOL書き頻度を半分にする
interval++;
if( !interval )
{
return;
}
*/
if( system_status.pwr_state == ON )
{
loop++;
if( loop == 499 ){
// vol_written_ctr = 0;
}
else if( loop == 500 ){
vol_written_ctr = 0;
loop = 0;
}
else
{
vol_written_ctr = slider_to_codec[ vol_data_ctr ];
}
}
renge_task_immed_add( tski_vol_update );
}
//*/
#endif
renge_task_immed_add( tski_vol_update ); // T = 2ms polling
if( task_interval-- != 0 )
{
@ -105,24 +136,29 @@ void tsk_adc( )
if( system_status.pwr_state == ON )
{
// 3D /////////////////////////////////////////
adc_filter( adc_raw_dep, &work_vr_3d );
adc_filter( adc_scaling( adc_raw_dep ), &work_vr_3d );
// Volume /////////////////////////////////////
if(( vreg_ctr[ VREG_C_VOL_DIGITAL ] & 0x80 ) != 0 )
{
// レジスタから強制セット
adc_raw_vol = ( vreg_ctr[ VREG_C_VOL_DIGITAL ] * 4 );
}
{
static u8 vol_old;
adc_filter( adc_raw_vol, &work_vr_vol );
adc_filter( adc_scaling( adc_raw_vol ), &work_vr_vol ); // 結果は*work_vr_volから指されるvol_data_ctr 読みにくい...
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 )
{
vol_old = vol_data_ctr;
vol_data = vol_data_ctr;
renge_task_immed_add( tski_vol_update );
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後でいいでしょう...
}
}
@ -157,22 +193,28 @@ task_status_immed tski_vol_update()
{
u8 vol_scaled;
u8 temp;
u8 i;
vol_scaled = ( vol_data / 4 ) & 0x3F;
// レジスタ更新
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = vol_data / ( 256 / 32 ); // ←adc値でよい
vreg_ctr[ VREG_C_SND_VOL ] = vol_scaled; // 64段
// SPIでかくテスト todo
// return( ERR_FINISED );
// codecに伝える
temp = slider_to_codec[ vol_scaled ];
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, temp );
// ベリファイ
if( iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL ) != temp )
if( vol_by_twl )
{
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, temp );
NOP();
temp = slider_to_codec[ vreg_twl[ REG_TWL_INT_ADRS_VOL ] * 2 ];
}
else
{
temp = vol_written_ctr;
}
// debug todo
iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL );
// codecに伝える
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, temp );
// debug todo
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 ] );
@ -338,6 +380,36 @@ u8 get_adc( u8 ch )
/* ========================================================
VRの可動範囲を考えてスケーリング
======================================================== */
#define ASOBI 10
static u8 adc_scaling( u8 orig_val )
{
u16 temp;
if( orig_val > ( 255 - ASOBI ))
{
return( 255 );
}
if( orig_val <= ASOBI )
{
return( 0 );
}
orig_val -= ASOBI;
temp = (u16)( orig_val * 256 ) / ( 256 - ( 2 * ASOBI ));
return( (u8)( temp & 0xFF ) );
}
/* ========================================================
V2
@ -346,10 +418,7 @@ u8 get_adc( u8 ch )
static void adc_filter( u8 new_val, filter_work *work )
{
u8 temp;
volatile u8 hoge;
// if( abs( new_val - *( work -> value_used )) >= 2 )
if( abs( new_val - *( work -> value_used )) > 2 )
{
// 大きく離れた
@ -371,16 +440,18 @@ static void adc_filter( u8 new_val, filter_work *work )
if( --( work -> kikan ) == 0 )
{
if( work -> diffs > (s8)( KIKAN * 0.8 ) )
if( ( work -> diffs ) == KIKAN )
// if( ( work -> diffs ) > (s8)( KIKAN * 0.8 ) )
{
*( work -> value_used ) += 1;
*( work -> value_used ) = *( work -> value_used ) + 1;
}
else if( work -> diffs < (s8)( -1 * KIKAN * 0.8 ) )
else if( ( work -> diffs ) == ( -1 * KIKAN ) )
// else if( ( work -> diffs ) < (s8)( -1 * KIKAN * 0.8 ) )
{
*( work -> value_used ) -= 1;
*( work -> value_used ) = *( work -> value_used ) - 1;
}
work -> kikan = KIKAN;
work -> diffs = 0;
work -> kikan = KIKAN;
}
}
}

View File

@ -7,43 +7,43 @@
const u8 BT_PARAM[][64] = {
// ID = 0 GND マクセル
{
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00,
0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0,
0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0,
0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20,
0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0,
0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80,
0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80,
0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0,
},
{ // ID = 1 120 ohm (ダミーでマクセル)
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00,
0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0,
0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0,
0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20,
0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0,
0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80,
0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80,
0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0,
},
{ // ID = 2 360 hom (ダミーでマクセル)
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00,
0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0,
0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0,
0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20,
0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0,
0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80,
0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00
0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80,
0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0,
},
{ // ID = 3 750 ohm ダミーでパナ
0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40,
@ -115,9 +115,9 @@ typedef struct _st_bt_comp
// 電池残量補正パラメータ
const st_bt_comp BT_COMP[] = {
// rcomp R_co_up R_co_down
{ 135, -256* 0.15, -256* 2.15 }, // maxell
{ 135, -256* 0.15, -256* 2.15 }, // dummy(M )
{ 135, -256* 0.15, -256* 2.15 }, // dummy(M )
{ 85, -256* 1.15, -256* 4.35 }, // maxell
{ 85, -256* 1.15, -256* 4.35 }, // dummy(M )
{ 85, -256* 1.15, -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 }, // panasonic
@ -134,4 +134,12 @@ const u8 BT_VERIFY_L[] = {
0xFC, 0xFC, 0xFC, // maxell, dummy, dummy,
0x67, 0x67, 0x67, 0x67 // dummy, dummy, panaso, dummy
};
const u8 BT_RCOMP_SCALE[] = {
2, 2, 2, // maxell, dummy, dummy,
1, 1, 1, 1 // dummy, dummy, panaso, dummy
};
#endif

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,7 +1,7 @@
78K0R Linker W1.31 Date:30 Jun 2010 Page: 1
78K0R Linker W1.31 Date: 6 Jul 2010 Page: 1
Command: -yC:\Program Files\NEC Electronics Tools\DEV -_msgoff -obsr.l
mf ..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10
@ -23,9 +23,9 @@ Direc-file:bsr_mcu.dr
*** Link information ***
67 output segment(s)
3B86H byte(s) real data
5270 symbol(s) defined
66 output segment(s)
3BC8H byte(s) real data
5417 symbol(s) defined
*** Memory map ***
@ -90,54 +90,51 @@ Direc-file:bsr_mcu.dr
000C4H 00000H
?CSEGSI 000C4H 0000AH CSEG
?OCDSTAD 000CEH 0000AH CSEG
LDR_CODE 000D8H 006F0H CSEG
LDR_CODE loader 000D8H 0018BH
LDR_CODE main 00263H 0006AH
LDR_CODE WDT 002CDH 00000H
LDR_CODE i2c_mcu 002CDH 002BCH
LDR_CODE 000D8H 008B6H CSEG
LDR_CODE loader 000D8H 001E0H
LDR_CODE main 002B8H 0006EH
LDR_CODE WDT 00326H 00000H
LDR_CODE i2c_mcu 00326H 002AAH
LDR_CODE self_flash
00589H 0023FH
@@LCODE 007C8H 00386H CSEG
@@LCODE @cstart 007C8H 0006DH
@@LCODE @imul 00835H 00011H
@@LCODE @lumul 00846H 0002BH
@@LCODE @isdiv 00871H 00022H
@@LCODE @iudiv 00893H 0002DH
@@LCODE @isrem 008C0H 00021H
@@LCODE @iurem 008E1H 0002FH
@@LCODE @lsdiv 00910H 00039H
@@LCODE @ludiv 00949H 0003FH
@@LCODE @ladd 00988H 0000FH
@@LCODE @llsh 00997H 0001BH
@@LCODE @lursh 009B2H 0001FH
@@LCODE @iscmp 009D1H 0000CH
@@LCODE @lband 009DDH 00014H
@@LCODE @bcdtob 009F1H 0001AH
@@LCODE @bbcd 00A0BH 00024H
@@LCODE m_fcmp 00A2FH 00073H
@@LCODE m_fcom5 00AA2H 0002AH
@@LCODE m_fcom6 00ACCH 0001FH
@@LCODE m_lstof 00AEBH 00016H
@@LCODE m_lutof 00B01H 0004DH
FSL_CODE 00B4EH 00322H CSEG
005D0H 003BEH
FSL_CODE 0098EH 00322H CSEG
FSL_CODE fsl_block_cmd
00B4EH 0002BH
0098EH 0002BH
FSL_CODE fsl_block_check
00B79H 00013H
009B9H 00013H
FSL_CODE fsl_common
00B8CH 0014FH
009CCH 0014FH
FSL_CODE fsl_reset
00CDBH 00001H
00B1BH 00001H
FSL_CODE fsl_si_ibf
00CDCH 00064H
00B1CH 00064H
FSL_CODE fsl_phySwap
00D40H 0004DH
00B80H 0004DH
FSL_CODE fsl_si_common
00D8DH 00061H
FSL_CODE fsl_swap 00DEEH 00030H
00BCDH 00061H
FSL_CODE fsl_swap 00C2EH 00030H
FSL_CODE fsl_write
00E1EH 00052H
* gap * 00E70H 00186H
00C5EH 00052H
@@LCODE 00CB0H 002AFH CSEG
@@LCODE @cstart 00CB0H 0006DH
@@LCODE @imul 00D1DH 00011H
@@LCODE @lumul 00D2EH 0002BH
@@LCODE @isdiv 00D59H 00022H
@@LCODE @iudiv 00D7BH 0002DH
@@LCODE @isrem 00DA8H 00021H
@@LCODE @iurem 00DC9H 0002FH
@@LCODE @lsdiv 00DF8H 00039H
@@LCODE @ludiv 00E31H 0003FH
@@LCODE @divuw 00E70H 00034H
@@LCODE @ladd 00EA4H 0000FH
@@LCODE @llsh 00EB3H 0001BH
@@LCODE @lursh 00ECEH 0001FH
@@LCODE @iscmp 00EEDH 0000CH
@@LCODE @lscmp 00EF9H 00014H
@@LCODE @lband 00F0DH 00014H
@@LCODE @bcdtob 00F21H 0001AH
@@LCODE @bbcd 00F3BH 00024H
* gap * 00F5FH 00097H
MGC_LOAD 00FF6H 0000AH CSEG AT
MGC_LOAD magic 00FF6H 0000AH
@ -189,125 +186,154 @@ Direc-file:bsr_mcu.dr
@@CNSTL @bcdtob 02000H 0000AH
@@CNSTL 0200AH 00010H CSEG PAGE64KP
@@CNSTL @bbcd 0200AH 00010H
@@CNSTL 0201AH 000CEH CSEG PAGE64KP
@@CNSTL m_fcom5 0201AH 000CEH
@@R_INIS 020E8H 00000H CSEG UNIT64KP
@@R_INIS @cstart 020E8H 00000H
@@R_INIS loader 020E8H 00000H
@@R_INIS pm 020E8H 00000H
@@R_INIS i2c_ctr 020E8H 00000H
@@R_INIS main 020E8H 00000H
@@R_INIS magic 020E8H 00000H
@@R_INIS WDT 020E8H 00000H
@@R_INIS i2c_mcu 020E8H 00000H
@@R_INIS i2c_twl 020E8H 00000H
@@R_INIS led 020E8H 00000H
@@R_INIS rtc 020E8H 00000H
@@R_INIS vreg_ctr 020E8H 00000H
@@R_INIS vreg_twl 020E8H 00000H
@@R_INIS adc 020E8H 00000H
@@R_INIS renge 020E8H 00000H
@@R_INIS accero 020E8H 00000H
@@R_INIT 0201AH 0003CH CSEG UNIT64KP
@@R_INIT @cstart 0201AH 00000H
@@R_INIT loader 0201AH 00000H
@@R_INIT pm 0201AH 00002H
@@R_INIT i2c_ctr 0201CH 00002H
@@R_INIT main 0201EH 00000H
@@R_INIT magic 0201EH 00000H
@@R_INIT WDT 0201EH 00000H
@@R_INIT i2c_mcu 0201EH 00000H
@@R_INIT i2c_twl 0201EH 00000H
@@R_INIT led 0201EH 00006H
@@R_INIT rtc 02024H 00000H
@@R_INIT vreg_ctr 02024H 00000H
@@R_INIT vreg_twl 02024H 00000H
@@R_INIT adc 02024H 0000AH
@@R_INIT renge 0202EH 00018H
@@R_INIT accero 02046H 00000H
@@R_INIT self_flash
02046H 00000H
@@R_INIT sw 02046H 00002H
@@R_INIT task_debug
02048H 00002H
@@R_INIT task_misc
0204AH 00000H
@@R_INIT task_sys 0204AH 00002H
@@R_INIT pedo_alg_thre_det2
0204CH 00008H
@@R_INIT ini_VECT 02054H 00000H
@@R_INIT task_status
02054H 00002H
@@R_INIT @rom 02056H 00000H
@@R_INIS 02056H 00000H CSEG UNIT64KP
@@R_INIS @cstart 02056H 00000H
@@R_INIS loader 02056H 00000H
@@R_INIS pm 02056H 00000H
@@R_INIS i2c_ctr 02056H 00000H
@@R_INIS main 02056H 00000H
@@R_INIS magic 02056H 00000H
@@R_INIS WDT 02056H 00000H
@@R_INIS i2c_mcu 02056H 00000H
@@R_INIS i2c_twl 02056H 00000H
@@R_INIS led 02056H 00000H
@@R_INIS rtc 02056H 00000H
@@R_INIS vreg_ctr 02056H 00000H
@@R_INIS vreg_twl 02056H 00000H
@@R_INIS adc 02056H 00000H
@@R_INIS renge 02056H 00000H
@@R_INIS accero 02056H 00000H
@@R_INIS self_flash
020E8H 00000H
@@R_INIS sw 020E8H 00000H
02056H 00000H
@@R_INIS sw 02056H 00000H
@@R_INIS task_debug
020E8H 00000H
02056H 00000H
@@R_INIS task_misc
020E8H 00000H
@@R_INIS task_sys 020E8H 00000H
02056H 00000H
@@R_INIS task_sys 02056H 00000H
@@R_INIS pedo_alg_thre_det2
020E8H 00000H
@@R_INIS ini_VECT 020E8H 00000H
02056H 00000H
@@R_INIS ini_VECT 02056H 00000H
@@R_INIS task_status
020E8H 00000H
@@R_INIS @rom 020E8H 00000H
@@CALT 020E8H 00000H CSEG
@@CALT @cstart 020E8H 00000H
@@CALT loader 020E8H 00000H
@@CALT pm 020E8H 00000H
@@CALT i2c_ctr 020E8H 00000H
@@CALT main 020E8H 00000H
@@CALT magic 020E8H 00000H
@@CALT WDT 020E8H 00000H
@@CALT i2c_mcu 020E8H 00000H
@@CALT i2c_twl 020E8H 00000H
@@CALT led 020E8H 00000H
@@CALT rtc 020E8H 00000H
@@CALT vreg_ctr 020E8H 00000H
@@CALT vreg_twl 020E8H 00000H
@@CALT adc 020E8H 00000H
@@CALT renge 020E8H 00000H
@@CALT accero 020E8H 00000H
02056H 00000H
@@R_INIS @rom 02056H 00000H
@@CALT 02056H 00000H CSEG
@@CALT @cstart 02056H 00000H
@@CALT loader 02056H 00000H
@@CALT pm 02056H 00000H
@@CALT i2c_ctr 02056H 00000H
@@CALT main 02056H 00000H
@@CALT magic 02056H 00000H
@@CALT WDT 02056H 00000H
@@CALT i2c_mcu 02056H 00000H
@@CALT i2c_twl 02056H 00000H
@@CALT led 02056H 00000H
@@CALT rtc 02056H 00000H
@@CALT vreg_ctr 02056H 00000H
@@CALT vreg_twl 02056H 00000H
@@CALT adc 02056H 00000H
@@CALT renge 02056H 00000H
@@CALT accero 02056H 00000H
@@CALT self_flash
020E8H 00000H
@@CALT sw 020E8H 00000H
02056H 00000H
@@CALT sw 02056H 00000H
@@CALT task_debug
020E8H 00000H
02056H 00000H
@@CALT task_misc
020E8H 00000H
@@CALT task_sys 020E8H 00000H
02056H 00000H
@@CALT task_sys 02056H 00000H
@@CALT pedo_alg_thre_det2
020E8H 00000H
@@CALT ini_VECT 020E8H 00000H
02056H 00000H
@@CALT ini_VECT 02056H 00000H
@@CALT task_status
020E8H 00000H
@@RLINIT 020E8H 00000H CSEG UNIT64KP
@@RLINIT loader 020E8H 00000H
@@RLINIT pm 020E8H 00000H
@@RLINIT i2c_ctr 020E8H 00000H
@@RLINIT main 020E8H 00000H
@@RLINIT magic 020E8H 00000H
@@RLINIT WDT 020E8H 00000H
@@RLINIT i2c_mcu 020E8H 00000H
@@RLINIT i2c_twl 020E8H 00000H
@@RLINIT led 020E8H 00000H
@@RLINIT rtc 020E8H 00000H
@@RLINIT vreg_ctr 020E8H 00000H
@@RLINIT vreg_twl 020E8H 00000H
@@RLINIT adc 020E8H 00000H
@@RLINIT renge 020E8H 00000H
@@RLINIT accero 020E8H 00000H
02056H 00000H
@@RLINIT 02056H 00000H CSEG UNIT64KP
@@RLINIT loader 02056H 00000H
@@RLINIT pm 02056H 00000H
@@RLINIT i2c_ctr 02056H 00000H
@@RLINIT main 02056H 00000H
@@RLINIT magic 02056H 00000H
@@RLINIT WDT 02056H 00000H
@@RLINIT i2c_mcu 02056H 00000H
@@RLINIT i2c_twl 02056H 00000H
@@RLINIT led 02056H 00000H
@@RLINIT rtc 02056H 00000H
@@RLINIT vreg_ctr 02056H 00000H
@@RLINIT vreg_twl 02056H 00000H
@@RLINIT adc 02056H 00000H
@@RLINIT renge 02056H 00000H
@@RLINIT accero 02056H 00000H
@@RLINIT self_flash
020E8H 00000H
@@RLINIT sw 020E8H 00000H
02056H 00000H
@@RLINIT sw 02056H 00000H
@@RLINIT task_debug
020E8H 00000H
02056H 00000H
@@RLINIT task_misc
020E8H 00000H
@@RLINIT task_sys 020E8H 00000H
02056H 00000H
@@RLINIT task_sys 02056H 00000H
@@RLINIT pedo_alg_thre_det2
020E8H 00000H
@@RLINIT ini_VECT 020E8H 00000H
02056H 00000H
@@RLINIT ini_VECT 02056H 00000H
@@RLINIT task_status
020E8H 00000H
@@RLINIT @rom 020E8H 00000H
@@CODEL 020E8H 00000H CSEG
@@CODEL pm 020E8H 00000H
@@CODEL i2c_ctr 020E8H 00000H
@@CODEL magic 020E8H 00000H
@@CODEL i2c_twl 020E8H 00000H
@@CODEL led 020E8H 00000H
@@CODEL rtc 020E8H 00000H
@@CODEL vreg_ctr 020E8H 00000H
@@CODEL vreg_twl 020E8H 00000H
@@CODEL adc 020E8H 00000H
@@CODEL renge 020E8H 00000H
@@CODEL accero 020E8H 00000H
@@CODEL sw 020E8H 00000H
02056H 00000H
@@RLINIT @rom 02056H 00000H
@@CODEL 02056H 00000H CSEG
@@CODEL pm 02056H 00000H
@@CODEL i2c_ctr 02056H 00000H
@@CODEL magic 02056H 00000H
@@CODEL i2c_twl 02056H 00000H
@@CODEL led 02056H 00000H
@@CODEL rtc 02056H 00000H
@@CODEL vreg_ctr 02056H 00000H
@@CODEL vreg_twl 02056H 00000H
@@CODEL adc 02056H 00000H
@@CODEL renge 02056H 00000H
@@CODEL accero 02056H 00000H
@@CODEL sw 02056H 00000H
@@CODEL task_debug
020E8H 00000H
02056H 00000H
@@CODEL task_misc
020E8H 00000H
@@CODEL task_sys 020E8H 00000H
02056H 00000H
@@CODEL task_sys 02056H 00000H
@@CODEL pedo_alg_thre_det2
020E8H 00000H
@@CODEL ini_VECT 020E8H 00000H
02056H 00000H
@@CODEL ini_VECT 02056H 00000H
@@CODEL task_status
020E8H 00000H
@@LCODEL 020E8H 00008H CSEG
@@LCODEL abs 020E8H 00008H
* gap * 020F0H 00010H
02056H 00000H
@@LCODEL 02056H 00008H CSEG
@@LCODEL abs 02056H 00008H
* gap * 0205EH 000A2H
MGC_MIMI 02100H 0000AH CSEG AT
MGC_MIMI magic 02100H 0000AH
@@CNST 0210AH 00290H CSEG
@ -340,88 +366,57 @@ Direc-file:bsr_mcu.dr
@@CNST ini_VECT 0239AH 00000H
@@CNST task_status
0239AH 00000H
ROM_CODE 0239AH 024F0H CSEG
ROM_CODE pm 0239AH 00889H
ROM_CODE i2c_ctr 02C23H 00060H
ROM_CODE i2c_twl 02C83H 0005EH
ROM_CODE led 02CE1H 004FBH
ROM_CODE rtc 031DCH 000E0H
ROM_CODE vreg_ctr 032BCH 00444H
ROM_CODE vreg_twl 03700H 00155H
ROM_CODE adc 03855H 001EAH
ROM_CODE renge 03A3FH 001EDH
ROM_CODE accero 03C2CH 0013DH
ROM_CODE sw 03D69H 000DDH
ROM_CODE 0239AH 0251AH CSEG
ROM_CODE pm 0239AH 0089FH
ROM_CODE i2c_ctr 02C39H 00060H
ROM_CODE i2c_twl 02C99H 0005EH
ROM_CODE led 02CF7H 004E8H
ROM_CODE rtc 031DFH 000E0H
ROM_CODE vreg_ctr 032BFH 00447H
ROM_CODE vreg_twl 03706H 00156H
ROM_CODE adc 0385CH 00249H
ROM_CODE renge 03AA5H 001C3H
ROM_CODE accero 03C68H 0013DH
ROM_CODE sw 03DA5H 000DDH
ROM_CODE task_debug
03E46H 0001BH
03E82H 0001BH
ROM_CODE task_misc
03E61H 001B1H
ROM_CODE task_sys 04012H 00332H
03E9DH 001B1H
ROM_CODE task_sys 0404EH 00320H
ROM_CODE pedo_alg_thre_det2
04344H 004C1H
0436EH 004C1H
ROM_CODE task_status
04805H 00085H
@@BASE 0488AH 004F0H CSEG BASE
@@BASE loader 0488AH 00000H
@@BASE pm 0488AH 00043H
@@BASE i2c_ctr 048CDH 00183H
@@BASE main 04A50H 00000H
@@BASE magic 04A50H 00000H
@@BASE WDT 04A50H 00000H
@@BASE i2c_mcu 04A50H 000D9H
@@BASE i2c_twl 04B29H 000CDH
@@BASE led 04BF6H 00000H
@@BASE rtc 04BF6H 00043H
@@BASE vreg_ctr 04C39H 00000H
@@BASE vreg_twl 04C39H 00000H
@@BASE adc 04C39H 000BFH
@@BASE renge 04CF8H 00000H
@@BASE accero 04CF8H 0004AH
0482FH 00085H
@@BASE 048B4H 004E7H CSEG BASE
@@BASE loader 048B4H 00000H
@@BASE pm 048B4H 00043H
@@BASE i2c_ctr 048F7H 00183H
@@BASE main 04A7AH 00000H
@@BASE magic 04A7AH 00000H
@@BASE WDT 04A7AH 00000H
@@BASE i2c_mcu 04A7AH 000D9H
@@BASE i2c_twl 04B53H 000CDH
@@BASE led 04C20H 00000H
@@BASE rtc 04C20H 00043H
@@BASE vreg_ctr 04C63H 00000H
@@BASE vreg_twl 04C63H 00000H
@@BASE adc 04C63H 000B3H
@@BASE renge 04D16H 00000H
@@BASE accero 04D16H 0004AH
@@BASE self_flash
04D42H 00000H
@@BASE sw 04D42H 00000H
04D60H 00000H
@@BASE sw 04D60H 00000H
@@BASE task_debug
04D42H 00000H
04D60H 00000H
@@BASE task_misc
04D42H 00000H
@@BASE task_sys 04D42H 00000H
04D60H 00000H
@@BASE task_sys 04D60H 00000H
@@BASE pedo_alg_thre_det2
04D42H 00000H
@@BASE ini_VECT 04D42H 00038H
04D60H 00000H
@@BASE ini_VECT 04D60H 0003BH
@@BASE task_status
04D7AH 00000H
@@R_INIT 04D7AH 0003CH CSEG UNIT64KP
@@R_INIT @cstart 04D7AH 00000H
@@R_INIT loader 04D7AH 00000H
@@R_INIT pm 04D7AH 00002H
@@R_INIT i2c_ctr 04D7CH 00002H
@@R_INIT main 04D7EH 00000H
@@R_INIT magic 04D7EH 00000H
@@R_INIT WDT 04D7EH 00000H
@@R_INIT i2c_mcu 04D7EH 00000H
@@R_INIT i2c_twl 04D7EH 00000H
@@R_INIT led 04D7EH 00006H
@@R_INIT rtc 04D84H 00000H
@@R_INIT vreg_ctr 04D84H 00000H
@@R_INIT vreg_twl 04D84H 00000H
@@R_INIT adc 04D84H 0000AH
@@R_INIT renge 04D8EH 00018H
@@R_INIT accero 04DA6H 00000H
@@R_INIT self_flash
04DA6H 00000H
@@R_INIT sw 04DA6H 00002H
@@R_INIT task_debug
04DA8H 00002H
@@R_INIT task_misc
04DAAH 00000H
@@R_INIT task_sys 04DAAH 00002H
@@R_INIT pedo_alg_thre_det2
04DACH 00008H
@@R_INIT ini_VECT 04DB4H 00000H
@@R_INIT task_status
04DB4H 00002H
@@R_INIT @rom 04DB6H 00000H
* gap * 04DB6H 00240H
04D9BH 00000H
* gap * 04D9BH 0025BH
MGC_TAIL 04FF6H 0000AH CSEG AT
MGC_TAIL magic 04FF6H 0000AH
@ -429,7 +424,7 @@ Direc-file:bsr_mcu.dr
BASE ADDRESS=FF900H SIZE=00500H
OUTPUT INPUT INPUT BASE SIZE
SEGMENT SEGMENT MODULE ADDRESS
@@DATA FF900H 003FAH DSEG BASEP
@@DATA FF900H 003FEH DSEG BASEP
@@DATA @cstart FF900H 00002H
@@DATA loader FF902H 00000H
@@DATA pm FF902H 00012H
@ -443,180 +438,180 @@ Direc-file:bsr_mcu.dr
@@DATA rtc FFBC4H 00008H
@@DATA vreg_ctr FFBCCH 00056H
@@DATA vreg_twl FFC22H 00010H
@@DATA adc FFC32H 00012H
@@DATA renge FFC44H 00016H
@@DATA accero FFC5AH 00002H
@@DATA adc FFC32H 00014H
@@DATA renge FFC46H 00016H
@@DATA accero FFC5CH 00002H
@@DATA self_flash
FFC5CH 00000H
@@DATA sw FFC5CH 00004H
FFC5EH 00002H
@@DATA sw FFC60H 00004H
@@DATA task_debug
FFC60H 00002H
FFC64H 00002H
@@DATA task_misc
FFC62H 00002H
@@DATA task_sys FFC64H 00002H
FFC66H 00002H
@@DATA task_sys FFC68H 00002H
@@DATA pedo_alg_thre_det2
FFC66H 00092H
@@DATA ini_VECT FFCF8H 00000H
FFC6AH 00092H
@@DATA ini_VECT FFCFCH 00000H
@@DATA task_status
FFCF8H 00002H
@@DATA @rom FFCFAH 00000H
@@INIT FFCFAH 0003CH DSEG BASEP
@@INIT @cstart FFCFAH 00000H
@@INIT loader FFCFAH 00000H
@@INIT pm FFCFAH 00002H
@@INIT i2c_ctr FFCFCH 00002H
@@INIT main FFCFEH 00000H
@@INIT magic FFCFEH 00000H
@@INIT WDT FFCFEH 00000H
@@INIT i2c_mcu FFCFEH 00000H
@@INIT i2c_twl FFCFEH 00000H
@@INIT led FFCFEH 00006H
@@INIT rtc FFD04H 00000H
@@INIT vreg_ctr FFD04H 00000H
@@INIT vreg_twl FFD04H 00000H
@@INIT adc FFD04H 0000AH
@@INIT renge FFD0EH 00018H
@@INIT accero FFD26H 00000H
FFCFCH 00002H
@@DATA @rom FFCFEH 00000H
@@INIT FFCFEH 0003CH DSEG BASEP
@@INIT @cstart FFCFEH 00000H
@@INIT loader FFCFEH 00000H
@@INIT pm FFCFEH 00002H
@@INIT i2c_ctr FFD00H 00002H
@@INIT main FFD02H 00000H
@@INIT magic FFD02H 00000H
@@INIT WDT FFD02H 00000H
@@INIT i2c_mcu FFD02H 00000H
@@INIT i2c_twl FFD02H 00000H
@@INIT led FFD02H 00006H
@@INIT rtc FFD08H 00000H
@@INIT vreg_ctr FFD08H 00000H
@@INIT vreg_twl FFD08H 00000H
@@INIT adc FFD08H 0000AH
@@INIT renge FFD12H 00018H
@@INIT accero FFD2AH 00000H
@@INIT self_flash
FFD26H 00000H
@@INIT sw FFD26H 00002H
@@INIT task_debug
FFD28H 00002H
@@INIT task_misc
FFD2AH 00000H
@@INIT task_sys FFD2AH 00002H
@@INIT sw FFD2AH 00002H
@@INIT task_debug
FFD2CH 00002H
@@INIT task_misc
FFD2EH 00000H
@@INIT task_sys FFD2EH 00002H
@@INIT pedo_alg_thre_det2
FFD2CH 00008H
@@INIT ini_VECT FFD34H 00000H
FFD30H 00008H
@@INIT ini_VECT FFD38H 00000H
@@INIT task_status
FFD34H 00002H
@@INIT @rom FFD36H 00000H
@@INIS FFD36H 00000H DSEG UNITP
@@INIS @cstart FFD36H 00000H
@@INIS loader FFD36H 00000H
@@INIS pm FFD36H 00000H
@@INIS i2c_ctr FFD36H 00000H
@@INIS main FFD36H 00000H
@@INIS magic FFD36H 00000H
@@INIS WDT FFD36H 00000H
@@INIS i2c_mcu FFD36H 00000H
@@INIS i2c_twl FFD36H 00000H
@@INIS led FFD36H 00000H
@@INIS rtc FFD36H 00000H
@@INIS vreg_ctr FFD36H 00000H
@@INIS vreg_twl FFD36H 00000H
@@INIS adc FFD36H 00000H
@@INIS renge FFD36H 00000H
@@INIS accero FFD36H 00000H
FFD38H 00002H
@@INIT @rom FFD3AH 00000H
@@INIS FFD3AH 00000H DSEG UNITP
@@INIS @cstart FFD3AH 00000H
@@INIS loader FFD3AH 00000H
@@INIS pm FFD3AH 00000H
@@INIS i2c_ctr FFD3AH 00000H
@@INIS main FFD3AH 00000H
@@INIS magic FFD3AH 00000H
@@INIS WDT FFD3AH 00000H
@@INIS i2c_mcu FFD3AH 00000H
@@INIS i2c_twl FFD3AH 00000H
@@INIS led FFD3AH 00000H
@@INIS rtc FFD3AH 00000H
@@INIS vreg_ctr FFD3AH 00000H
@@INIS vreg_twl FFD3AH 00000H
@@INIS adc FFD3AH 00000H
@@INIS renge FFD3AH 00000H
@@INIS accero FFD3AH 00000H
@@INIS self_flash
FFD36H 00000H
@@INIS sw FFD36H 00000H
FFD3AH 00000H
@@INIS sw FFD3AH 00000H
@@INIS task_debug
FFD36H 00000H
FFD3AH 00000H
@@INIS task_misc
FFD36H 00000H
@@INIS task_sys FFD36H 00000H
FFD3AH 00000H
@@INIS task_sys FFD3AH 00000H
@@INIS pedo_alg_thre_det2
FFD36H 00000H
@@INIS ini_VECT FFD36H 00000H
FFD3AH 00000H
@@INIS ini_VECT FFD3AH 00000H
@@INIS task_status
FFD36H 00000H
@@INIS @rom FFD36H 00000H
@@DATS FFD36H 00000H DSEG UNITP
@@DATS @cstart FFD36H 00000H
@@DATS loader FFD36H 00000H
@@DATS pm FFD36H 00000H
@@DATS i2c_ctr FFD36H 00000H
@@DATS main FFD36H 00000H
@@DATS magic FFD36H 00000H
@@DATS WDT FFD36H 00000H
@@DATS i2c_mcu FFD36H 00000H
@@DATS i2c_twl FFD36H 00000H
@@DATS led FFD36H 00000H
@@DATS rtc FFD36H 00000H
@@DATS vreg_ctr FFD36H 00000H
@@DATS vreg_twl FFD36H 00000H
@@DATS adc FFD36H 00000H
@@DATS renge FFD36H 00000H
@@DATS accero FFD36H 00000H
FFD3AH 00000H
@@INIS @rom FFD3AH 00000H
@@DATS FFD3AH 00000H DSEG UNITP
@@DATS @cstart FFD3AH 00000H
@@DATS loader FFD3AH 00000H
@@DATS pm FFD3AH 00000H
@@DATS i2c_ctr FFD3AH 00000H
@@DATS main FFD3AH 00000H
@@DATS magic FFD3AH 00000H
@@DATS WDT FFD3AH 00000H
@@DATS i2c_mcu FFD3AH 00000H
@@DATS i2c_twl FFD3AH 00000H
@@DATS led FFD3AH 00000H
@@DATS rtc FFD3AH 00000H
@@DATS vreg_ctr FFD3AH 00000H
@@DATS vreg_twl FFD3AH 00000H
@@DATS adc FFD3AH 00000H
@@DATS renge FFD3AH 00000H
@@DATS accero FFD3AH 00000H
@@DATS self_flash
FFD36H 00000H
@@DATS sw FFD36H 00000H
FFD3AH 00000H
@@DATS sw FFD3AH 00000H
@@DATS task_debug
FFD36H 00000H
FFD3AH 00000H
@@DATS task_misc
FFD36H 00000H
@@DATS task_sys FFD36H 00000H
FFD3AH 00000H
@@DATS task_sys FFD3AH 00000H
@@DATS pedo_alg_thre_det2
FFD36H 00000H
@@DATS ini_VECT FFD36H 00000H
FFD3AH 00000H
@@DATS ini_VECT FFD3AH 00000H
@@DATS task_status
FFD36H 00000H
@@DATS @rom FFD36H 00000H
FSL_DATA FFD36H 00010H DSEG UNITP
FFD3AH 00000H
@@DATS @rom FFD3AH 00000H
FSL_DATA FFD3AH 00010H DSEG UNITP
FSL_DATA fsl_common
FFD36H 00010H
@@INITL FFD46H 00000H DSEG UNIT64KP
@@INITL loader FFD46H 00000H
@@INITL pm FFD46H 00000H
@@INITL i2c_ctr FFD46H 00000H
@@INITL main FFD46H 00000H
@@INITL magic FFD46H 00000H
@@INITL WDT FFD46H 00000H
@@INITL i2c_mcu FFD46H 00000H
@@INITL i2c_twl FFD46H 00000H
@@INITL led FFD46H 00000H
@@INITL rtc FFD46H 00000H
@@INITL vreg_ctr FFD46H 00000H
@@INITL vreg_twl FFD46H 00000H
@@INITL adc FFD46H 00000H
@@INITL renge FFD46H 00000H
@@INITL accero FFD46H 00000H
FFD3AH 00010H
@@INITL FFD4AH 00000H DSEG UNIT64KP
@@INITL loader FFD4AH 00000H
@@INITL pm FFD4AH 00000H
@@INITL i2c_ctr FFD4AH 00000H
@@INITL main FFD4AH 00000H
@@INITL magic FFD4AH 00000H
@@INITL WDT FFD4AH 00000H
@@INITL i2c_mcu FFD4AH 00000H
@@INITL i2c_twl FFD4AH 00000H
@@INITL led FFD4AH 00000H
@@INITL rtc FFD4AH 00000H
@@INITL vreg_ctr FFD4AH 00000H
@@INITL vreg_twl FFD4AH 00000H
@@INITL adc FFD4AH 00000H
@@INITL renge FFD4AH 00000H
@@INITL accero FFD4AH 00000H
@@INITL self_flash
FFD46H 00000H
@@INITL sw FFD46H 00000H
FFD4AH 00000H
@@INITL sw FFD4AH 00000H
@@INITL task_debug
FFD46H 00000H
FFD4AH 00000H
@@INITL task_misc
FFD46H 00000H
@@INITL task_sys FFD46H 00000H
FFD4AH 00000H
@@INITL task_sys FFD4AH 00000H
@@INITL pedo_alg_thre_det2
FFD46H 00000H
@@INITL ini_VECT FFD46H 00000H
FFD4AH 00000H
@@INITL ini_VECT FFD4AH 00000H
@@INITL task_status
FFD46H 00000H
@@INITL @rom FFD46H 00000H
@@DATAL FFD46H 00000H DSEG UNIT64KP
@@DATAL loader FFD46H 00000H
@@DATAL pm FFD46H 00000H
@@DATAL i2c_ctr FFD46H 00000H
@@DATAL main FFD46H 00000H
@@DATAL magic FFD46H 00000H
@@DATAL WDT FFD46H 00000H
@@DATAL i2c_mcu FFD46H 00000H
@@DATAL i2c_twl FFD46H 00000H
@@DATAL led FFD46H 00000H
@@DATAL rtc FFD46H 00000H
@@DATAL vreg_ctr FFD46H 00000H
@@DATAL vreg_twl FFD46H 00000H
@@DATAL adc FFD46H 00000H
@@DATAL renge FFD46H 00000H
@@DATAL accero FFD46H 00000H
FFD4AH 00000H
@@INITL @rom FFD4AH 00000H
@@DATAL FFD4AH 00000H DSEG UNIT64KP
@@DATAL loader FFD4AH 00000H
@@DATAL pm FFD4AH 00000H
@@DATAL i2c_ctr FFD4AH 00000H
@@DATAL main FFD4AH 00000H
@@DATAL magic FFD4AH 00000H
@@DATAL WDT FFD4AH 00000H
@@DATAL i2c_mcu FFD4AH 00000H
@@DATAL i2c_twl FFD4AH 00000H
@@DATAL led FFD4AH 00000H
@@DATAL rtc FFD4AH 00000H
@@DATAL vreg_ctr FFD4AH 00000H
@@DATAL vreg_twl FFD4AH 00000H
@@DATAL adc FFD4AH 00000H
@@DATAL renge FFD4AH 00000H
@@DATAL accero FFD4AH 00000H
@@DATAL self_flash
FFD46H 00000H
@@DATAL sw FFD46H 00000H
FFD4AH 00000H
@@DATAL sw FFD4AH 00000H
@@DATAL task_debug
FFD46H 00000H
FFD4AH 00000H
@@DATAL task_misc
FFD46H 00000H
@@DATAL task_sys FFD46H 00000H
FFD4AH 00000H
@@DATAL task_sys FFD4AH 00000H
@@DATAL pedo_alg_thre_det2
FFD46H 00000H
@@DATAL ini_VECT FFD46H 00000H
FFD4AH 00000H
@@DATAL ini_VECT FFD4AH 00000H
@@DATAL task_status
FFD46H 00000H
@@DATAL @rom FFD46H 00000H
* gap * FFD46H 000BAH
FFD4AH 00000H
@@DATAL @rom FFD4AH 00000H
* gap * FFD4AH 000B6H
MEMORY=RAM2
BASE ADDRESS=FFE20H SIZE=000C0H
@ -636,22 +631,22 @@ Direc-file:bsr_mcu.dr
@@BITS rtc FFE21H.2 00000H.3
@@BITS vreg_ctr FFE21H.5 00000H.1
@@BITS vreg_twl FFE21H.6 00000H.0
@@BITS adc FFE21H.6 00000H.1
@@BITS renge FFE21H.7 00000H.2
@@BITS accero FFE22H.1 00000H.0
@@BITS adc FFE21H.6 00000H.2
@@BITS renge FFE22H.0 00000H.2
@@BITS accero FFE22H.2 00000H.0
@@BITS self_flash
FFE22H.1 00000H.0
@@BITS sw FFE22H.1 00000H.2
FFE22H.2 00000H.0
@@BITS sw FFE22H.2 00000H.2
@@BITS task_debug
FFE22H.3 00000H.0
FFE22H.4 00000H.0
@@BITS task_misc
FFE22H.3 00000H.3
@@BITS task_sys FFE22H.6 00000H.0
FFE22H.4 00000H.3
@@BITS task_sys FFE22H.7 00000H.0
@@BITS pedo_alg_thre_det2
FFE22H.6 00000H.1
@@BITS ini_VECT FFE22H.7 00000H.0
FFE22H.7 00000H.1
@@BITS ini_VECT FFE23H.0 00000H.0
@@BITS task_status
FFE22H.7 00000H.0
FFE23H.0 00000H.0
* gap * FFE23H 000B1H
@@SEGREG FFED4H 00004H DSEG AT
@@SEGREG @SEGREG FFED4H 00004H

View File

@ -11,8 +11,8 @@ MEMORY ROM : (02000H, 03000H )
; ブートブロック0に割り当てる
MERGE LDR_CODE : =BCL0
MERGE LDR_CODL : =BCL0
MERGE @@LCODE : =BCL0 ; スタートアップルーチン
MERGE FSL_CODE : =BCL0 ; =FSL ; 謹製フラッシュライブラリ
MERGE @@LCODE : =BCL0 ; スタートアップルーチン
;MERGE @@LCODEL : =BCL0
;MERGE LDR_RINT:=BCL0

View File

@ -6,13 +6,12 @@
//#define _ALLOW_NOBATT_
//#define _FORCE_INFO_LED_FULLCOLOR_
//#define _DEBUG_BT_IRQ_
#define _DEBUG_BT_TEMP_
//#define _DEBUG_BT_TEMP_
//#define _DBG_PEDO_AUTO_ENABLE_
#define _DEBUG_PM_BOMB_VOL_
#define MCU_VER_MAJOR 0x00
#define MCU_VER_MINOR 0x21
#define MCU_VER_MINOR 0x23
//#define PM_CCIC_TIM

Binary file not shown.

View File

@ -20,6 +20,7 @@
#include "bsr_system.h"
#include "renge\renge.h"
#include "loader.h"
#include "vreg_ctr.h"
#include "vreg_twl.h"

View File

@ -92,14 +92,13 @@ __interrupt void fn_intwdti( )
}
#endif
}
__interrupt void fn_intlvi( )
{
#ifdef _irq_debug_
while( 1 )
{
NOP();
}
#endif
}
__interrupt void fn_intp0(){

View File

@ -37,7 +37,7 @@ uni_info_LED info_LED;
// 赤LEDの電池残量LEDの点滅パターン
st_led_red_batt_empty led_red_batt_empty = { 0xAA, 0xAA, 0xAA, 0xAA };
st_led_red_batt_empty led_red_batt_empty = { 0x55, 0x55, 0x55, 0x55 };
// フルカラーとの自動判別のため、一時領域としてもっておく
@ -147,7 +147,6 @@ void LED_init( )
if( system_status.model == MODEL_TS_BOARD )
{
#ifdef _FORCE_INFO_LED_FULLCOLOR_
// todo debug //
system_status.info_fullcolor = 1;
#endif
}
@ -209,19 +208,7 @@ void tsk_led_pow( )
switch ( vreg_ctr[VREG_C_LED_POW] )
{
case ( LED_POW_ILM_AUTO ):
switch ( system_status.pwr_state )
{
case SLEEP:
led_pow_hotaru( );
break;
case ON:
led_pow_normal( );
break;
default:
break;
}
led_pow_normal( );
break;
case ( LED_POW_ILM_HOTARU ):

View File

@ -17,8 +17,8 @@
#define LED_duty_notify_blu TDR02
// これらはduty変えられません
#define LED_pow_red P7.5
#define LED_CAM P4.2
#define LED_pow_red P4.2
#define LED_CAM P7.5
// 旧仕様 /////////////////////////////

View File

@ -28,6 +28,7 @@
#include "reboot.h"
#include "magic.h"
// ========================================================
#if (FSL_DATA_BUFFER_SIZE>0)
@ -47,12 +48,6 @@ static fsl_u08 fsl_MK2H_bak_u08; /* }
// magic.c の記述と違わないように注意!
#define MGC_LOAD 0x0FF6
#define MGC_FOOT 0x4FF6
// ========================================================
void FSL_Open( void );
void FSL_Close( void );
@ -68,6 +63,54 @@ void main( )
{
while( 1 )
{
WDT_Restart( );
if( !RTCEN ) // これは書き替えたときにしか使えない
{
// 通常の電源投入
u8 pwup_delay0 = 0;
u8 pwup_delay1 = 0;
do
{ // 電池接続時、16ms待ってみる(チャタリング対策)
pwup_delay0 += 1;
do
{
pwup_delay1 += 1;
}
while( pwup_delay1 != 0 ); // u16にするとコンパイラが怒るんだが…。
}
while( pwup_delay0 != 0 );
}
// ファームの整合性チェック //
{
u8 i;
u8 comp = 0;
// ローダーと本体は同じバージョンか?
/// 次へのアップデートの途中で終わってないか?
for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 らし
{
comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1;
comp += ( *( u8 * )( MGC_HEAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1;
}
if( *( u8 * )( MGC_FOOT ) == 0xFF ) // 消去済のまま
{
comp += 1;
}
if( comp != 0 )
{
hdwinit2( );
// ファームリストアを試みる
firm_restore( );
// 帰ってこない。リセットをかける。
}
}
WDT_Restart( );
if( RTCEN ) // これは書き替えたときにしか使えない
{
@ -93,51 +136,13 @@ void main( )
}
system_status.reboot = 1;
}
else
else if(( my_resf & 0x01 ) != 0 )
{
// 通常の電源投入
u8 pwup_delay0 = 0;
u8 pwup_delay1 = 0;
do
{ // 電池接続時、16ms待ってみる(チャタリング対策)
pwup_delay0 += 1;
do
{
pwup_delay1 += 1;
}
while( pwup_delay1 != 0 ); // u16にするとコンパイラが怒るんだが…。
}
while( pwup_delay0 != 0 );
vreg_ctr[ VREG_C_MCU_STATUS ] |= ( 1 << 2 );
}
hdwinit2( );
}
// ファームの整合性チェック //
{
u8 i;
u8 comp = 0;
// ローダーと本体は同じバージョンか?
/// 次へのアップデートの途中で終わってないか?
for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 らし
{
comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1;
}
if( *( u8 * )( MGC_FOOT ) == 0xFF ) // 消去済のまま
{
comp += 1;
}
if( comp != 0 )
{
// ファームリストアを試みる
firm_restore( );
// 帰ってこない。リセットをかける。
}
}
// 通常運転
main_loop( );
}
@ -379,3 +384,25 @@ void hdwinit2( )
DRC0 = 0b00000000; /* DMAチャネル0の動作禁止 */
DRC1 = 0b00000000; /* DMAチャネル1の動作禁止 */
}
/******************************************************************************
ms
NOPを回すだけCPUを **
*****************************************************************************/
void wait_ms( u8 ms ){
u16 fine;
WDT_Restart();
// まだ適当です!
while( ms != 0 ){
ms--;
fine = 860;
while( fine != 0 ){
fine -= 1;
}
}
}

View File

@ -0,0 +1,7 @@
#ifndef _loader_h_
#define _loader_h_
void wait_ms( u8 );
#endif

View File

@ -9,9 +9,11 @@
#pragma section @@CNSTL MGC_LOAD AT 0x0FF6
__far const unsigned char MGC_LOAD[] = __TIME__;
#pragma section @@CNST MGC_MIMI AT 0x2100
const unsigned char MGC_HEAD[] = __TIME__;
#pragma section @@CNST MGC_TAIL AT 0x4FF6
const unsigned char MGC_TAIL[] = __TIME__;

View File

@ -41,7 +41,7 @@ void main_loop( void )
iic_mcu_start( );
EI( );
BT_chk( ); // 実機やバッテリの判定、電池残量ICの設定
BT_init( ); // 実機やバッテリの判定、電池残量ICの設定
system_status.pwr_state = OFF_TRIG;
if( system_status.reboot )
@ -55,6 +55,7 @@ void main_loop( void )
{
system_status.pwr_state = ON_TRIG;
}
vreg_ctr[VREG_C_BT_REMAIN] = 100;
}
vreg_ctr_init( );

View File

@ -28,11 +28,18 @@ bit bt_chg_ready; //
u8 chg_led_override; // アダプタ差したとき、充電するしないに関わらずしばらく点灯させる
// ========================================================
static void BT_maker_detect();
static void BT_mgic_init();
// ========================================================
#ifdef _PMIC_TWL_
u8 blset;
#endif
/* ========================================================
 
@ -59,14 +66,14 @@ err PM_LCD_on( )
rv = PM_chk_LDSW( );
if( rv != 0 )
if( rv != 0 )
{
// 電源起動エラーなら電源も切れてしまう。ここではケアしない
vreg_ctr[VREG_C_STATUS] |= REG_BIT_LCD_POW;
set_irq( VREG_C_IRQ3, REG_BIT_LCD_ON );
SND_DEPOP_SND_ENABLE;
return ( ERR_ERR );
return ( ERR_ERR );
}
#ifdef _PMIC_TWL_
@ -246,9 +253,7 @@ err PM_sys_pow_on( )
PM_LDSW_on( );
wait_ms( 1 );
wait_ms( DELAY_PM_TW_PWUP );
wait_ms( 1 + DELAY_PM_TW_PWUP );
PM_VDD_normMode();
PM_VDD_on( );
@ -696,9 +701,9 @@ void tsk_batt( )
***********************************************************/
#define swap_endian_16( x ) (unsigned int)(( x << 8 ) | ( x >> 8 ))
void BT_chk( )
void BT_init( )
{
u8 temp;
BT_VENDER battery_manufacturer_old;
union{
u16 _u16; // endian 注意
struct{
@ -709,51 +714,21 @@ void BT_chk( )
BT_DET_P = 1;
BT_TEMP_P = 1;
wait_ms(1); // チャージに時間が掛かる
wait_ms(1); // 電圧が上がるのに時間が掛かる
// 電池温度測定 //
// TS,白箱判定も兼ねるのでこっちが先でないとダメ
raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP );
battery_manufacturer_old = battery_manufacturer;
BT_maker_detect();
if( battery_manufacturer != battery_manufacturer_old )
{
BT_VENDER battery_manufacturer_old = battery_manufacturer;
// 電池メーカーの識別
temp = get_adc( ADC_SEL_BATT_DET );
BT_DET_P = 0;
if( temp > 233 )
battery_manufacturer = BT_VENDER_OPEN;
else if( temp > 197 )
battery_manufacturer = BT_VENDER_6;
else if( temp > 158 )
battery_manufacturer = BT_VENDER_PANA;
else if( temp > 123 )
battery_manufacturer = BT_VENDER_4;
else if( temp > 79 )
battery_manufacturer = BT_VENDER_3;
else if( temp > 33 )
battery_manufacturer = BT_VENDER_2;
else if( temp > 5 )
battery_manufacturer = BT_VENDER_1;
else
battery_manufacturer = BT_VENDER_MAXELL;
if( battery_manufacturer != battery_manufacturer_old )
{
if( battery_manufacturer < BT_VENDER_OPEN )
{
// バッテリが変わった //
bt_comp = BT_COMP[ battery_manufacturer ]; // バッテリパラメータ変更
wait_ms( 10 );
// 0. バッテリ残量IC クイックスタート
dat_16._u16 = swap_endian_16( 0x4000 ); // quick start
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_MODE, 2, &dat_16 );
bt_chg_ready = 1;
}
else
{
// 電池が外された
bt_chg_ready = 0;
}
}
// バッテリが変わった //
BT_mgic_init(); // battery_manufacturer == BT_VENDER_OPEN 時は来ないのだ!
tski_BT_temp_update( ); // 温度のtemp。 残量ICに行きます
bt_chg_ready = 1;
}
// 電池温度監視スタート
@ -763,8 +738,34 @@ void BT_chk( )
void BT_maker_detect()
{
u8 temp;
void BT_init( )
// 電池メーカーの識別
temp = get_adc( ADC_SEL_BATT_DET );
BT_DET_P = 0;
if( temp > 233 )
battery_manufacturer = BT_VENDER_OPEN;
else if( temp > 197 )
battery_manufacturer = BT_VENDER_6;
else if( temp > 158 )
battery_manufacturer = BT_VENDER_PANA;
else if( temp > 123 )
battery_manufacturer = BT_VENDER_4;
else if( temp > 79 )
battery_manufacturer = BT_VENDER_3;
else if( temp > 33 )
battery_manufacturer = BT_VENDER_2;
else if( temp > 5 )
battery_manufacturer = BT_VENDER_1;
else
battery_manufacturer = BT_VENDER_MAXELL;
}
void BT_mgic_init()
{
u8 temp;
u8 origParam[4];
@ -776,20 +777,26 @@ void BT_init( )
}chars;
}dat_16;
bt_comp = BT_COMP[ battery_manufacturer ]; // バッテリパラメータ変更
wait_ms( 10 ); // MGICの起動に掛かる
// 0. バッテリ残量IC クイックスタート
dat_16._u16 = swap_endian_16( 0x4000 ); // quick start
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_MODE, 2, &dat_16 );
/*
// PMIC バージョン読み出し
// temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER );
// vreg_ctr[ VREG_C_PM_INFO ] = temp;
/// デバッグ用は別にまとめた
temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER );
vreg_ctr[ VREG_C_PM_INFO ] = temp;
// デバッグ用は別にまとめた
*/
/*
// -1. リセットをかけてみる
dat_16._u16 = swap_endian_16( 0x5400 ); // reset
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_COMMAND, 2, &dat_16 ); // こいつはNACKを返す
*/
// 電池温度測定(TS,白箱判定も兼ねる) //
raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP );
*/
// 1. ロック解除
@ -845,7 +852,7 @@ void BT_init( )
if( system_status.model == MODEL_JIKKI )
{
// wait_ms( 5 + 1 ); I2C_mの初期化時にウェイト入れてるので不要
// wait_ms( 5 + 1 ); にウェイト入れてるので不要
// 2. 初期パラメータを一時保存
iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam );
@ -882,6 +889,7 @@ void BT_init( )
// カスタムモデル書き込みOK
}else{
// 失敗だったらリトライするのか?
NOP();
}
// 10.元のRCOMPとOCVを書き戻す
@ -892,7 +900,6 @@ void BT_init( )
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16 );
// おしまい //
tski_BT_temp_update( ); // 温度のtemp。 残量ICに行きます
}
}
@ -962,9 +969,7 @@ task_status_immed tski_BT_temp_update( )
 BT_init()
**********************************************************/
void BT_get_left(){
u8 temp[2];
// 電池残量更新 //
u8 temp_fuel[2];
#ifdef _DEBUG_BT_IRQ_
if( vreg_ctr[ VREG_C_COMMAND3 ] == 'd' )
@ -976,76 +981,94 @@ void BT_get_left(){
{
if( system_status.model == MODEL_TS_BOARD )
{
// TS //
vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
}
else if( system_status.model == MODEL_SHIROBAKO )
{
if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp ) != ERR_SUCCESS )
// 白箱 //
if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp_fuel ) != ERR_SUCCESS )
{
// エミュレーション機能がおかしい
vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
}
else
{
vreg_ctr[ VREG_C_BT_REMAIN ] = temp[0];
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1];
vreg_ctr[ VREG_C_BT_REMAIN ] = temp_fuel[0];
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp_fuel[1];
}
}
else
{ // 実機
if(( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_GASGAUGE_ERR ) == 0 )
{
u8 temp_v[2];
u8 temp_force_fule_left;
u16 temp16;
// 実機 //
// 残量リード
if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp_fuel ) != ERR_SUCCESS )
{
temp[0] = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL );
if( iic_mcu_result != ERR_SUCCESS )
// 残量ICがNACK
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR;
bt_chg_ready = 0;
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
system_status.cnt_force_off = 1; // 強制電源断フラグ
}
else
{
// バッテリパラメータの関係でビットシフトが必要
temp16 = ( temp_fuel[0] << 8 ) + temp_fuel[1];
temp16 /= BT_RCOMP_SCALE[ battery_manufacturer ];
temp_fuel[0] = ( temp16 >> 8 ) & 0xFF;
temp_fuel[1] = temp16 & 0xFF;
// 電圧でキャップ
if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL, 2, temp_v ) == ERR_SUCCESS )
{
// バッテリ残量が取れなくなった
vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR;
bt_chg_ready = 0;
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
system_status.cnt_force_off = 1; // 強制電源断フラグ
}
else
{ // 通常パス
vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0];
vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp_v[0];
if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp ) == ERR_SUCCESS )
{
vreg_ctr[ VREG_C_BT_REMAIN ] = temp[0];
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1];
if( battery_manufacturer > BT_VENDER_6 )
{
// 来ないはずだが
NOP();
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = 0;
}
}
temp16 = ( temp_v[0] << 8 ) + temp_v[1];
if( BT_CHG_Ena && !BT_CHG_n ){
vreg_ctr[ VREG_C_BT_REMAIN ] = 100;
}
// モデルゲージと実際との乖離が大きい/電圧がPMICの限界を超えそう
else if( vreg_ctr[ VREG_C_BT_VOLTAGE ] < V_TH_ZERO )
if( temp16 > V_TH_LO )
{
// 電圧が規定値になってしまったので強制off
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
temp_force_fule_left = 100;
}
else if(( vreg_ctr[ VREG_C_BT_VOLTAGE ] < V_TH_EMPTY ) && ( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_EMPTY ))
else if( temp16 > V_TH_EMPTY )
{
vreg_ctr[ VREG_C_BT_REMAIN ] = BATT_TH_EMPTY;
temp_force_fule_left = 10;
}
else if(( vreg_ctr[ VREG_C_BT_VOLTAGE ] < V_TH_LO ) && ( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_LO ))
else if( temp16 > V_TH_ZERO )
{
vreg_ctr[ VREG_C_BT_REMAIN ] = BATT_TH_LO;
temp_force_fule_left = 5;
}
else
{
temp_force_fule_left = 0;
}
}
}
// もう特に何もすること無いと思う...
if( BT_CHG_Ena && !BT_CHG_n ){
vreg_ctr[ VREG_C_BT_REMAIN ] = 100;
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = 0;
}
else
{
if( temp_force_fule_left > temp_fuel[0] )
{
vreg_ctr[ VREG_C_BT_REMAIN ] = temp_fuel[0];
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp_fuel[1];
}
else
{
vreg_ctr[ VREG_C_BT_REMAIN ] = temp_force_fule_left;
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = 0;
}
}
}
}
// 残量で割り込み。急激に減ると飛ぶことがある //
{
static u8 bt_remain_old;

View File

@ -15,12 +15,15 @@
#define BATT_TH_LO 10
#define BATT_TH_EMPTY 5
/*
#define V_K 16 / 1.25
#define V_TH_LO (u8)( 3200 / V_K )
#define V_TH_EMPTY (u8)( 3150 / V_K )
#define V_TH_ZERO (u8)( 3100 / V_K )
#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_EMPTY 40320
#define V_TH_ZERO 39680
//=========================================================
#define LED_CHARGE P2.4
@ -135,7 +138,6 @@ void PM_LCD_off( );
err PM_BL_set( u8 );
void BT_chk();
void BT_init();
void BT_get_left();

View File

@ -299,23 +299,3 @@ imm_list_sort_fin:
}
/******************************************************************************
ms
NOPを回すだけCPUを **
*****************************************************************************/
void wait_ms( u8 ms ){
u16 fine;
WDT_Restart();
// まだ適当です!
while( ms != 0 ){
ms--;
fine = 860;
while( fine != 0 ){
fine -= 1;
}
}
}

View File

@ -17,8 +17,6 @@ err renge_task_immed_run();
err renge_task_immed_add( task_status_immed* );
// static err renge_task_immed_del( u8 );
void wait_ms( u8 );
//******************************************************************************

View File

@ -16,7 +16,9 @@
#include "i2c_ctr.h"
#include "pool.h"
#include "magic.h"
#include "pm.h"
// ========================================================
const u8 fsl_fx_MHz_u08 = 8;
@ -74,6 +76,9 @@ void firm_restore( );
static err my_FSL_Init();
static err firm_duplicate( u8 block_src, u8 block_dest );
void alert( u8 );
void led_print( u8 );
// ========================================================
@ -126,9 +131,10 @@ void firm_update( )
target_block <= UPDATE_BLOCK_LAST;
target_block += 1 )
{
// 新ファーム領域削除
FSL_Erase( target_block );
/* すでに消してある。でないと中断されたとき終了してるか判別出来ない
// // 新ファーム領域削除
// FSL_Erase( target_block );
*/
// 分割書き込み
for( split_write_count = 0;
( ( split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM )
@ -164,22 +170,28 @@ void firm_update( )
!= FSL_OK )
{
// 書き込み後のチェックエラー
while(1){}
// リストア
firm_duplicate( UPDATE_BLOCK_LAST +1,
FIRM_TOP );
firm_duplicate( UPDATE_BLOCK_LAST +1, FIRM_TOP );
FSL_ForceReset();
// 戻ってこない //
}
}
// 1ブロック書き込み完了。内部ベリファイを行う
P1.5 = 1;
DBG_LED_on;
if( FSL_IVerify( target_block ) != FSL_OK ){
while(1){}
// 再度消去→書き込み ベリファイを繰り返すだけじゃダメでした... todo…
// リストア
firm_duplicate( UPDATE_BLOCK_LAST +1, FIRM_TOP );
FSL_ForceReset();
// 戻ってこない //
}
DBG_LED_off;
P1.5 = 0;
if( SPD )
{
@ -210,8 +222,7 @@ void firm_update( )
{
// データ(マジックナンバーしか見てない)エラー
// リストア
firm_duplicate( UPDATE_BLOCK_LAST,
FIRM_TOP );
firm_duplicate( UPDATE_BLOCK_LAST, FIRM_TOP );
FSL_ForceReset(); // リセット
// 戻ってこない //
}
@ -229,24 +240,129 @@ void firm_update( )
======================================================== */
void firm_restore( )
{
my_FSL_Init();
PM1.5 = 0;
// バックアップは正常? //
{
u16 i;
u8 comp = 0;
for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 らし
{
comp += ( *( __far u8 * )( MGC_LOAD_BKUP + i ) == *( u8 * )( MGC_HEAD_BKUP + i ) ) ? 0 : 1;
comp += ( *( u8 * )( MGC_HEAD_BKUP + i ) == *( u8 * )( MGC_FOOT_BKUP + i ) ) ? 0 : 1;
}
if( *( u8 * )( MGC_FOOT_BKUP ) == 0xFF )
{
comp += 1;
}
if( comp != 0 )
{
// バックアップ領域も壊れた...
comp = 0;
// 3.3Vが上がらないと困る
EI( );
iic_mcu_start( );
RESET2_ast;
FCRAM_RST_ast;
GYRO_DISABLE();
PM_LDSW_on();
wait_ms( 1 + DELAY_PM_TW_PWUP );
PM_VDD_on( );
while(1)
{
WDT_Restart();
{
// 赤LED ピコピコ
comp++;
P1.5 = ( comp == 1 || comp == 3 )? 1: 0;
if( comp == 8 )
{
comp = 0;
}
}
{
// 電源ボタンで電源off
static u8 sw_hold_count;
if( !SW_POW_n )
{
sw_hold_count++;
}
else
{
sw_hold_count = 0;
}
if( sw_hold_count > 16 )
{
sw_hold_count = 0;
// 電源off
PM_LDSW_off( );
break;
}
}
// ウェイト
for( i = 1; i != 0; i++ )
{
NOP();
NOP();
NOP();
NOP();
}
}
{
// ど、どうしよう…。
KRM = ( KR_SW_POW ); // Mask ではなく、Modeなのだそうだ。紛らわしい
MK0 = 0xFFFF;
MK1 = ~( INT_MSK1_KR );
MK2L = 0xFF;
// PU5 そのまま
PU7 = 0b00001000; // PWSWI
PU20 = 0x00; // SW_HOME 停止
STOP( );
mcu_wdt_reset;
}
}
}
if( my_FSL_Init() != ERR_SUCCESS ){
alert(1);
}
/* ファームのリストア
0x4800 - 0x7FFF ( 18 - 27)
0x2000 - 0x47FF ( 8 - 17)
*/
firm_duplicate( UPDATE_BLOCK_LAST +1, FIRM_TOP );
if( firm_duplicate( UPDATE_BLOCK_LAST +1, FIRM_TOP ) != ERR_SUCCESS )
{
alert(2);
}
// todo
//  リストア失敗したら、LEDちかちかとかさせて、サービス送りにしてもらう
// リブート
FSL_InvertBootFlag( );
if( FSL_InvertBootFlag() != ERR_SUCCESS )
{
alert(3);
}
FSL_SwapBootCluster();
}
// ========================================================
static void FSL_Open( void )
{
@ -272,7 +388,11 @@ static void FSL_Open( void )
MK0 = 0xFFFF;
MK1 = 0xFFFF;
MK2 = 0xFFFF;
/*
LVIM = 0b00000010;
LVIS = 0x08;
LVIM = 0b10000010;
*/
FSL_FLMD0_HIGH; // フラッシュ書き替え許可
}
@ -315,18 +435,23 @@ static err firm_duplicate( u8 block_src,
u8 split_write_count; // ブロックへちまちま書き込むカウンタ
__far u8* p_src = ( __far u8* )( block_src * 0x400 );
led_print(1);
// 書き込み先ブロックの数だけ繰り返す
for( target_block = block_dest;
target_block < block_dest + FIRM_SIZE;
target_block < ( block_dest + FIRM_SIZE );
target_block += 1 )
{
led_print(2);
WDT_Restart( );
// ブロック消去
while( FSL_BlankCheck( target_block ) != FSL_OK )
{
led_print(3);
FSL_Erase( target_block );
}
led_print(4);
// 分割書き込み分繰り返す
for( split_write_count = 0;
split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM;
@ -335,6 +460,8 @@ static err firm_duplicate( u8 block_src,
u16 buff_written_size;
u8* p_buff;
WDT_Restart( );
// 書き込みデータをバッファにためる
buff_written_size = 0;
p_buff = &pool.self_update_work[0];
@ -353,16 +480,22 @@ static err firm_duplicate( u8 block_src,
( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) )
!= FSL_OK )
{
// todo リカバリ? //
// リカバリはリブート時 todo //
FSL_Close( );
led_print(5);
while(1){}
return ( ERR_ERR );
}
}
led_print(6);
// 1ブロック書き込み完了。内部電圧チェックを行う
while( FSL_IVerify( target_block ) != FSL_OK ){
// todo 失敗時?
;
while( FSL_IVerify( target_block ) != FSL_OK )
{
// リカバリはリブート時 todo //
led_print(7);
while(1){}
return ( ERR_ERR );
}
}
return( ERR_SUCCESS );
@ -375,6 +508,8 @@ static err firm_duplicate( u8 block_src,
======================================================== */
static err my_FSL_Init()
{
u8 rv;
RTCE = 0;
// 書き替え前準備 //
@ -382,9 +517,9 @@ static err my_FSL_Init()
FSL_Open( ); // 割り込み禁止など
FSL_Init( &pool.self_update_work[0] ); // ライブラリ初期化。割り込み中断考慮せず
FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず
rv = FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず
return( ERR_SUCCESS );
return( (err)rv );
}
@ -398,6 +533,38 @@ task_status_immed tski_mcu_reset()
FSL_Close( );
// 保険? //
// WDTE = 0xAA; // WDTで再起動テスト向け
// mcu_wdt_reset; // WDTで再起動テスト向け
return( ERR_SUCCESS ); // no reach
}
void alert( u8 num )
{
u8 i;
while(1)
{
WDT_Restart();
P1.5 = 1;
for( i = 0; i < num; i++ )
{
DBG_LED_on;
DBG_LED_off;
}
P1.5 = 0;
}
}
void led_print( u8 num )
{
u8 i;
DBG_LED_on;
for( i = 0; i < num; i++ )
{
P1.5 = 1;
P1.5 = 0;
}
DBG_LED_off;
}

View File

@ -19,13 +19,8 @@
#define INTERVAL_TSK_SW 8
#define CLICK_THRESHOLD 2
#ifdef _FORCE_OFF_1SEC_
#define HOLD_THREASHOLD (u8)( 800 / INTERVAL_TSK_SW )
#define FORCEOFF_THREASHOLD (u8)( 1000 / INTERVAL_TSK_SW )
#else
#define HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW )
#define FORCEOFF_THREASHOLD (u8)( 4000 / INTERVAL_TSK_SW )
#endif
*/
//=========================================================

View File

@ -83,16 +83,15 @@ void tsk_sys( )
// todo debug
#ifdef _DEBUG_BT_IRQ_
vreg_ctr[ VREG_C_DBG01 ] = 99; // todo (仮)
vreg_ctr[ VREG_C_DBG01 ] = 99;
#endif
#ifdef _DEBUG_BT_TEMP_
vreg_ctr[ VREG_C_DBG01 ] = 0x80; // todo (仮)
vreg_ctr[ VREG_C_DBG01 ] = 0x80;
#endif
vreg_ctr[ VREG_C_COMMAND3 ] = 0;
// 電源投入 //
iic_mcu_start( );
BT_chk();
BT_init(); // 実機やバッテリの判定、電池残量ICの設定
if( system_status.model == MODEL_JIKKI_NOBATT )
@ -105,7 +104,7 @@ void tsk_sys( )
// 残量チェック
BT_get_left(); // 先に、BT_init()が実行されている必要があります。
if(( vreg_ctr[VREG_C_BT_REMAIN] < 1 ) &&
( vreg_ctr[VREG_C_BT_VOLTAGE] < ( 3150 / 16 / 1.25 ) ))
( vreg_ctr[VREG_C_BT_VOLTAGE] < ( V_TH_ZERO / 256 ) ))
{
// 電池が少ないので起動させない(電圧チェックもされてる)
renge_task_interval_run_force = 1;
@ -187,7 +186,6 @@ void tsk_sys( )
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 ),
vreg_ctr[ VREG_C_STATUS ], REG_BIT_LCD_POW );
BT_chk();
BT_init();
}
@ -319,7 +317,7 @@ void tsk_sys( )
// アダプタが刺さってるときはこのブロックを繰り返す。
/// ↓は中で初期化フラグをもってるので呼びまくって良い
iic_mcu_start( );
BT_chk( );
BT_init();
// アダプタ有り:充電温度監視
if( SW_pow_count >= 10 ) // 電源スイッチが押されるのを待つ

View File

@ -1,5 +1,6 @@
#ifdef _10db_
// max -10db
/*
const u8 slider_to_codec[64] =
{
127, 127, 127, 127, 126, 125, 123, 122,
@ -11,6 +12,18 @@ const u8 slider_to_codec[64] =
72, 71, 70, 68, 67, 66, 64, 63,
62, 61, 59, 58, 57, 56, 55, 55
};
*/
const u8 slider_to_codec[64] =
{
127, 126, 125, 124, 122, 121, 120, 119,
118, 117, 116, 114, 113, 112, 111, 110,
109, 108, 106, 105, 104, 103, 102, 101,
100, 98, 97, 96, 95, 94, 93, 92,
90, 89, 88, 87, 86, 85, 83, 82,
81, 80, 79, 78, 77, 75, 74, 73,
73, 72, 71, 70, 69, 67, 66, 65,
64, 63, 62, 61, 59, 58, 57, 56
};
#endif
#ifdef _15db_

View File

@ -15,9 +15,13 @@ CTR MCU I2C
#include "fsl_user.h"
extern u8 mcu_info_read(); // task_misc.c
extern u8 iic_burst_state;
extern bit vol_by_twl;
// ********************************************************
#ifdef _DBG_PEDO_AUTO_ENABLE_
@ -287,16 +291,17 @@ void vreg_ctr_write( u8 adrs, u8 data )
case ( 'w' ):
// WDTで再起動テスト向け
WDTE = 0xAA;
mcu_wdt_reset;
break;
}
vreg_ctr[ VREG_C_COMMAND3 ] = data;
break;
case ( VREG_C_VOL_DIGITAL ):
vreg_ctr[ VREG_C_VOL_DIGITAL ] = ( data & ~0x40 ); // force vol update bit
if(( data & 0x40 ) != 0 )
vreg_ctr[ VREG_C_VOL_DIGITAL ] = ( data & ~REG_BIT_VOL_RESET) ; // コマンドビットが混ざってる【使用時に】マスクせよ
if(( data & REG_BIT_VOL_RESET ) != 0 )
{
vol_by_twl = 0;
renge_task_immed_add( tski_vol_update );
}
break;

View File

@ -30,7 +30,6 @@
#define REG_BIT_GASGAUGE_ERR ( 1 << 0 )
// VREG_C_IRQ0
#define REG_BIT_VR_SNDVOL_CHANGE ( 1 << 7 )
#define REG_BIT_IRQ_WDT_RESET ( 1 << 7 )
#define REG_BIT_SHELL_OPEN ( 1 << 6 )
#define REG_BIT_SHELL_CLOSE ( 1 << 5 )
@ -113,6 +112,10 @@
#define REG_BIT_TWL_IRQ_BT_EMPTY 0x10
#define REG_BIT_TWL_IRQ_VOL_CHANGE 0x40
// VOL(0x25)
#define REG_BIT_VOL_RESET ( 1 << 6 )
#define REG_BIT_VOL_FORCE_REG ( 1 << 7 )
// CODEC上のPMIC NTR の代理レジスタ
#define REG_BIT_TWL_REQ_OFF ( 1 << 6 )

View File

@ -21,10 +21,7 @@ u8 vreg_twl[_REG_TWL_INT_ADRS_ENDMARK];
extern bit twl_ver_read;
extern bit cam_led_update;
extern bit twl_ntr_mode;
extern u8 vol_data;
extern bit vol_by_twl;
/* ========================================================
@ -37,7 +34,6 @@ void vreg_twl_init( )
vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = 0;
}
// ========================================================
// I2C仮想レジスタに書く・何かアクションする
// 引数 adrs は内部アドレス
@ -48,9 +44,10 @@ void vreg_twl_write( u8 adrs, u8 data )
{
case ( REG_TWL_INT_ADRS_VOL ):
{
set_irq( VREG_C_IRQ2, REG_BIT_TWL_SNDVOL_CHANGE );
vol_data = data * 8;
vol_by_twl = 1;
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = data;
renge_task_immed_add( tski_vol_update );
set_irq( VREG_C_IRQ2, REG_BIT_TWL_SNDVOL_CHANGE );
break;
}

View File

@ -3,6 +3,21 @@ C:\WINDOWS\system32\cmd.exe /c touch 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 adc.c
adc.c(121) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
adc.c(146) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(151) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(160) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(301) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(325) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add'
adc.c(345) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(422) : CC78K0R warning W0745: Expected function prototype
adc.c(446) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(451) : CC78K0R warning W0401: Conversion may lose significant digits
adc.c(151) : CC78K0R warning W0401: Conversion may lose significant digits
Compilation complete, 0 error(s) and 11 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\adc.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 -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
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
@ -13,4 +28,4 @@ intel-HEX to bsr bin converter
file converted!
Build Total error(s) : 0 Total warning(s) : 0
Build Total error(s) : 0 Total warning(s) : 11

View File

@ -78,10 +78,10 @@ Symbol Type=OFF
Language=C
Kanji=SJIS
[Source]
Geometry=83, 74, 844, 790
Geometry=114, 70, 844, 790
Window=Normal
DispStart=269
CaretPos=321,0
DispStart=247
CaretPos=281,0
Mode=Normal
DispFile=
Address1=
@ -142,7 +142,7 @@ Accumulative=ON
[Assemble]
Geometry=282, 92, 968, 626
Window=Hide
DispStart=864505856
DispStart=864338944
CaretPos=0,0
Address1=
Address2=
@ -185,18 +185,18 @@ SaveRange=Screen
SaveStart=
SaveEnd=
[Memory]
Geometry=218, 29, 968, 626
Window=Hide
Boundary=0
Geometry=224, 254, 968, 626
Window=Normal
Boundary=163
Format=Hex
Mode=Byte
Endian=
Endian=Little
Ascii=OFF
Idtag=OFF
Address=
DispStart=FFFFFFFF
CaretPosData=0, 0
CaretPosAscii=0, 0
DispStart=00007DC0
CaretPosData=0, 2012
CaretPosAscii=3, 2012
Address1=
Address2=
Address3=
@ -867,14 +867,14 @@ SaveStart=
SaveEnd=
[Register]
Geometry=975, 515, 272, 397
Window=Hide
Window=Normal
Mode=Hex
Boundary=174
Pickup=OFF
Name=Functional
Register Bank=0
RP0=1
RP1=1
RP1=5
RP2=1
RP3=1
PC=1
@ -957,52 +957,57 @@ Detail=OFF
Last Name=
Count=0
[Variable]
Geometry=1137, 11, 441, 595
Geometry=854, -3, 441, 595
Window=Normal
Boundary=18088086
0=.P4.2,P,S,A,+,1
1=.hoge,P,N,A,+,1
2=.work,P,N,A,+,1
3=.new_val,P,N,A,+,1
4=.raw_adc_temperature,D,N,A,+,1
5=.vreg_ctr[5],D,N,A,+,1
6=.vreg_ctr[35],P,N,A,+,1
7=.bt_chg_ready,P,N,A,+,1
8=.pu20,P,S,A,+,1
9=.temp_zone_charge_enable,P,N,A,+,1
10=.bt_remain_old,P,N,A,+,1
11=.vreg_ctr,P,N,A,+,1
12=.system_status,.,N,A,+,1
13=.battery_manufacturer,P,N,A,+,1
14=.bt_comp,.,N,A,+,1
15=.vol_data,P,N,A,+,1
Line=16
0=.vreg_ctr[11],D,N,A,+,1
1=.system_status,.,N,A,+,1
2=.vreg_ctr[13],H,N,A,+,1
3=.P4.2,P,S,A,+,1
4=.hoge,P,N,A,+,1
5=.work,P,N,A,+,1
6=.new_val,P,N,A,+,1
7=.raw_adc_temperature,D,N,A,+,1
8=.bt_chg_ready,P,N,A,+,1
9=.pu20,P,S,A,+,1
10=.temp_zone_charge_enable,P,N,A,+,1
11=.bt_remain_old,P,N,A,+,1
12=.vreg_ctr,P,N,A,+,1
13=.system_status,.,N,A,+,1
14=.battery_manufacturer,P,N,A,+,1
15=.bt_comp,.,N,A,+,1
16=.vol_data,P,N,A,+,1
Line=17
[Quick Watch]
0=TDR02,P,A,1
1=TDR03,P,A,1
2=TDR04,P,A,1
3=tdr07,P,A,1
4=tdr08,P,A,1
5=toe0,B,A,1
6=vreg_ctr[35],P,A,1
7=vreg_ctr[5],P,A,1
8=raw_adc_temperature,P,A,1
9=bt_chg_ready,P,A,1
10=p4.3,P,A,1
11=work,P,A,1
12=new_val,P,A,1
13=vol_data,P,A,1
14=hoge,P,A,1
15=P4.2,P,A,1
0=tdr07,P,A,1
1=tdr08,P,A,1
2=toe0,B,A,1
3=vreg_ctr[35],P,A,1
4=vreg_ctr[5],P,A,1
5=raw_adc_temperature,P,A,1
6=bt_chg_ready,P,A,1
7=p4.3,P,A,1
8=work,P,A,1
9=new_val,P,A,1
10=vol_data,P,A,1
11=hoge,P,A,1
12=P4.2,P,A,1
13=vreg_ctr[13],P,A,1
14=vreg_ctr[11],P,A,1
15=system_status,P,A,1
[Software Break]
Geometry=547, 524, 756, 532
Geometry=775, 797, 445, 260
Window=Normal
Width=150 30 200 100
Name0=Swb00001
Address0=i2c_mcu.c#_iic_mcu_write_a_byte+0x40
Address0=pm.c#_BT_mgic_init+0x127
Window0=ASM
Status0=ON
Count=1
Name1=Swb00002
Address1=pm.c#_BT_init+0x0
Window1=ASM
Status1=ON
Count=2
[Reset]
Debugger=ON
Symbol=OFF

View File

@ -6,7 +6,7 @@ Series=78K0R.PM
Device=uPD79F0104
DeviceVer=E1.00b
DebugMode=1
Target=bsr.lmf
Target=C:\78k_data\yav-mcu-basara\trunk\bsr.lmf
[BuildMode0]
BuildModeName=Debug Build
TargetFile=0
@ -112,296 +112,6 @@ ZF=0
S=1
E=0
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.LK78K0R 0]
Version=100
O0=bsr_k0r.lmf
O1=bsr.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=1
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 1]
Version=100
O0=a.lmf
G=0
E=0
E0=a.elk
GO=0
GOValue=
GOStart=FC00
GOSizeValue=1024
GI=0
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=1
MemInfoCheck=0
P=1
P0=a.map
MI=0
GB=0
GBValue=
KM=1
KD=1
KP=0
KL=0
LF=0
LL=0
S=0
W=1
SELFCheck=0
SELF=0
ZB=
CommandFile=0
[Options.LK78K0R 2]
Version=100
O0=bsr.lmf
O1=bsr_k0r.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=7EFBFF
KM=1
KD=0
KP=0
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=0
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
OFILE=C:\78k_data\yav-mcu-basara\trunk\bsr.lmf
[Options.LK78K0R 3]
Version=100
O0=bsr_bsr.lmf
O1=bsr_k0r.lmf
O2=bsr.lmf
O3=flash.lmf
O4=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_bsr.map
P1=bsr_k0r.map
P2=bsr.map
P3=flash.map
P4=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=2
SELFCheck=0
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 4]
Version=100
O0=bsr_k0r.lmf
O1=bsr.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=1
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 5]
Version=100
O0=bsr_bsr.lmf
O1=bsr_k0r.lmf
O2=bsr.lmf
O3=flash.lmf
O4=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_bsr.map
P1=bsr_k0r.map
P2=bsr.map
P3=flash.map
P4=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=2
SELFCheck=0
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[BuildBefore-AfterCmd]
Before1=touch magic.c
After1=ruby nec_s_2_bsrbin2.rb bsr.hex
[ToolSet]
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|V3.60
[Options.RA78K0R 0]
Version=100
G=1
@ -510,40 +220,6 @@ LT=8
Z=0
CommandFile=0
RA_OPT=
[Options.78K0R]
BuildMode=2
BuildMode2=K0R_dbg
BuildMode3=BSR_dbg
BuildMode4=BSR_rel
BuildMode5=BSR_WM0
DefaultMode2=1
DefaultMode3=1
DefaultMode4=1
DefaultMode5=1
[SrcFile]
Source1=loader.c
Source2=pm.c
Source3=i2c_ctr.c
Source4=main.c
Source5=magic.c
Source6=WDT.c
Source7=i2c_mcu.c
Source8=i2c_twl.c
Source9=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
[Options.CC78K0R 0]
Version=210
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
@ -1010,6 +686,327 @@ VfiFileBoot0=
VfiFileBoot1=boot.vfi
VF78K0Rchk=0
VF78K0Rvs=
[Options.LK78K0R 0]
Version=100
O0=bsr_k0r.lmf
O1=bsr.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=1
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 1]
Version=100
O0=a.lmf
G=0
E=0
E0=a.elk
GO=0
GOValue=
GOStart=FC00
GOSizeValue=1024
GI=0
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=1
MemInfoCheck=0
P=1
P0=a.map
MI=0
GB=0
GBValue=
KM=1
KD=1
KP=0
KL=0
LF=0
LL=0
S=0
W=1
SELFCheck=0
SELF=0
ZB=
CommandFile=0
[Options.LK78K0R 2]
Version=100
O0=bsr.lmf
O1=bsr_k0r.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=7EFBFF
KM=1
KD=0
KP=0
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=0
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
OFILE=C:\78k_data\yav-mcu-basara\trunk\bsr.lmf
[Options.LK78K0R 3]
Version=100
O0=bsr_bsr.lmf
O1=bsr_k0r.lmf
O2=bsr.lmf
O3=flash.lmf
O4=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_bsr.map
P1=bsr_k0r.map
P2=bsr.map
P3=flash.map
P4=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=2
SELFCheck=0
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 4]
Version=100
O0=bsr_k0r.lmf
O1=bsr.lmf
O2=flash.lmf
O3=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_k0r.map
P1=bsr.map
P2=flash.map
P3=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=0
SELFCheck=1
SELF=0
ZB=
Etcetera0=
Etcetera1=boot.lmf
CommandFile=0
[Options.LK78K0R 5]
Version=100
O0=bsr_bsr.lmf
O1=bsr_k0r.lmf
O2=bsr.lmf
O3=flash.lmf
O4=a.lmf
G=1
E=0
E0=flash.elk
E1=a.elk
GO=1
GOValue=85
GOStart=FC00
GOSizeValue=1024
GI=1
GIValue=FFFFFFFFFFFFFFFFFFFF
CCZA=0
MemInfoCheck=1
P=1
P0=bsr_bsr.map
P1=bsr_k0r.map
P2=bsr.map
P3=flash.map
P4=a.map
MI=0
GB=1
GBValue=6EFBFF
KM=1
KD=0
KP=1
KL=0
LF=0
LL=0
B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
D0=bsr_mcu.dr
D1=user_area.dr
S=1
W=2
SELFCheck=0
SELF=0
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
BuildMode3=BSR_dbg
BuildMode4=BSR_rel
BuildMode5=BSR_WM0
DefaultMode2=1
DefaultMode3=1
DefaultMode4=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
@ -1045,3 +1042,7 @@ 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

@ -4,11 +4,13 @@ FrameX=168
FrameY=127
FrameCX=1299
FrameCY=1044
OpenFile1=ProjectWindow
PrjPos=0,2,754,3,253
OpenFile2=config.h,0,286,286,1530,1043,0,9,0,0
OpenFile3=OutputWindow
OpenFile1=self_flash.c,0,110,110,1354,867,19,275,0,0
OpenFile2=incs.h,0,132,132,1376,889,0,24,0,0
OpenFile3=adc.c,0,330,330,1574,1087,0,380,0,0
OpenFile4=OutputWindow
OutputPos=0,36,981,694,1556
OpenFile5=ProjectWindow
PrjPos=0,2,754,3,253
ActivePRJ=yav_mcu_bsr.prj
[ProjectWindow]
ProjectWindowDispType=0

View File

@ -1,7 +1,7 @@
[SdbInfo]
Ver=5
[loader.c]
T=4c298f6e
T=4c3198b9
1=incs_loader.h
2=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
3=fsl_user.h
@ -10,8 +10,9 @@ T=4c298f6e
6=pm.h
7=rtc.h
8=reboot.h
9=magic.h
[pm.c]
T=4c298f94
T=4c318dab
1=incs.h
2=adc.h
3=led.h
@ -25,7 +26,7 @@ T=4c072cf1
1=config.h
2=incs.h
[main.c]
T=4c0cd4a6
T=4c2dbbde
1=incs_loader.h
2=WDT.h
3=rtc.h
@ -35,13 +36,13 @@ T=4c0cd4a6
7=adc.h
8=pool.h
[magic.c]
T=4c29c894
T=4c31d176
1=config.h
[WDT.c]
T=4bf0d1e1
1=incs_loader.h
[i2c_mcu.c]
T=4c285d96
T=4c2acd5a
1=incs_loader.h
2=i2c_mcu.h
[i2c_twl.c]
@ -51,14 +52,14 @@ T=4c29c700
3=i2c_twl_defs.h
4=i2c_twl.h
[led.c]
T=4c284f59
T=4c31a042
1=incs.h
2=led.h
[rtc.c]
T=4c0cd30b
1=incs.h
[vreg_ctr.c]
T=4c285516
T=4c319dfc
1=incs.h
2=vreg_ctr.h
3=rtc.h
@ -69,20 +70,21 @@ T=4c285516
8=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
9=fsl_user.h
[vreg_twl.c]
T=4c2347c6
T=4c2c3fca
1=incs.h
2=jhl_defs.h
3=led.h
4=vreg_twl.h
5=vreg_ctr.h
[adc.c]
T=4c29948b
T=4c31d076
1=incs.h
2=adc.h
3=pm.h
4=led.h
5=voltable.h
[renge\renge.c]
T=4c232c3f
T=4c318e0f
1=renge\renge.h
2=renge\renge_task_intval.h
3=renge\renge_task_immediate.h
@ -91,19 +93,21 @@ T=4c232c3f
6=user_define.h
7=bsr_system.h
[accero.c]
T=4c27e7a0
T=4c2aacdb
1=config.h
2=incs.h
3=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
[self_flash.c]
T=4bfb28ce
T=4c319f1f
1=incs_loader.h
2=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
3=fsl_user.h
4=i2c_ctr.h
5=pool.h
6=magic.h
7=pm.h
[sw.c]
T=4c04be89
T=4c2d5d86
1=incs.h
2=i2c_twl.h
3=i2c_ctr.h
@ -112,12 +116,12 @@ T=4c04be89
6=rtc.h
7=sw.h
[task_debug.c]
T=4c29ca1c
T=4c2aacdb
1=incs.h
2=renge\renge.h
3=pm.h
[task_misc.c]
T=4c29948b
T=4c2aacdb
1=incs.h
2=renge\renge.h
3=pm.h
@ -126,7 +130,7 @@ T=4c29948b
6=i2c_mcu.h
7=led.h
[task_sys.c]
T=4c29948b
T=4c2d5d27
1=incs.h
2=i2c_twl.h
3=i2c_ctr.h
@ -138,7 +142,7 @@ T=4c29948b
9=adc.h
10=self_flash.h
[pedo_alg_thre_det2.c]
T=4c28555c
T=4c2aacdb
1=incs.h
2=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
3=accero.h
@ -146,10 +150,10 @@ T=4c28555c
5=pedo_lpf_coeff.h
6=pool.h
[ini_VECT.c]
T=4bf0d1e1
T=4c312edd
1=config.h
[task_status.c]
T=4c29948b
T=4c2aacdb
1=incs.h
2=renge\renge.h
3=pm.h
@ -171,13 +175,13 @@ T=4c119cde
T=4c075832
1=config.h
[config.h]
T=4c29c890
T=4c2db56f
[user_define.h]
T=4c2856fa
[bsr_system.h]
T=4c22c0cc
[renge\renge.h]
T=4c0758e3
T=4c318e0f
1=renge\renge_defs.h
2=renge\renge_task_immediate.h
[renge\renge_defs.h]
@ -186,16 +190,16 @@ T=4c073c5a
T=4c284e89
1=renge\renge_defs.h
[vreg_ctr.h]
T=4c28383c
T=4c2d8983
1=config.h
[vreg_twl.h]
T=4c072cf1
[loader.h]
T=4bf0d1e0
T=4c318e0f
[i2c_mcu.h]
T=4c0769e1
T=4c2aacdb
[WDT.h]
T=4bf0d1e1
T=4c319dfc
[fsl_user.h]
T=4bf0d1e0
[i2c_ctr.h]
@ -207,20 +211,21 @@ T=4bf0d1e1
[reboot.h]
T=4bf0d1e1
[incs.h]
T=4c072fc8
T=4c318e3d
1=jhl_defs.h
2=user_define.h
3=bsr_system.h
4=renge\renge.h
5=vreg_ctr.h
6=vreg_twl.h
7=i2c_mcu.h
8=i2c_twl.h
9=rtc.h
10=accero.h
11=pm.h
12=sw.h
13=WDT.h
5=loader.h
6=vreg_ctr.h
7=vreg_twl.h
8=i2c_mcu.h
9=i2c_twl.h
10=rtc.h
11=accero.h
12=pm.h
13=sw.h
14=WDT.h
[accero.h]
T=4bf0d1e1
1=jhl_defs.h
@ -231,9 +236,9 @@ T=4bfd1372
T=4bf0d1e1
1=jhl_defs.h
[led.h]
T=4c21e17d
T=4c31d05a
[batt_params.h]
T=4c298f3c
T=4c2c4bd3
[i2c_twl_defs.h]
T=4bf0d1e1
[renge\renge_task_intval.h]
@ -255,3 +260,7 @@ T=4bf0d1e1
T=49a3bd4e
[..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h]
T=45f12258
[voltable.h]
T=4c31be66
[magic.h]
T=4c316840