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 WDT_Restart() WDTE = WDT_RESTART_MAGIC
// 規定値以外を書くと例外でリセットがかかる // 規定値以外を書くと例外でリセットがかかる
#define mcu_reset WDTE = 0xFF #define mcu_wdt_reset WDTE = 0x0
#endif #endif

View File

@ -22,6 +22,9 @@ bit adc_updated;
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
@ -38,17 +41,16 @@ filter_work work_vr_3d = {
u8 vol_data_ctr; u8 vol_data_ctr;
u8 vol_data_ctr_tmp;
filter_work work_vr_vol = { filter_work work_vr_vol = {
&vol_data_ctr &vol_data_ctr_tmp
}; };
u8 vol_data;
// ===================================================== // // ===================================================== //
extern void nop8(); extern void nop8();
static void adc_filter( u8 new_val, filter_work* work ); static void adc_filter( u8 new_val, filter_work* work );
static u8 adc_scaling( u8 );
@ -82,13 +84,42 @@ void tsk_adc( )
static u8 sndvol_codec; static u8 sndvol_codec;
static u8 bt_temp_old; static u8 bt_temp_old;
#ifdef _DEBUG_PM_BOMB_VOL_ #if 0
if( system_status.pwr_state == ON ) // 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 ); renge_task_immed_add( tski_vol_update );
} }
//*/
#endif #endif
renge_task_immed_add( tski_vol_update ); // T = 2ms polling
if( task_interval-- != 0 ) if( task_interval-- != 0 )
{ {
return; return;
@ -105,24 +136,29 @@ void tsk_adc( )
if( system_status.pwr_state == ON ) if( system_status.pwr_state == ON )
{ {
// 3D ///////////////////////////////////////// // 3D /////////////////////////////////////////
adc_filter( adc_raw_dep, &work_vr_3d ); adc_filter( adc_scaling( adc_raw_dep ), &work_vr_3d );
// Volume ///////////////////////////////////// // Volume /////////////////////////////////////
if(( vreg_ctr[ VREG_C_VOL_DIGITAL ] & 0x80 ) != 0 )
{
// レジスタから強制セット
adc_raw_vol = ( vreg_ctr[ VREG_C_VOL_DIGITAL ] * 4 );
}
{ {
static u8 vol_old; 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 ) if( vol_old != vol_data_ctr )
{ {
vol_old = vol_data_ctr; vol_old = vol_data_ctr;
vol_data = vol_data_ctr; vol_by_twl = 0;
renge_task_immed_add( tski_vol_update ); 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 vol_scaled;
u8 temp; u8 temp;
u8 i;
vol_scaled = ( vol_data / 4 ) & 0x3F; // SPIでかくテスト todo
// レジスタ更新 // return( ERR_FINISED );
vreg_twl[ REG_TWL_INT_ADRS_VOL ] = vol_data / ( 256 / 32 ); // ←adc値でよい
vreg_ctr[ VREG_C_SND_VOL ] = vol_scaled; // 64段
// codecに伝える if( vol_by_twl )
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 )
{ {
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, temp ); temp = slider_to_codec[ vreg_twl[ REG_TWL_INT_ADRS_VOL ] * 2 ];
NOP(); }
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_ #ifndef _MODEL_CTR_
iic_mcu_write_a_byte( IIC_SLA_DCP, 0, slider_to_codec[ ( 255 - vol_data ) / 4 ] ); 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 V2
@ -346,10 +418,7 @@ u8 get_adc( u8 ch )
static void adc_filter( u8 new_val, filter_work *work ) static void adc_filter( u8 new_val, filter_work *work )
{ {
u8 temp; u8 temp;
volatile u8 hoge;
// if( abs( new_val - *( work -> value_used )) >= 2 )
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 -> 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 -> diffs = 0;
work -> kikan = KIKAN;
} }
} }
} }

View File

@ -7,43 +7,43 @@
const u8 BT_PARAM[][64] = { const u8 BT_PARAM[][64] = {
// ID = 0 GND マクセル // ID = 0 GND マクセル
{ {
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00, 0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00, 0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0, 0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0, 0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00, 0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0, 0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0, 0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00 0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0,
}, },
{ // ID = 1 120 ohm (ダミーでマクセル) { // ID = 1 120 ohm (ダミーでマクセル)
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00, 0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00, 0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0, 0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0, 0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00, 0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0, 0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0, 0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00 0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0,
}, },
{ // ID = 2 360 hom (ダミーでマクセル) { // ID = 2 360 hom (ダミーでマクセル)
0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00, 0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0,
0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00, 0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30,
0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0, 0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20,
0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0, 0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0,
0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00, 0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80,
0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0, 0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60,
0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0, 0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80,
0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00 0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0,
}, },
{ // ID = 3 750 ohm ダミーでパナ { // ID = 3 750 ohm ダミーでパナ
0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40,
@ -115,9 +115,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 { 85, -256* 1.15, -256* 4.35 }, // maxell
{ 135, -256* 0.15, -256* 2.15 }, // dummy(M ) { 85, -256* 1.15, -256* 4.35 }, // dummy(M )
{ 135, -256* 0.15, -256* 2.15 }, // 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 }, // 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
@ -134,4 +134,12 @@ const u8 BT_VERIFY_L[] = {
0xFC, 0xFC, 0xFC, // maxell, dummy, dummy, 0xFC, 0xFC, 0xFC, // maxell, dummy, dummy,
0x67, 0x67, 0x67, 0x67 // dummy, dummy, panaso, 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 #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 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
@ -23,9 +23,9 @@ Direc-file:bsr_mcu.dr
*** Link information *** *** Link information ***
67 output segment(s) 66 output segment(s)
3B86H byte(s) real data 3BC8H byte(s) real data
5270 symbol(s) defined 5417 symbol(s) defined
*** Memory map *** *** Memory map ***
@ -90,54 +90,51 @@ Direc-file:bsr_mcu.dr
000C4H 00000H 000C4H 00000H
?CSEGSI 000C4H 0000AH CSEG ?CSEGSI 000C4H 0000AH CSEG
?OCDSTAD 000CEH 0000AH CSEG ?OCDSTAD 000CEH 0000AH CSEG
LDR_CODE 000D8H 006F0H CSEG LDR_CODE 000D8H 008B6H CSEG
LDR_CODE loader 000D8H 0018BH LDR_CODE loader 000D8H 001E0H
LDR_CODE main 00263H 0006AH LDR_CODE main 002B8H 0006EH
LDR_CODE WDT 002CDH 00000H LDR_CODE WDT 00326H 00000H
LDR_CODE i2c_mcu 002CDH 002BCH LDR_CODE i2c_mcu 00326H 002AAH
LDR_CODE self_flash LDR_CODE self_flash
00589H 0023FH 005D0H 003BEH
@@LCODE 007C8H 00386H CSEG FSL_CODE 0098EH 00322H 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
FSL_CODE fsl_block_cmd FSL_CODE fsl_block_cmd
00B4EH 0002BH 0098EH 0002BH
FSL_CODE fsl_block_check FSL_CODE fsl_block_check
00B79H 00013H 009B9H 00013H
FSL_CODE fsl_common FSL_CODE fsl_common
00B8CH 0014FH 009CCH 0014FH
FSL_CODE fsl_reset FSL_CODE fsl_reset
00CDBH 00001H 00B1BH 00001H
FSL_CODE fsl_si_ibf FSL_CODE fsl_si_ibf
00CDCH 00064H 00B1CH 00064H
FSL_CODE fsl_phySwap FSL_CODE fsl_phySwap
00D40H 0004DH 00B80H 0004DH
FSL_CODE fsl_si_common FSL_CODE fsl_si_common
00D8DH 00061H 00BCDH 00061H
FSL_CODE fsl_swap 00DEEH 00030H FSL_CODE fsl_swap 00C2EH 00030H
FSL_CODE fsl_write FSL_CODE fsl_write
00E1EH 00052H 00C5EH 00052H
* gap * 00E70H 00186H @@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 00FF6H 0000AH CSEG AT
MGC_LOAD magic 00FF6H 0000AH MGC_LOAD magic 00FF6H 0000AH
@ -189,125 +186,154 @@ Direc-file:bsr_mcu.dr
@@CNSTL @bcdtob 02000H 0000AH @@CNSTL @bcdtob 02000H 0000AH
@@CNSTL 0200AH 00010H CSEG PAGE64KP @@CNSTL 0200AH 00010H CSEG PAGE64KP
@@CNSTL @bbcd 0200AH 00010H @@CNSTL @bbcd 0200AH 00010H
@@CNSTL 0201AH 000CEH CSEG PAGE64KP @@R_INIT 0201AH 0003CH CSEG UNIT64KP
@@CNSTL m_fcom5 0201AH 000CEH @@R_INIT @cstart 0201AH 00000H
@@R_INIS 020E8H 00000H CSEG UNIT64KP @@R_INIT loader 0201AH 00000H
@@R_INIS @cstart 020E8H 00000H @@R_INIT pm 0201AH 00002H
@@R_INIS loader 020E8H 00000H @@R_INIT i2c_ctr 0201CH 00002H
@@R_INIS pm 020E8H 00000H @@R_INIT main 0201EH 00000H
@@R_INIS i2c_ctr 020E8H 00000H @@R_INIT magic 0201EH 00000H
@@R_INIS main 020E8H 00000H @@R_INIT WDT 0201EH 00000H
@@R_INIS magic 020E8H 00000H @@R_INIT i2c_mcu 0201EH 00000H
@@R_INIS WDT 020E8H 00000H @@R_INIT i2c_twl 0201EH 00000H
@@R_INIS i2c_mcu 020E8H 00000H @@R_INIT led 0201EH 00006H
@@R_INIS i2c_twl 020E8H 00000H @@R_INIT rtc 02024H 00000H
@@R_INIS led 020E8H 00000H @@R_INIT vreg_ctr 02024H 00000H
@@R_INIS rtc 020E8H 00000H @@R_INIT vreg_twl 02024H 00000H
@@R_INIS vreg_ctr 020E8H 00000H @@R_INIT adc 02024H 0000AH
@@R_INIS vreg_twl 020E8H 00000H @@R_INIT renge 0202EH 00018H
@@R_INIS adc 020E8H 00000H @@R_INIT accero 02046H 00000H
@@R_INIS renge 020E8H 00000H @@R_INIT self_flash
@@R_INIS accero 020E8H 00000H 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 @@R_INIS self_flash
020E8H 00000H 02056H 00000H
@@R_INIS sw 020E8H 00000H @@R_INIS sw 02056H 00000H
@@R_INIS task_debug @@R_INIS task_debug
020E8H 00000H 02056H 00000H
@@R_INIS task_misc @@R_INIS task_misc
020E8H 00000H 02056H 00000H
@@R_INIS task_sys 020E8H 00000H @@R_INIS task_sys 02056H 00000H
@@R_INIS pedo_alg_thre_det2 @@R_INIS pedo_alg_thre_det2
020E8H 00000H 02056H 00000H
@@R_INIS ini_VECT 020E8H 00000H @@R_INIS ini_VECT 02056H 00000H
@@R_INIS task_status @@R_INIS task_status
020E8H 00000H 02056H 00000H
@@R_INIS @rom 020E8H 00000H @@R_INIS @rom 02056H 00000H
@@CALT 020E8H 00000H CSEG @@CALT 02056H 00000H CSEG
@@CALT @cstart 020E8H 00000H @@CALT @cstart 02056H 00000H
@@CALT loader 020E8H 00000H @@CALT loader 02056H 00000H
@@CALT pm 020E8H 00000H @@CALT pm 02056H 00000H
@@CALT i2c_ctr 020E8H 00000H @@CALT i2c_ctr 02056H 00000H
@@CALT main 020E8H 00000H @@CALT main 02056H 00000H
@@CALT magic 020E8H 00000H @@CALT magic 02056H 00000H
@@CALT WDT 020E8H 00000H @@CALT WDT 02056H 00000H
@@CALT i2c_mcu 020E8H 00000H @@CALT i2c_mcu 02056H 00000H
@@CALT i2c_twl 020E8H 00000H @@CALT i2c_twl 02056H 00000H
@@CALT led 020E8H 00000H @@CALT led 02056H 00000H
@@CALT rtc 020E8H 00000H @@CALT rtc 02056H 00000H
@@CALT vreg_ctr 020E8H 00000H @@CALT vreg_ctr 02056H 00000H
@@CALT vreg_twl 020E8H 00000H @@CALT vreg_twl 02056H 00000H
@@CALT adc 020E8H 00000H @@CALT adc 02056H 00000H
@@CALT renge 020E8H 00000H @@CALT renge 02056H 00000H
@@CALT accero 020E8H 00000H @@CALT accero 02056H 00000H
@@CALT self_flash @@CALT self_flash
020E8H 00000H 02056H 00000H
@@CALT sw 020E8H 00000H @@CALT sw 02056H 00000H
@@CALT task_debug @@CALT task_debug
020E8H 00000H 02056H 00000H
@@CALT task_misc @@CALT task_misc
020E8H 00000H 02056H 00000H
@@CALT task_sys 020E8H 00000H @@CALT task_sys 02056H 00000H
@@CALT pedo_alg_thre_det2 @@CALT pedo_alg_thre_det2
020E8H 00000H 02056H 00000H
@@CALT ini_VECT 020E8H 00000H @@CALT ini_VECT 02056H 00000H
@@CALT task_status @@CALT task_status
020E8H 00000H 02056H 00000H
@@RLINIT 020E8H 00000H CSEG UNIT64KP @@RLINIT 02056H 00000H CSEG UNIT64KP
@@RLINIT loader 020E8H 00000H @@RLINIT loader 02056H 00000H
@@RLINIT pm 020E8H 00000H @@RLINIT pm 02056H 00000H
@@RLINIT i2c_ctr 020E8H 00000H @@RLINIT i2c_ctr 02056H 00000H
@@RLINIT main 020E8H 00000H @@RLINIT main 02056H 00000H
@@RLINIT magic 020E8H 00000H @@RLINIT magic 02056H 00000H
@@RLINIT WDT 020E8H 00000H @@RLINIT WDT 02056H 00000H
@@RLINIT i2c_mcu 020E8H 00000H @@RLINIT i2c_mcu 02056H 00000H
@@RLINIT i2c_twl 020E8H 00000H @@RLINIT i2c_twl 02056H 00000H
@@RLINIT led 020E8H 00000H @@RLINIT led 02056H 00000H
@@RLINIT rtc 020E8H 00000H @@RLINIT rtc 02056H 00000H
@@RLINIT vreg_ctr 020E8H 00000H @@RLINIT vreg_ctr 02056H 00000H
@@RLINIT vreg_twl 020E8H 00000H @@RLINIT vreg_twl 02056H 00000H
@@RLINIT adc 020E8H 00000H @@RLINIT adc 02056H 00000H
@@RLINIT renge 020E8H 00000H @@RLINIT renge 02056H 00000H
@@RLINIT accero 020E8H 00000H @@RLINIT accero 02056H 00000H
@@RLINIT self_flash @@RLINIT self_flash
020E8H 00000H 02056H 00000H
@@RLINIT sw 020E8H 00000H @@RLINIT sw 02056H 00000H
@@RLINIT task_debug @@RLINIT task_debug
020E8H 00000H 02056H 00000H
@@RLINIT task_misc @@RLINIT task_misc
020E8H 00000H 02056H 00000H
@@RLINIT task_sys 020E8H 00000H @@RLINIT task_sys 02056H 00000H
@@RLINIT pedo_alg_thre_det2 @@RLINIT pedo_alg_thre_det2
020E8H 00000H 02056H 00000H
@@RLINIT ini_VECT 020E8H 00000H @@RLINIT ini_VECT 02056H 00000H
@@RLINIT task_status @@RLINIT task_status
020E8H 00000H 02056H 00000H
@@RLINIT @rom 020E8H 00000H @@RLINIT @rom 02056H 00000H
@@CODEL 020E8H 00000H CSEG @@CODEL 02056H 00000H CSEG
@@CODEL pm 020E8H 00000H @@CODEL pm 02056H 00000H
@@CODEL i2c_ctr 020E8H 00000H @@CODEL i2c_ctr 02056H 00000H
@@CODEL magic 020E8H 00000H @@CODEL magic 02056H 00000H
@@CODEL i2c_twl 020E8H 00000H @@CODEL i2c_twl 02056H 00000H
@@CODEL led 020E8H 00000H @@CODEL led 02056H 00000H
@@CODEL rtc 020E8H 00000H @@CODEL rtc 02056H 00000H
@@CODEL vreg_ctr 020E8H 00000H @@CODEL vreg_ctr 02056H 00000H
@@CODEL vreg_twl 020E8H 00000H @@CODEL vreg_twl 02056H 00000H
@@CODEL adc 020E8H 00000H @@CODEL adc 02056H 00000H
@@CODEL renge 020E8H 00000H @@CODEL renge 02056H 00000H
@@CODEL accero 020E8H 00000H @@CODEL accero 02056H 00000H
@@CODEL sw 020E8H 00000H @@CODEL sw 02056H 00000H
@@CODEL task_debug @@CODEL task_debug
020E8H 00000H 02056H 00000H
@@CODEL task_misc @@CODEL task_misc
020E8H 00000H 02056H 00000H
@@CODEL task_sys 020E8H 00000H @@CODEL task_sys 02056H 00000H
@@CODEL pedo_alg_thre_det2 @@CODEL pedo_alg_thre_det2
020E8H 00000H 02056H 00000H
@@CODEL ini_VECT 020E8H 00000H @@CODEL ini_VECT 02056H 00000H
@@CODEL task_status @@CODEL task_status
020E8H 00000H 02056H 00000H
@@LCODEL 020E8H 00008H CSEG @@LCODEL 02056H 00008H CSEG
@@LCODEL abs 020E8H 00008H @@LCODEL abs 02056H 00008H
* gap * 020F0H 00010H * 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 00290H CSEG
@ -340,88 +366,57 @@ Direc-file:bsr_mcu.dr
@@CNST ini_VECT 0239AH 00000H @@CNST ini_VECT 0239AH 00000H
@@CNST task_status @@CNST task_status
0239AH 00000H 0239AH 00000H
ROM_CODE 0239AH 024F0H CSEG ROM_CODE 0239AH 0251AH CSEG
ROM_CODE pm 0239AH 00889H ROM_CODE pm 0239AH 0089FH
ROM_CODE i2c_ctr 02C23H 00060H ROM_CODE i2c_ctr 02C39H 00060H
ROM_CODE i2c_twl 02C83H 0005EH ROM_CODE i2c_twl 02C99H 0005EH
ROM_CODE led 02CE1H 004FBH ROM_CODE led 02CF7H 004E8H
ROM_CODE rtc 031DCH 000E0H ROM_CODE rtc 031DFH 000E0H
ROM_CODE vreg_ctr 032BCH 00444H ROM_CODE vreg_ctr 032BFH 00447H
ROM_CODE vreg_twl 03700H 00155H ROM_CODE vreg_twl 03706H 00156H
ROM_CODE adc 03855H 001EAH ROM_CODE adc 0385CH 00249H
ROM_CODE renge 03A3FH 001EDH ROM_CODE renge 03AA5H 001C3H
ROM_CODE accero 03C2CH 0013DH ROM_CODE accero 03C68H 0013DH
ROM_CODE sw 03D69H 000DDH ROM_CODE sw 03DA5H 000DDH
ROM_CODE task_debug ROM_CODE task_debug
03E46H 0001BH 03E82H 0001BH
ROM_CODE task_misc ROM_CODE task_misc
03E61H 001B1H 03E9DH 001B1H
ROM_CODE task_sys 04012H 00332H ROM_CODE task_sys 0404EH 00320H
ROM_CODE pedo_alg_thre_det2 ROM_CODE pedo_alg_thre_det2
04344H 004C1H 0436EH 004C1H
ROM_CODE task_status ROM_CODE task_status
04805H 00085H 0482FH 00085H
@@BASE 0488AH 004F0H CSEG BASE @@BASE 048B4H 004E7H CSEG BASE
@@BASE loader 0488AH 00000H @@BASE loader 048B4H 00000H
@@BASE pm 0488AH 00043H @@BASE pm 048B4H 00043H
@@BASE i2c_ctr 048CDH 00183H @@BASE i2c_ctr 048F7H 00183H
@@BASE main 04A50H 00000H @@BASE main 04A7AH 00000H
@@BASE magic 04A50H 00000H @@BASE magic 04A7AH 00000H
@@BASE WDT 04A50H 00000H @@BASE WDT 04A7AH 00000H
@@BASE i2c_mcu 04A50H 000D9H @@BASE i2c_mcu 04A7AH 000D9H
@@BASE i2c_twl 04B29H 000CDH @@BASE i2c_twl 04B53H 000CDH
@@BASE led 04BF6H 00000H @@BASE led 04C20H 00000H
@@BASE rtc 04BF6H 00043H @@BASE rtc 04C20H 00043H
@@BASE vreg_ctr 04C39H 00000H @@BASE vreg_ctr 04C63H 00000H
@@BASE vreg_twl 04C39H 00000H @@BASE vreg_twl 04C63H 00000H
@@BASE adc 04C39H 000BFH @@BASE adc 04C63H 000B3H
@@BASE renge 04CF8H 00000H @@BASE renge 04D16H 00000H
@@BASE accero 04CF8H 0004AH @@BASE accero 04D16H 0004AH
@@BASE self_flash @@BASE self_flash
04D42H 00000H 04D60H 00000H
@@BASE sw 04D42H 00000H @@BASE sw 04D60H 00000H
@@BASE task_debug @@BASE task_debug
04D42H 00000H 04D60H 00000H
@@BASE task_misc @@BASE task_misc
04D42H 00000H 04D60H 00000H
@@BASE task_sys 04D42H 00000H @@BASE task_sys 04D60H 00000H
@@BASE pedo_alg_thre_det2 @@BASE pedo_alg_thre_det2
04D42H 00000H 04D60H 00000H
@@BASE ini_VECT 04D42H 00038H @@BASE ini_VECT 04D60H 0003BH
@@BASE task_status @@BASE task_status
04D7AH 00000H 04D9BH 00000H
@@R_INIT 04D7AH 0003CH CSEG UNIT64KP * gap * 04D9BH 0025BH
@@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
MGC_TAIL 04FF6H 0000AH CSEG AT MGC_TAIL 04FF6H 0000AH CSEG AT
MGC_TAIL magic 04FF6H 0000AH MGC_TAIL magic 04FF6H 0000AH
@ -429,7 +424,7 @@ 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 003FAH DSEG BASEP @@DATA FF900H 003FEH 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 00012H
@ -443,180 +438,180 @@ Direc-file:bsr_mcu.dr
@@DATA rtc FFBC4H 00008H @@DATA rtc FFBC4H 00008H
@@DATA vreg_ctr FFBCCH 00056H @@DATA vreg_ctr FFBCCH 00056H
@@DATA vreg_twl FFC22H 00010H @@DATA vreg_twl FFC22H 00010H
@@DATA adc FFC32H 00012H @@DATA adc FFC32H 00014H
@@DATA renge FFC44H 00016H @@DATA renge FFC46H 00016H
@@DATA accero FFC5AH 00002H @@DATA accero FFC5CH 00002H
@@DATA self_flash @@DATA self_flash
FFC5CH 00000H FFC5EH 00002H
@@DATA sw FFC5CH 00004H @@DATA sw FFC60H 00004H
@@DATA task_debug @@DATA task_debug
FFC60H 00002H FFC64H 00002H
@@DATA task_misc @@DATA task_misc
FFC62H 00002H FFC66H 00002H
@@DATA task_sys FFC64H 00002H @@DATA task_sys FFC68H 00002H
@@DATA pedo_alg_thre_det2 @@DATA pedo_alg_thre_det2
FFC66H 00092H FFC6AH 00092H
@@DATA ini_VECT FFCF8H 00000H @@DATA ini_VECT FFCFCH 00000H
@@DATA task_status @@DATA task_status
FFCF8H 00002H FFCFCH 00002H
@@DATA @rom FFCFAH 00000H @@DATA @rom FFCFEH 00000H
@@INIT FFCFAH 0003CH DSEG BASEP @@INIT FFCFEH 0003CH DSEG BASEP
@@INIT @cstart FFCFAH 00000H @@INIT @cstart FFCFEH 00000H
@@INIT loader FFCFAH 00000H @@INIT loader FFCFEH 00000H
@@INIT pm FFCFAH 00002H @@INIT pm FFCFEH 00002H
@@INIT i2c_ctr FFCFCH 00002H @@INIT i2c_ctr FFD00H 00002H
@@INIT main FFCFEH 00000H @@INIT main FFD02H 00000H
@@INIT magic FFCFEH 00000H @@INIT magic FFD02H 00000H
@@INIT WDT FFCFEH 00000H @@INIT WDT FFD02H 00000H
@@INIT i2c_mcu FFCFEH 00000H @@INIT i2c_mcu FFD02H 00000H
@@INIT i2c_twl FFCFEH 00000H @@INIT i2c_twl FFD02H 00000H
@@INIT led FFCFEH 00006H @@INIT led FFD02H 00006H
@@INIT rtc FFD04H 00000H @@INIT rtc FFD08H 00000H
@@INIT vreg_ctr FFD04H 00000H @@INIT vreg_ctr FFD08H 00000H
@@INIT vreg_twl FFD04H 00000H @@INIT vreg_twl FFD08H 00000H
@@INIT adc FFD04H 0000AH @@INIT adc FFD08H 0000AH
@@INIT renge FFD0EH 00018H @@INIT renge FFD12H 00018H
@@INIT accero FFD26H 00000H @@INIT accero FFD2AH 00000H
@@INIT self_flash @@INIT self_flash
FFD26H 00000H
@@INIT sw FFD26H 00002H
@@INIT task_debug
FFD28H 00002H
@@INIT task_misc
FFD2AH 00000H 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 @@INIT pedo_alg_thre_det2
FFD2CH 00008H FFD30H 00008H
@@INIT ini_VECT FFD34H 00000H @@INIT ini_VECT FFD38H 00000H
@@INIT task_status @@INIT task_status
FFD34H 00002H FFD38H 00002H
@@INIT @rom FFD36H 00000H @@INIT @rom FFD3AH 00000H
@@INIS FFD36H 00000H DSEG UNITP @@INIS FFD3AH 00000H DSEG UNITP
@@INIS @cstart FFD36H 00000H @@INIS @cstart FFD3AH 00000H
@@INIS loader FFD36H 00000H @@INIS loader FFD3AH 00000H
@@INIS pm FFD36H 00000H @@INIS pm FFD3AH 00000H
@@INIS i2c_ctr FFD36H 00000H @@INIS i2c_ctr FFD3AH 00000H
@@INIS main FFD36H 00000H @@INIS main FFD3AH 00000H
@@INIS magic FFD36H 00000H @@INIS magic FFD3AH 00000H
@@INIS WDT FFD36H 00000H @@INIS WDT FFD3AH 00000H
@@INIS i2c_mcu FFD36H 00000H @@INIS i2c_mcu FFD3AH 00000H
@@INIS i2c_twl FFD36H 00000H @@INIS i2c_twl FFD3AH 00000H
@@INIS led FFD36H 00000H @@INIS led FFD3AH 00000H
@@INIS rtc FFD36H 00000H @@INIS rtc FFD3AH 00000H
@@INIS vreg_ctr FFD36H 00000H @@INIS vreg_ctr FFD3AH 00000H
@@INIS vreg_twl FFD36H 00000H @@INIS vreg_twl FFD3AH 00000H
@@INIS adc FFD36H 00000H @@INIS adc FFD3AH 00000H
@@INIS renge FFD36H 00000H @@INIS renge FFD3AH 00000H
@@INIS accero FFD36H 00000H @@INIS accero FFD3AH 00000H
@@INIS self_flash @@INIS self_flash
FFD36H 00000H FFD3AH 00000H
@@INIS sw FFD36H 00000H @@INIS sw FFD3AH 00000H
@@INIS task_debug @@INIS task_debug
FFD36H 00000H FFD3AH 00000H
@@INIS task_misc @@INIS task_misc
FFD36H 00000H FFD3AH 00000H
@@INIS task_sys FFD36H 00000H @@INIS task_sys FFD3AH 00000H
@@INIS pedo_alg_thre_det2 @@INIS pedo_alg_thre_det2
FFD36H 00000H FFD3AH 00000H
@@INIS ini_VECT FFD36H 00000H @@INIS ini_VECT FFD3AH 00000H
@@INIS task_status @@INIS task_status
FFD36H 00000H FFD3AH 00000H
@@INIS @rom FFD36H 00000H @@INIS @rom FFD3AH 00000H
@@DATS FFD36H 00000H DSEG UNITP @@DATS FFD3AH 00000H DSEG UNITP
@@DATS @cstart FFD36H 00000H @@DATS @cstart FFD3AH 00000H
@@DATS loader FFD36H 00000H @@DATS loader FFD3AH 00000H
@@DATS pm FFD36H 00000H @@DATS pm FFD3AH 00000H
@@DATS i2c_ctr FFD36H 00000H @@DATS i2c_ctr FFD3AH 00000H
@@DATS main FFD36H 00000H @@DATS main FFD3AH 00000H
@@DATS magic FFD36H 00000H @@DATS magic FFD3AH 00000H
@@DATS WDT FFD36H 00000H @@DATS WDT FFD3AH 00000H
@@DATS i2c_mcu FFD36H 00000H @@DATS i2c_mcu FFD3AH 00000H
@@DATS i2c_twl FFD36H 00000H @@DATS i2c_twl FFD3AH 00000H
@@DATS led FFD36H 00000H @@DATS led FFD3AH 00000H
@@DATS rtc FFD36H 00000H @@DATS rtc FFD3AH 00000H
@@DATS vreg_ctr FFD36H 00000H @@DATS vreg_ctr FFD3AH 00000H
@@DATS vreg_twl FFD36H 00000H @@DATS vreg_twl FFD3AH 00000H
@@DATS adc FFD36H 00000H @@DATS adc FFD3AH 00000H
@@DATS renge FFD36H 00000H @@DATS renge FFD3AH 00000H
@@DATS accero FFD36H 00000H @@DATS accero FFD3AH 00000H
@@DATS self_flash @@DATS self_flash
FFD36H 00000H FFD3AH 00000H
@@DATS sw FFD36H 00000H @@DATS sw FFD3AH 00000H
@@DATS task_debug @@DATS task_debug
FFD36H 00000H FFD3AH 00000H
@@DATS task_misc @@DATS task_misc
FFD36H 00000H FFD3AH 00000H
@@DATS task_sys FFD36H 00000H @@DATS task_sys FFD3AH 00000H
@@DATS pedo_alg_thre_det2 @@DATS pedo_alg_thre_det2
FFD36H 00000H FFD3AH 00000H
@@DATS ini_VECT FFD36H 00000H @@DATS ini_VECT FFD3AH 00000H
@@DATS task_status @@DATS task_status
FFD36H 00000H FFD3AH 00000H
@@DATS @rom FFD36H 00000H @@DATS @rom FFD3AH 00000H
FSL_DATA FFD36H 00010H DSEG UNITP FSL_DATA FFD3AH 00010H DSEG UNITP
FSL_DATA fsl_common FSL_DATA fsl_common
FFD36H 00010H FFD3AH 00010H
@@INITL FFD46H 00000H DSEG UNIT64KP @@INITL FFD4AH 00000H DSEG UNIT64KP
@@INITL loader FFD46H 00000H @@INITL loader FFD4AH 00000H
@@INITL pm FFD46H 00000H @@INITL pm FFD4AH 00000H
@@INITL i2c_ctr FFD46H 00000H @@INITL i2c_ctr FFD4AH 00000H
@@INITL main FFD46H 00000H @@INITL main FFD4AH 00000H
@@INITL magic FFD46H 00000H @@INITL magic FFD4AH 00000H
@@INITL WDT FFD46H 00000H @@INITL WDT FFD4AH 00000H
@@INITL i2c_mcu FFD46H 00000H @@INITL i2c_mcu FFD4AH 00000H
@@INITL i2c_twl FFD46H 00000H @@INITL i2c_twl FFD4AH 00000H
@@INITL led FFD46H 00000H @@INITL led FFD4AH 00000H
@@INITL rtc FFD46H 00000H @@INITL rtc FFD4AH 00000H
@@INITL vreg_ctr FFD46H 00000H @@INITL vreg_ctr FFD4AH 00000H
@@INITL vreg_twl FFD46H 00000H @@INITL vreg_twl FFD4AH 00000H
@@INITL adc FFD46H 00000H @@INITL adc FFD4AH 00000H
@@INITL renge FFD46H 00000H @@INITL renge FFD4AH 00000H
@@INITL accero FFD46H 00000H @@INITL accero FFD4AH 00000H
@@INITL self_flash @@INITL self_flash
FFD46H 00000H FFD4AH 00000H
@@INITL sw FFD46H 00000H @@INITL sw FFD4AH 00000H
@@INITL task_debug @@INITL task_debug
FFD46H 00000H FFD4AH 00000H
@@INITL task_misc @@INITL task_misc
FFD46H 00000H FFD4AH 00000H
@@INITL task_sys FFD46H 00000H @@INITL task_sys FFD4AH 00000H
@@INITL pedo_alg_thre_det2 @@INITL pedo_alg_thre_det2
FFD46H 00000H FFD4AH 00000H
@@INITL ini_VECT FFD46H 00000H @@INITL ini_VECT FFD4AH 00000H
@@INITL task_status @@INITL task_status
FFD46H 00000H FFD4AH 00000H
@@INITL @rom FFD46H 00000H @@INITL @rom FFD4AH 00000H
@@DATAL FFD46H 00000H DSEG UNIT64KP @@DATAL FFD4AH 00000H DSEG UNIT64KP
@@DATAL loader FFD46H 00000H @@DATAL loader FFD4AH 00000H
@@DATAL pm FFD46H 00000H @@DATAL pm FFD4AH 00000H
@@DATAL i2c_ctr FFD46H 00000H @@DATAL i2c_ctr FFD4AH 00000H
@@DATAL main FFD46H 00000H @@DATAL main FFD4AH 00000H
@@DATAL magic FFD46H 00000H @@DATAL magic FFD4AH 00000H
@@DATAL WDT FFD46H 00000H @@DATAL WDT FFD4AH 00000H
@@DATAL i2c_mcu FFD46H 00000H @@DATAL i2c_mcu FFD4AH 00000H
@@DATAL i2c_twl FFD46H 00000H @@DATAL i2c_twl FFD4AH 00000H
@@DATAL led FFD46H 00000H @@DATAL led FFD4AH 00000H
@@DATAL rtc FFD46H 00000H @@DATAL rtc FFD4AH 00000H
@@DATAL vreg_ctr FFD46H 00000H @@DATAL vreg_ctr FFD4AH 00000H
@@DATAL vreg_twl FFD46H 00000H @@DATAL vreg_twl FFD4AH 00000H
@@DATAL adc FFD46H 00000H @@DATAL adc FFD4AH 00000H
@@DATAL renge FFD46H 00000H @@DATAL renge FFD4AH 00000H
@@DATAL accero FFD46H 00000H @@DATAL accero FFD4AH 00000H
@@DATAL self_flash @@DATAL self_flash
FFD46H 00000H FFD4AH 00000H
@@DATAL sw FFD46H 00000H @@DATAL sw FFD4AH 00000H
@@DATAL task_debug @@DATAL task_debug
FFD46H 00000H FFD4AH 00000H
@@DATAL task_misc @@DATAL task_misc
FFD46H 00000H FFD4AH 00000H
@@DATAL task_sys FFD46H 00000H @@DATAL task_sys FFD4AH 00000H
@@DATAL pedo_alg_thre_det2 @@DATAL pedo_alg_thre_det2
FFD46H 00000H FFD4AH 00000H
@@DATAL ini_VECT FFD46H 00000H @@DATAL ini_VECT FFD4AH 00000H
@@DATAL task_status @@DATAL task_status
FFD46H 00000H FFD4AH 00000H
@@DATAL @rom FFD46H 00000H @@DATAL @rom FFD4AH 00000H
* gap * FFD46H 000BAH * gap * FFD4AH 000B6H
MEMORY=RAM2 MEMORY=RAM2
BASE ADDRESS=FFE20H SIZE=000C0H BASE ADDRESS=FFE20H SIZE=000C0H
@ -636,22 +631,22 @@ Direc-file:bsr_mcu.dr
@@BITS rtc FFE21H.2 00000H.3 @@BITS rtc FFE21H.2 00000H.3
@@BITS vreg_ctr FFE21H.5 00000H.1 @@BITS vreg_ctr FFE21H.5 00000H.1
@@BITS vreg_twl FFE21H.6 00000H.0 @@BITS vreg_twl FFE21H.6 00000H.0
@@BITS adc FFE21H.6 00000H.1 @@BITS adc FFE21H.6 00000H.2
@@BITS renge FFE21H.7 00000H.2 @@BITS renge FFE22H.0 00000H.2
@@BITS accero FFE22H.1 00000H.0 @@BITS accero FFE22H.2 00000H.0
@@BITS self_flash @@BITS self_flash
FFE22H.1 00000H.0 FFE22H.2 00000H.0
@@BITS sw FFE22H.1 00000H.2 @@BITS sw FFE22H.2 00000H.2
@@BITS task_debug @@BITS task_debug
FFE22H.3 00000H.0 FFE22H.4 00000H.0
@@BITS task_misc @@BITS task_misc
FFE22H.3 00000H.3 FFE22H.4 00000H.3
@@BITS task_sys FFE22H.6 00000H.0 @@BITS task_sys FFE22H.7 00000H.0
@@BITS pedo_alg_thre_det2 @@BITS pedo_alg_thre_det2
FFE22H.6 00000H.1 FFE22H.7 00000H.1
@@BITS ini_VECT FFE22H.7 00000H.0 @@BITS ini_VECT FFE23H.0 00000H.0
@@BITS task_status @@BITS task_status
FFE22H.7 00000H.0 FFE23H.0 00000H.0
* gap * FFE23H 000B1H * gap * FFE23H 000B1H
@@SEGREG FFED4H 00004H DSEG AT @@SEGREG FFED4H 00004H DSEG AT
@@SEGREG @SEGREG FFED4H 00004H @@SEGREG @SEGREG FFED4H 00004H

View File

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

View File

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

Binary file not shown.

View File

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

View File

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

View File

@ -37,7 +37,7 @@ uni_info_LED info_LED;
// 赤LEDの電池残量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 ) if( system_status.model == MODEL_TS_BOARD )
{ {
#ifdef _FORCE_INFO_LED_FULLCOLOR_ #ifdef _FORCE_INFO_LED_FULLCOLOR_
// todo debug //
system_status.info_fullcolor = 1; system_status.info_fullcolor = 1;
#endif #endif
} }
@ -209,19 +208,7 @@ void tsk_led_pow( )
switch ( vreg_ctr[VREG_C_LED_POW] ) switch ( vreg_ctr[VREG_C_LED_POW] )
{ {
case ( LED_POW_ILM_AUTO ): case ( LED_POW_ILM_AUTO ):
switch ( system_status.pwr_state ) led_pow_normal( );
{
case SLEEP:
led_pow_hotaru( );
break;
case ON:
led_pow_normal( );
break;
default:
break;
}
break; break;
case ( LED_POW_ILM_HOTARU ): case ( LED_POW_ILM_HOTARU ):

View File

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

View File

@ -28,6 +28,7 @@
#include "reboot.h" #include "reboot.h"
#include "magic.h"
// ======================================================== // ========================================================
#if (FSL_DATA_BUFFER_SIZE>0) #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_Open( void );
void FSL_Close( void ); void FSL_Close( void );
@ -68,6 +63,54 @@ void main( )
{ {
while( 1 ) 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( ); WDT_Restart( );
if( RTCEN ) // これは書き替えたときにしか使えない if( RTCEN ) // これは書き替えたときにしか使えない
{ {
@ -93,51 +136,13 @@ void main( )
} }
system_status.reboot = 1; system_status.reboot = 1;
} }
else else if(( my_resf & 0x01 ) != 0 )
{ {
// 通常の電源投入 vreg_ctr[ VREG_C_MCU_STATUS ] |= ( 1 << 2 );
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 );
} }
hdwinit2( ); 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( ); main_loop( );
} }
@ -379,3 +384,25 @@ void hdwinit2( )
DRC0 = 0b00000000; /* DMAチャネル0の動作禁止 */ DRC0 = 0b00000000; /* DMAチャネル0の動作禁止 */
DRC1 = 0b00000000; /* DMAチャネル1の動作禁止 */ 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 #pragma section @@CNSTL MGC_LOAD AT 0x0FF6
__far const unsigned char MGC_LOAD[] = __TIME__; __far const unsigned char MGC_LOAD[] = __TIME__;
#pragma section @@CNST MGC_MIMI AT 0x2100 #pragma section @@CNST MGC_MIMI AT 0x2100
const unsigned char MGC_HEAD[] = __TIME__; const unsigned char MGC_HEAD[] = __TIME__;
#pragma section @@CNST MGC_TAIL AT 0x4FF6 #pragma section @@CNST MGC_TAIL AT 0x4FF6
const unsigned char MGC_TAIL[] = __TIME__; const unsigned char MGC_TAIL[] = __TIME__;

View File

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

View File

@ -28,11 +28,18 @@ bit bt_chg_ready; //
u8 chg_led_override; // アダプタ差したとき、充電するしないに関わらずしばらく点灯させる u8 chg_led_override; // アダプタ差したとき、充電するしないに関わらずしばらく点灯させる
// ========================================================
static void BT_maker_detect();
static void BT_mgic_init();
// ======================================================== // ========================================================
#ifdef _PMIC_TWL_ #ifdef _PMIC_TWL_
u8 blset; u8 blset;
#endif #endif
/* ======================================================== /* ========================================================
   
@ -59,14 +66,14 @@ err PM_LCD_on( )
rv = PM_chk_LDSW( ); rv = PM_chk_LDSW( );
if( rv != 0 ) if( rv != 0 )
{ {
// 電源起動エラーなら電源も切れてしまう。ここではケアしない // 電源起動エラーなら電源も切れてしまう。ここではケアしない
vreg_ctr[VREG_C_STATUS] |= REG_BIT_LCD_POW; vreg_ctr[VREG_C_STATUS] |= REG_BIT_LCD_POW;
set_irq( VREG_C_IRQ3, REG_BIT_LCD_ON ); set_irq( VREG_C_IRQ3, REG_BIT_LCD_ON );
SND_DEPOP_SND_ENABLE; SND_DEPOP_SND_ENABLE;
return ( ERR_ERR ); return ( ERR_ERR );
} }
#ifdef _PMIC_TWL_ #ifdef _PMIC_TWL_
@ -246,9 +253,7 @@ err PM_sys_pow_on( )
PM_LDSW_on( ); PM_LDSW_on( );
wait_ms( 1 ); wait_ms( 1 + DELAY_PM_TW_PWUP );
wait_ms( DELAY_PM_TW_PWUP );
PM_VDD_normMode(); PM_VDD_normMode();
PM_VDD_on( ); PM_VDD_on( );
@ -696,9 +701,9 @@ void tsk_batt( )
***********************************************************/ ***********************************************************/
#define swap_endian_16( x ) (unsigned int)(( x << 8 ) | ( x >> 8 )) #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{ union{
u16 _u16; // endian 注意 u16 _u16; // endian 注意
struct{ struct{
@ -709,51 +714,21 @@ void BT_chk( )
BT_DET_P = 1; BT_DET_P = 1;
BT_TEMP_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; // バッテリが変わった //
BT_mgic_init(); // battery_manufacturer == BT_VENDER_OPEN 時は来ないのだ!
// 電池メーカーの識別 tski_BT_temp_update( ); // 温度のtemp。 残量ICに行きます
temp = get_adc( ADC_SEL_BATT_DET ); bt_chg_ready = 1;
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;
}
}
} }
// 電池温度監視スタート // 電池温度監視スタート
@ -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 temp;
u8 origParam[4]; u8 origParam[4];
@ -776,20 +777,26 @@ void BT_init( )
}chars; }chars;
}dat_16; }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 バージョン読み出し // PMIC バージョン読み出し
// temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER ); temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER );
// vreg_ctr[ VREG_C_PM_INFO ] = temp; vreg_ctr[ VREG_C_PM_INFO ] = temp;
/// デバッグ用は別にまとめた // デバッグ用は別にまとめた
*/
/* /*
// -1. リセットをかけてみる // -1. リセットをかけてみる
dat_16._u16 = swap_endian_16( 0x5400 ); // reset dat_16._u16 = swap_endian_16( 0x5400 ); // reset
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_COMMAND, 2, &dat_16 ); // こいつはNACKを返す 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. ロック解除 // 1. ロック解除
@ -845,7 +852,7 @@ void BT_init( )
if( system_status.model == MODEL_JIKKI ) if( system_status.model == MODEL_JIKKI )
{ {
// wait_ms( 5 + 1 ); I2C_mの初期化時にウェイト入れてるので不要 // wait_ms( 5 + 1 ); にウェイト入れてるので不要
// 2. 初期パラメータを一時保存 // 2. 初期パラメータを一時保存
iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam ); iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam );
@ -882,6 +889,7 @@ void BT_init( )
// カスタムモデル書き込みOK // カスタムモデル書き込みOK
}else{ }else{
// 失敗だったらリトライするのか? // 失敗だったらリトライするのか?
NOP();
} }
// 10.元のRCOMPとOCVを書き戻す // 10.元のRCOMPとOCVを書き戻す
@ -892,7 +900,6 @@ void BT_init( )
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16 ); 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()  BT_init()
**********************************************************/ **********************************************************/
void BT_get_left(){ void BT_get_left(){
u8 temp[2]; u8 temp_fuel[2];
// 電池残量更新 //
#ifdef _DEBUG_BT_IRQ_ #ifdef _DEBUG_BT_IRQ_
if( vreg_ctr[ VREG_C_COMMAND3 ] == 'd' ) if( vreg_ctr[ VREG_C_COMMAND3 ] == 'd' )
@ -976,76 +981,94 @@ void BT_get_left(){
{ {
if( system_status.model == MODEL_TS_BOARD ) if( system_status.model == MODEL_TS_BOARD )
{ {
// TS //
vreg_ctr[ VREG_C_BT_REMAIN ] = 99; vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
} }
else if( system_status.model == MODEL_SHIROBAKO ) 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; vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
} }
else else
{ {
vreg_ctr[ VREG_C_BT_REMAIN ] = temp[0]; vreg_ctr[ VREG_C_BT_REMAIN ] = temp_fuel[0];
vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1]; vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp_fuel[1];
} }
} }
else 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 ); // 残量ICがNACK
if( iic_mcu_result != 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
{
// バッテリパラメータの関係でビットシフトが必要
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_BT_VOLTAGE ] = temp_v[0];
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];
if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp ) == ERR_SUCCESS ) temp16 = ( temp_v[0] << 8 ) + temp_v[1];
{
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;
}
}
if( BT_CHG_Ena && !BT_CHG_n ){ if( temp16 > V_TH_LO )
vreg_ctr[ VREG_C_BT_REMAIN ] = 100;
}
// モデルゲージと実際との乖離が大きい/電圧がPMICの限界を超えそう
else if( vreg_ctr[ VREG_C_BT_VOLTAGE ] < V_TH_ZERO )
{ {
// 電圧が規定値になってしまったので強制off temp_force_fule_left = 100;
vreg_ctr[ VREG_C_BT_REMAIN ] = 0;
} }
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; static u8 bt_remain_old;

View File

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

View File

@ -16,7 +16,9 @@
#include "i2c_ctr.h" #include "i2c_ctr.h"
#include "pool.h" #include "pool.h"
#include "magic.h"
#include "pm.h"
// ======================================================== // ========================================================
const u8 fsl_fx_MHz_u08 = 8; const u8 fsl_fx_MHz_u08 = 8;
@ -74,6 +76,9 @@ void firm_restore( );
static err my_FSL_Init(); static err my_FSL_Init();
static err firm_duplicate( u8 block_src, u8 block_dest ); 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 <= UPDATE_BLOCK_LAST;
target_block += 1 ) target_block += 1 )
{ {
// 新ファーム領域削除 /* すでに消してある。でないと中断されたとき終了してるか判別出来ない
FSL_Erase( target_block ); // // 新ファーム領域削除
// FSL_Erase( target_block );
*/
// 分割書き込み // 分割書き込み
for( split_write_count = 0; for( split_write_count = 0;
( ( split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM ) ( ( split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM )
@ -164,22 +170,28 @@ void firm_update( )
!= FSL_OK ) != FSL_OK )
{ {
// 書き込み後のチェックエラー // 書き込み後のチェックエラー
while(1){}
// リストア // リストア
firm_duplicate( UPDATE_BLOCK_LAST +1, firm_duplicate( UPDATE_BLOCK_LAST +1, FIRM_TOP );
FIRM_TOP );
FSL_ForceReset(); FSL_ForceReset();
// 戻ってこない // // 戻ってこない //
} }
} }
// 1ブロック書き込み完了。内部ベリファイを行う // 1ブロック書き込み完了。内部ベリファイを行う
P1.5 = 1;
DBG_LED_on;
if( FSL_IVerify( target_block ) != FSL_OK ){ if( FSL_IVerify( target_block ) != FSL_OK ){
while(1){}
// 再度消去→書き込み ベリファイを繰り返すだけじゃダメでした... todo… // 再度消去→書き込み ベリファイを繰り返すだけじゃダメでした... todo…
// リストア // リストア
firm_duplicate( UPDATE_BLOCK_LAST +1, FIRM_TOP ); firm_duplicate( UPDATE_BLOCK_LAST +1, FIRM_TOP );
FSL_ForceReset(); FSL_ForceReset();
// 戻ってこない // // 戻ってこない //
} }
DBG_LED_off;
P1.5 = 0;
if( SPD ) if( SPD )
{ {
@ -210,8 +222,7 @@ void firm_update( )
{ {
// データ(マジックナンバーしか見てない)エラー // データ(マジックナンバーしか見てない)エラー
// リストア // リストア
firm_duplicate( UPDATE_BLOCK_LAST, firm_duplicate( UPDATE_BLOCK_LAST, FIRM_TOP );
FIRM_TOP );
FSL_ForceReset(); // リセット FSL_ForceReset(); // リセット
// 戻ってこない // // 戻ってこない //
} }
@ -229,24 +240,129 @@ void firm_update( )
======================================================== */ ======================================================== */
void firm_restore( ) 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) 0x4800 - 0x7FFF ( 18 - 27)
0x2000 - 0x47FF ( 8 - 17) 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 // todo
//  リストア失敗したら、LEDちかちかとかさせて、サービス送りにしてもらう //  リストア失敗したら、LEDちかちかとかさせて、サービス送りにしてもらう
// リブート // リブート
FSL_InvertBootFlag( ); if( FSL_InvertBootFlag() != ERR_SUCCESS )
{
alert(3);
}
FSL_SwapBootCluster(); FSL_SwapBootCluster();
} }
// ======================================================== // ========================================================
static void FSL_Open( void ) static void FSL_Open( void )
{ {
@ -272,7 +388,11 @@ static void FSL_Open( void )
MK0 = 0xFFFF; MK0 = 0xFFFF;
MK1 = 0xFFFF; MK1 = 0xFFFF;
MK2 = 0xFFFF; MK2 = 0xFFFF;
/*
LVIM = 0b00000010;
LVIS = 0x08;
LVIM = 0b10000010;
*/
FSL_FLMD0_HIGH; // フラッシュ書き替え許可 FSL_FLMD0_HIGH; // フラッシュ書き替え許可
} }
@ -315,18 +435,23 @@ static err firm_duplicate( u8 block_src,
u8 split_write_count; // ブロックへちまちま書き込むカウンタ u8 split_write_count; // ブロックへちまちま書き込むカウンタ
__far u8* p_src = ( __far u8* )( block_src * 0x400 ); __far u8* p_src = ( __far u8* )( block_src * 0x400 );
led_print(1);
// 書き込み先ブロックの数だけ繰り返す // 書き込み先ブロックの数だけ繰り返す
for( target_block = block_dest; for( target_block = block_dest;
target_block < block_dest + FIRM_SIZE; target_block < ( block_dest + FIRM_SIZE );
target_block += 1 ) target_block += 1 )
{ {
led_print(2);
WDT_Restart( ); WDT_Restart( );
// ブロック消去 // ブロック消去
while( FSL_BlankCheck( target_block ) != FSL_OK ) while( FSL_BlankCheck( target_block ) != FSL_OK )
{ {
led_print(3);
FSL_Erase( target_block ); FSL_Erase( target_block );
} }
led_print(4);
// 分割書き込み分繰り返す // 分割書き込み分繰り返す
for( split_write_count = 0; for( split_write_count = 0;
split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM;
@ -335,6 +460,8 @@ static err firm_duplicate( u8 block_src,
u16 buff_written_size; u16 buff_written_size;
u8* p_buff; u8* p_buff;
WDT_Restart( );
// 書き込みデータをバッファにためる // 書き込みデータをバッファにためる
buff_written_size = 0; buff_written_size = 0;
p_buff = &pool.self_update_work[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_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) )
!= FSL_OK ) != FSL_OK )
{ {
// todo リカバリ? // // リカバリはリブート時 todo //
FSL_Close( ); FSL_Close( );
led_print(5);
while(1){}
return ( ERR_ERR ); return ( ERR_ERR );
} }
} }
led_print(6);
// 1ブロック書き込み完了。内部電圧チェックを行う // 1ブロック書き込み完了。内部電圧チェックを行う
while( FSL_IVerify( target_block ) != FSL_OK ){ while( FSL_IVerify( target_block ) != FSL_OK )
// todo 失敗時? {
; // リカバリはリブート時 todo //
led_print(7);
while(1){}
return ( ERR_ERR );
} }
} }
return( ERR_SUCCESS ); return( ERR_SUCCESS );
@ -375,6 +508,8 @@ static err firm_duplicate( u8 block_src,
======================================================== */ ======================================================== */
static err my_FSL_Init() static err my_FSL_Init()
{ {
u8 rv;
RTCE = 0; RTCE = 0;
// 書き替え前準備 // // 書き替え前準備 //
@ -382,9 +517,9 @@ static err my_FSL_Init()
FSL_Open( ); // 割り込み禁止など FSL_Open( ); // 割り込み禁止など
FSL_Init( &pool.self_update_work[0] ); // ライブラリ初期化。割り込み中断考慮せず 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( ); FSL_Close( );
// 保険? // // 保険? //
// WDTE = 0xAA; // WDTで再起動テスト向け // mcu_wdt_reset; // WDTで再起動テスト向け
return( ERR_SUCCESS ); // no reach 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 INTERVAL_TSK_SW 8
#define CLICK_THRESHOLD 2 #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 HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW )
#define FORCEOFF_THREASHOLD (u8)( 4000 / INTERVAL_TSK_SW ) #define FORCEOFF_THREASHOLD (u8)( 4000 / INTERVAL_TSK_SW )
#endif
*/ */
//========================================================= //=========================================================

View File

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

View File

@ -1,5 +1,6 @@
#ifdef _10db_ #ifdef _10db_
// max -10db // max -10db
/*
const u8 slider_to_codec[64] = const u8 slider_to_codec[64] =
{ {
127, 127, 127, 127, 126, 125, 123, 122, 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, 72, 71, 70, 68, 67, 66, 64, 63,
62, 61, 59, 58, 57, 56, 55, 55 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 #endif
#ifdef _15db_ #ifdef _15db_

View File

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

View File

@ -30,7 +30,6 @@
#define REG_BIT_GASGAUGE_ERR ( 1 << 0 ) #define REG_BIT_GASGAUGE_ERR ( 1 << 0 )
// VREG_C_IRQ0 // VREG_C_IRQ0
#define REG_BIT_VR_SNDVOL_CHANGE ( 1 << 7 )
#define REG_BIT_IRQ_WDT_RESET ( 1 << 7 ) #define REG_BIT_IRQ_WDT_RESET ( 1 << 7 )
#define REG_BIT_SHELL_OPEN ( 1 << 6 ) #define REG_BIT_SHELL_OPEN ( 1 << 6 )
#define REG_BIT_SHELL_CLOSE ( 1 << 5 ) #define REG_BIT_SHELL_CLOSE ( 1 << 5 )
@ -113,6 +112,10 @@
#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)
#define REG_BIT_VOL_RESET ( 1 << 6 )
#define REG_BIT_VOL_FORCE_REG ( 1 << 7 )
// CODEC上のPMIC NTR の代理レジスタ // CODEC上のPMIC NTR の代理レジスタ
#define REG_BIT_TWL_REQ_OFF ( 1 << 6 ) #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 twl_ver_read;
extern bit cam_led_update; extern bit cam_led_update;
extern bit twl_ntr_mode; 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; vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = 0;
} }
// ======================================================== // ========================================================
// I2C仮想レジスタに書く・何かアクションする // I2C仮想レジスタに書く・何かアクションする
// 引数 adrs は内部アドレス // 引数 adrs は内部アドレス
@ -48,9 +44,10 @@ void vreg_twl_write( u8 adrs, u8 data )
{ {
case ( REG_TWL_INT_ADRS_VOL ): case ( REG_TWL_INT_ADRS_VOL ):
{ {
set_irq( VREG_C_IRQ2, REG_BIT_TWL_SNDVOL_CHANGE ); vol_by_twl = 1;
vol_data = data * 8; 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;
} }

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

View File

@ -6,7 +6,7 @@ Series=78K0R.PM
Device=uPD79F0104 Device=uPD79F0104
DeviceVer=E1.00b DeviceVer=E1.00b
DebugMode=1 DebugMode=1
Target=bsr.lmf Target=C:\78k_data\yav-mcu-basara\trunk\bsr.lmf
[BuildMode0] [BuildMode0]
BuildModeName=Debug Build BuildModeName=Debug Build
TargetFile=0 TargetFile=0
@ -112,296 +112,6 @@ ZF=0
S=1 S=1
E=0 E=0
CommandFile=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] [Options.RA78K0R 0]
Version=100 Version=100
G=1 G=1
@ -510,40 +220,6 @@ LT=8
Z=0 Z=0
CommandFile=0 CommandFile=0
RA_OPT= 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] [Options.CC78K0R 0]
Version=210 Version=210
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
@ -1010,6 +686,327 @@ VfiFileBoot0=
VfiFileBoot1=boot.vfi VfiFileBoot1=boot.vfi
VF78K0Rchk=0 VF78K0Rchk=0
VF78K0Rvs= 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] [IncFile]
Include1=incs_loader.h Include1=incs_loader.h
Include2=jhl_defs.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 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 Include33=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
Include34=voltable.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 FrameY=127
FrameCX=1299 FrameCX=1299
FrameCY=1044 FrameCY=1044
OpenFile1=ProjectWindow OpenFile1=self_flash.c,0,110,110,1354,867,19,275,0,0
PrjPos=0,2,754,3,253 OpenFile2=incs.h,0,132,132,1376,889,0,24,0,0
OpenFile2=config.h,0,286,286,1530,1043,0,9,0,0 OpenFile3=adc.c,0,330,330,1574,1087,0,380,0,0
OpenFile3=OutputWindow OpenFile4=OutputWindow
OutputPos=0,36,981,694,1556 OutputPos=0,36,981,694,1556
OpenFile5=ProjectWindow
PrjPos=0,2,754,3,253
ActivePRJ=yav_mcu_bsr.prj ActivePRJ=yav_mcu_bsr.prj
[ProjectWindow] [ProjectWindow]
ProjectWindowDispType=0 ProjectWindowDispType=0

View File

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