mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-10-31 13:51:10 -04:00
お知らせLEDを修正する前にバックアップを兼ね
修正:CTRCでヘッドホンから音が出ない 追加:白箱からの強制OFF 修正・追加:互換アプリのプレイ時間記録のためのフリーレジスタ お知らせLEDの仕様追加の件もあるので自己書き換え部分も含め RAM関係修正 修正:自己アップデートとWDTリセットの区別が付くようになった 修正:電池挿入直後が、普通に電源OFF時よりも消費電力が大きい ポートの初期値設定忘れ(TWL PMIC向けに書いていたときの名残) 無駄にstaticで確保してあるのを適切に エラーコードが不適切だった物を修正 レジスタの初期値間違い フリーレジスタを増やして歩数計を減らしたのでいろいろ修正 CTRCででポップ解除を忘れていた(イヤホンから音でない) git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@126 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
parent
ca9bdc8a67
commit
a159bca802
@ -65,17 +65,10 @@ task_status tsk_soft_int( );
|
|||||||
task_status_immed tsk_cbk_accero( )
|
task_status_immed tsk_cbk_accero( )
|
||||||
{ // (疑似)isrから登録されます
|
{ // (疑似)isrから登録されます
|
||||||
|
|
||||||
/*
|
|
||||||
if(( system_status.pwr_state == OFF ) || ( system_status.pwr_state == BT_CHARGE ) )
|
// 加速度センサデータレジスタへの反映
|
||||||
{
|
if( iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | 0x80 ), 6, &vreg_ctr[VREG_C_ACC_XL] )
|
||||||
return ( ERR_SUCCESS );
|
!= ERR_SUCCESS )
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*/
|
|
||||||
// 加速度センサデータレジスタへの反映
|
|
||||||
if( iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | 0x80 ), 6, &vreg_ctr[VREG_C_ACC_XL] )
|
|
||||||
!= ERR_SUCCESS )
|
|
||||||
{
|
{
|
||||||
// 加速度センサが異常になったので止める
|
// 加速度センサが異常になったので止める
|
||||||
vreg_ctr[VREG_C_ACC_CONFIG] &= ~( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ );
|
vreg_ctr[VREG_C_ACC_CONFIG] &= ~( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ );
|
||||||
@ -84,7 +77,7 @@ task_status_immed tsk_cbk_accero( )
|
|||||||
return ( ERR_SUCCESS ); // タスクの削除は必要
|
return ( ERR_SUCCESS ); // タスクの削除は必要
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 正常時パス //
|
// 正常時パス //
|
||||||
// 加速度更新&割り込み
|
// 加速度更新&割り込み
|
||||||
if( (( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_ACQ ) != 0 ) &&
|
if( (( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_ACQ ) != 0 ) &&
|
||||||
@ -104,9 +97,9 @@ task_status_immed tsk_cbk_accero( )
|
|||||||
( ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ) != 0 )
|
( ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ) != 0 )
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
DBG_LED_WIFI_2_on;
|
DBG_LED_WIFI_2_on;
|
||||||
pedometer(); // 歩数計
|
pedometer(); // 歩数計
|
||||||
DBG_LED_WIFI_2_off;
|
DBG_LED_WIFI_2_off;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ( ERR_SUCCESS );
|
return ( ERR_SUCCESS );
|
||||||
|
|||||||
29
trunk/adc.c
29
trunk/adc.c
@ -40,23 +40,9 @@ extern void nop8();
|
|||||||
・8tics毎に呼ばれ、3チャンネル分取り込むとADCを停止します。
|
・8tics毎に呼ばれ、3チャンネル分取り込むとADCを停止します。
|
||||||
タスク起動時、レジスタには前回の取り込み値が入っています。
|
タスク起動時、レジスタには前回の取り込み値が入っています。
|
||||||
======================================================== */
|
======================================================== */
|
||||||
/*
|
|
||||||
// max -4db
|
|
||||||
static const u8 slider_to_codec[64] =
|
|
||||||
{
|
|
||||||
127, 125, 124, 123, 121, 120, 119, 117,
|
|
||||||
116, 115, 113, 112, 111, 109, 108, 107,
|
|
||||||
105, 104, 103, 101, 100, 99, 98, 96,
|
|
||||||
95, 94, 92, 91, 90, 88, 87, 86,
|
|
||||||
84, 83, 82, 80, 79, 78, 76, 75,
|
|
||||||
74, 72, 71, 70, 69, 67, 66, 65,
|
|
||||||
63, 62, 61, 59, 58, 57, 55, 54,
|
|
||||||
53, 51, 50, 49, 47, 46, 45, 44
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
// max -10db
|
// max -15db
|
||||||
static const u8 slider_to_codec[64] =
|
const u8 slider_to_codec[64] =
|
||||||
{
|
{
|
||||||
127, 126, 125, 124, 123, 122, 121, 120,
|
127, 126, 125, 124, 123, 122, 121, 120,
|
||||||
119, 118, 117, 116, 115, 114, 113, 112,
|
119, 118, 117, 116, 115, 114, 113, 112,
|
||||||
@ -325,14 +311,9 @@ u8 get_adc( u8 ch )
|
|||||||
|
|
||||||
ADPC = 0x06; // ADCポートのセレクト
|
ADPC = 0x06; // ADCポートのセレクト
|
||||||
ADS = ch;
|
ADS = ch;
|
||||||
NOP();
|
|
||||||
NOP();
|
nop8();
|
||||||
NOP();
|
|
||||||
NOP();
|
|
||||||
NOP();
|
|
||||||
NOP();
|
|
||||||
NOP();
|
|
||||||
NOP();
|
|
||||||
ADCS = 1; // AD開始。 /// ここまで↑ に、1us以上開ける
|
ADCS = 1; // AD開始。 /// ここまで↑ に、1us以上開ける
|
||||||
|
|
||||||
while( ADIF == 0 ){;}
|
while( ADIF == 0 ){;}
|
||||||
|
|||||||
@ -47,7 +47,6 @@ typedef struct
|
|||||||
system_status_;
|
system_status_;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern system_status_ system_status;
|
extern system_status_ system_status;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#define MCU_VER_MAJOR 0x00
|
#define MCU_VER_MAJOR 0x00
|
||||||
#define MCU_VER_MINOR 0x10
|
#define MCU_VER_MINOR 0x12
|
||||||
|
|
||||||
#define _OVERCLOCK_
|
#define _OVERCLOCK_
|
||||||
|
|
||||||
|
|||||||
@ -81,39 +81,52 @@ void nop8()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static u8 iic_mcu_is_ready()
|
static err iic_mcu_is_ready()
|
||||||
{
|
{
|
||||||
if( iic_mcu_initialized == 0 )
|
if( iic_mcu_initialized == 0 )
|
||||||
{
|
{
|
||||||
#ifdef _debug_
|
#ifdef _debug_
|
||||||
iic_mcu_start( );
|
iic_mcu_start( );
|
||||||
#else
|
#else
|
||||||
|
return( ERR_ERR );
|
||||||
while( 1 )
|
while( 1 )
|
||||||
{
|
{
|
||||||
NOP();
|
NOP();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
while( iic_mcu_busy )
|
while( iic_mcu_busy )
|
||||||
{
|
{
|
||||||
NOP( );
|
NOP( );
|
||||||
}
|
}
|
||||||
iic_mcu_busy = 1;
|
iic_mcu_busy = 1;
|
||||||
|
return( ERR_SUCCESS );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
スレーブからの 『1文字』 リード
|
スレーブからの 『1文字』 リード
|
||||||
返値がデータそのものです。
|
返値がデータそのものです。
|
||||||
エラー判定ができません。
|
|
||||||
======================================================== */
|
======================================================== */
|
||||||
u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs )
|
u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs )
|
||||||
{
|
{
|
||||||
u8 dat;
|
u8 dat;
|
||||||
|
|
||||||
iic_mcu_is_ready();
|
#if 1
|
||||||
|
// ラッパー
|
||||||
|
if( iic_mcu_read( SLA, adrs, 1, &dat ) == ERR_SUCCESS )
|
||||||
|
{
|
||||||
|
iic_mcu_bus_status = ERR_OK;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iic_mcu_bus_status = ERR_NOSLAVE;
|
||||||
|
}
|
||||||
|
return ( dat );
|
||||||
|
|
||||||
iic_mcu_bus_status = ERR_OK;
|
#else
|
||||||
|
iic_mcu_is_ready();
|
||||||
|
|
||||||
// スタートコンディションとスレーブの呼び出し、レジスタアドレスの送信
|
// スタートコンディションとスレーブの呼び出し、レジスタアドレスの送信
|
||||||
if( iic_mcu_call_slave( SLA ) != 0 )
|
if( iic_mcu_call_slave( SLA ) != 0 )
|
||||||
@ -149,6 +162,7 @@ u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs )
|
|||||||
IICIF10 = 0; // 後を濁さないこと
|
IICIF10 = 0; // 後を濁さないこと
|
||||||
iic_mcu_busy = 0;
|
iic_mcu_busy = 0;
|
||||||
return ( dat );
|
return ( dat );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -167,7 +181,11 @@ err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8 * dest )
|
|||||||
{
|
{
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
iic_mcu_is_ready();
|
if( iic_mcu_is_ready() != ERR_SUCCESS )
|
||||||
|
{
|
||||||
|
return( ERR_ERR );
|
||||||
|
}
|
||||||
|
;
|
||||||
#else
|
#else
|
||||||
// 使用中なら帰る
|
// 使用中なら帰る
|
||||||
if( iic_mcu_initialized == 0 ){
|
if( iic_mcu_initialized == 0 ){
|
||||||
@ -234,12 +252,19 @@ err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8 * dest )
|
|||||||
err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat )
|
err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat )
|
||||||
{
|
{
|
||||||
|
|
||||||
#if 0
|
#if 1
|
||||||
// ラッパー
|
// ラッパー
|
||||||
|
static u8 temp; // 書きっぱなしで終了を見ずに関数を抜ける(可能性が高い)のでstatic
|
||||||
|
|
||||||
|
// これをしないと、立て続けに書いたときに前のデータを破壊してしまう
|
||||||
|
while( iic_mcu_busy )
|
||||||
|
{
|
||||||
|
NOP( );
|
||||||
|
}
|
||||||
|
|
||||||
temp = dat;
|
temp = dat;
|
||||||
iic_mcu_wo_dma = 1;
|
iic_mcu_wo_dma = 1;
|
||||||
return ( iic_mcu_write( SLA, adrs, 1, &temp ) );
|
return ( iic_mcu_write( SLA, adrs, 1, &temp ) );
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
// 1文字の時はDMAとか起動しないでさっさと終わらせる
|
// 1文字の時はDMAとか起動しないでさっさと終わらせる
|
||||||
iic_mcu_is_ready();
|
iic_mcu_is_ready();
|
||||||
@ -279,8 +304,10 @@ err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat )
|
|||||||
err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src )
|
err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src )
|
||||||
{
|
{
|
||||||
|
|
||||||
iic_mcu_is_ready();
|
if( iic_mcu_is_ready() != ERR_SUCCESS )
|
||||||
|
{
|
||||||
|
return( ERR_ERR );
|
||||||
|
}
|
||||||
#if 0
|
#if 0
|
||||||
// 使用中なら帰る
|
// 使用中なら帰る
|
||||||
if( iic_mcu_initialized == 0 ){
|
if( iic_mcu_initialized == 0 ){
|
||||||
@ -331,9 +358,9 @@ err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src )
|
|||||||
// DMAを使用しない //
|
// DMAを使用しない //
|
||||||
|
|
||||||
// レジスタアドレスの送信
|
// レジスタアドレスの送信
|
||||||
|
IICMK10 = 0;
|
||||||
SIO10 = adrs;
|
SIO10 = adrs;
|
||||||
|
|
||||||
IICMK10 = 0;
|
|
||||||
iic_send_wo_dma_len = len;
|
iic_send_wo_dma_len = len;
|
||||||
p_iic_send_wo_dma_dat = src;
|
p_iic_send_wo_dma_dat = src;
|
||||||
// 残りは割り込みルーチン内で
|
// 残りは割り込みルーチン内で
|
||||||
|
|||||||
104
trunk/led.c
104
trunk/led.c
@ -31,9 +31,25 @@ static void led_pow_hotaru( );
|
|||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
static const char MSG_MAIL[] = { 0b11110110, 0b11011010, 0b01101110, 0b10010100 };
|
// お知らせLEDのパターンを流し込んでもらう
|
||||||
#define MSG_SPD 60
|
typedef struct{
|
||||||
// ↑255/3以下であること!
|
unsigned char red:3;
|
||||||
|
unsigned char grn:3;
|
||||||
|
unsigned char blu:2;
|
||||||
|
}st_info_LED_ptn;
|
||||||
|
|
||||||
|
st_info_LED_ptn info_LED_ptn[32];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ========================================================
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
void LED_init( )
|
void LED_init( )
|
||||||
@ -412,7 +428,6 @@ void tsk_led_notify( )
|
|||||||
|
|
||||||
switch ( vreg_ctr[VREG_C_LED_NOTIFY] )
|
switch ( vreg_ctr[VREG_C_LED_NOTIFY] )
|
||||||
{
|
{
|
||||||
case ( NOTIFY_LED_OFF ):
|
|
||||||
default:
|
default:
|
||||||
LED_duty_NOTIFY = 0;
|
LED_duty_NOTIFY = 0;
|
||||||
state_notify_led = 0;
|
state_notify_led = 0;
|
||||||
@ -424,87 +439,6 @@ void tsk_led_notify( )
|
|||||||
state_notify_led = 0;
|
state_notify_led = 0;
|
||||||
flg_char_space = 0;
|
flg_char_space = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ( NOTIFY_LED_PTN0 ):
|
|
||||||
// ゆっくりバースト
|
|
||||||
switch ( state_notify_led )
|
|
||||||
{
|
|
||||||
case ( 1 ):
|
|
||||||
case ( 3 ):
|
|
||||||
case ( 5 ):
|
|
||||||
LED_duty_NOTIFY = vreg_ctr[VREG_C_LED_BRIGHT];
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
LED_duty_NOTIFY = 0;
|
|
||||||
}
|
|
||||||
state_notify_led++;
|
|
||||||
if( state_notify_led == 16 )
|
|
||||||
{
|
|
||||||
state_notify_led = 0;
|
|
||||||
}
|
|
||||||
task_interval = 50;
|
|
||||||
return;
|
|
||||||
|
|
||||||
case ( NOTIFY_LED_PTN1 ):
|
|
||||||
// データテーブルに従って点滅
|
|
||||||
{
|
|
||||||
u8 dat;
|
|
||||||
|
|
||||||
task_interval = MSG_SPD; // 共通のため。場合によって上書き
|
|
||||||
|
|
||||||
if( flg_char_space != 0 )
|
|
||||||
{
|
|
||||||
LED_duty_NOTIFY = 0;
|
|
||||||
flg_char_space = 0;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// データバッファの見る位置の更新
|
|
||||||
dat = ( MSG_MAIL[state_notify_led / 4] << ( ( state_notify_led % 4 ) * 2 ) ) & 0xC0;
|
|
||||||
if( dat == 0 )
|
|
||||||
{
|
|
||||||
state_notify_led = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
state_notify_led += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
flg_char_space = 1;
|
|
||||||
if(( dat & 0b10000000 ) != 0 )
|
|
||||||
{
|
|
||||||
// 点灯はさせる
|
|
||||||
LED_duty_NOTIFY = vreg_ctr[VREG_C_LED_BRIGHT];
|
|
||||||
if(( dat & 0b01000000 ) == 0 )
|
|
||||||
{
|
|
||||||
// 短
|
|
||||||
// nothing to do
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// 長
|
|
||||||
task_interval = ( MSG_SPD * 3 );
|
|
||||||
}
|
|
||||||
// 次は単語間休み、とかの判定をさせたかったが
|
|
||||||
/// 1バイトに2ビットずつデータが並んでおり、次のバイトに
|
|
||||||
/// またがるようなときが面倒なのでやめる
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(( dat & 0b01000000 ) == 0 )
|
|
||||||
{
|
|
||||||
// 一文終了
|
|
||||||
task_interval = ( MSG_SPD * 3 );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// 単語間
|
|
||||||
// nothing to do
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -85,6 +85,6 @@ enum
|
|||||||
void LED_init( );
|
void LED_init( );
|
||||||
void LED_stop( );
|
void LED_stop( );
|
||||||
|
|
||||||
|
extern void tsk_led_cam();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -243,16 +243,16 @@ void hdwinit2( )
|
|||||||
|
|
||||||
PM5 = 0b11110011;
|
PM5 = 0b11110011;
|
||||||
PM6 = 0b11111100; // I2CのラインがL出力になってしまうが、システムがOFFなのでかまわない
|
PM6 = 0b11111100; // I2CのラインがL出力になってしまうが、システムがOFFなのでかまわない
|
||||||
|
#ifdef _PMIC_CTR_
|
||||||
|
PM7 = 0b01011111;
|
||||||
|
#else
|
||||||
PM7 = 0b00011111;
|
PM7 = 0b00011111;
|
||||||
|
#endif
|
||||||
PM12 = 0b11111111; // 32kHzクロックのピン設定はどっちでもよい
|
PM12 = 0b11111111; // 32kHzクロックのピン設定はどっちでもよい
|
||||||
PM15 = 0b11111111;
|
PM15 = 0b11111111;
|
||||||
|
|
||||||
#ifdef _MCU_BSR_
|
#ifdef _MCU_BSR_
|
||||||
#ifdef _MODEL_CTR_
|
|
||||||
PM20 = 0b11111101;
|
|
||||||
#else
|
|
||||||
PM20 = 0b11111100;
|
PM20 = 0b11111100;
|
||||||
#endif
|
|
||||||
#else
|
#else
|
||||||
PM8 = 0b11111111;
|
PM8 = 0b11111111;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -7,14 +7,13 @@
|
|||||||
|
|
||||||
// V0.5 (ニセ0.1改)
|
// V0.5 (ニセ0.1改)
|
||||||
#pragma section @@CNSTL MGC_LOAD AT 0x0FF6
|
#pragma section @@CNSTL MGC_LOAD AT 0x0FF6
|
||||||
__far static 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
|
||||||
static 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
|
||||||
static const unsigned char MGC_TAIL[] = __TIME__;
|
const unsigned char MGC_TAIL[] = __TIME__;
|
||||||
//static const unsigned char MGC_TAIL[] = "fuga_";
|
|
||||||
|
|
||||||
|
|
||||||
// 0Dまでこれを使用
|
// 0Dまでこれを使用
|
||||||
|
|||||||
@ -15,16 +15,18 @@
|
|||||||
#include "led.h"
|
#include "led.h"
|
||||||
#include "adc.h"
|
#include "adc.h"
|
||||||
|
|
||||||
|
#include "pool.h"
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
static void read_dipsw( );
|
static void read_dipsw( );
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
system_status_ system_status;
|
system_status_ system_status;
|
||||||
bit update;
|
uni_pool pool;
|
||||||
|
|
||||||
|
|
||||||
u16 pool[256]; // アップデート時のワークエリア 兼 歩数計データ
|
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
本当のエントリ関数は loader.c にあります
|
本当のエントリ関数は loader.c にあります
|
||||||
======================================================== */
|
======================================================== */
|
||||||
|
|||||||
@ -13,13 +13,17 @@
|
|||||||
#include "accero.h"
|
#include "accero.h"
|
||||||
#include "pedometer.h"
|
#include "pedometer.h"
|
||||||
|
|
||||||
|
#include "pedo_lpf_coeff.h"
|
||||||
|
#include "pool.h"
|
||||||
|
|
||||||
|
// ========================================================
|
||||||
static void hosu_increment();
|
static void hosu_increment();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ========================================================
|
||||||
u16 get_long_hour();
|
u16 get_long_hour();
|
||||||
|
extern uni_pool pool;
|
||||||
|
|
||||||
|
|
||||||
extern u16 pool[];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -243,13 +247,13 @@ static void hosu_increment()
|
|||||||
last_hour_fny = now_hour;
|
last_hour_fny = now_hour;
|
||||||
|
|
||||||
// 実際にインクリメント
|
// 実際にインクリメント
|
||||||
if( pool[ p_record ] == HOSU_NODATA )
|
if( pool.vreg_c_ext.pedo_log[ p_record ] == HOSU_NODATA )
|
||||||
{
|
{
|
||||||
pool[ p_record ] = 1;
|
pool.vreg_c_ext.pedo_log[ p_record ] = 1;
|
||||||
}
|
}
|
||||||
else if( pool[ p_record ] != HOSU_MAX )
|
else if( pool.vreg_c_ext.pedo_log[ p_record ] != HOSU_MAX )
|
||||||
{
|
{
|
||||||
pool[ p_record ] += 1;
|
pool.vreg_c_ext.pedo_log[ p_record ] += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -262,16 +266,16 @@ static void hosu_increment()
|
|||||||
======================================================== */
|
======================================================== */
|
||||||
void fill_hosu_hist_hours( u16 hours )
|
void fill_hosu_hist_hours( u16 hours )
|
||||||
{
|
{
|
||||||
if( hours > 255 )
|
if( hours > PEDOMETER_LOG_SIZE )
|
||||||
{
|
{
|
||||||
hours = 0;
|
hours = PEDOMETER_LOG_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 空白の数時間の設定
|
// 空白の数時間の設定
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
p_record += 1;
|
p_record += 1;
|
||||||
pool[ p_record ] = 0;
|
pool.vreg_c_ext.pedo_log[ p_record ] = 0;
|
||||||
hours -= 1;
|
hours -= 1;
|
||||||
}
|
}
|
||||||
while( hours != 0 );
|
while( hours != 0 );
|
||||||
@ -285,12 +289,11 @@ void fill_hosu_hist_hours( u16 hours )
|
|||||||
======================================================== */
|
======================================================== */
|
||||||
void clear_hosu_hist()
|
void clear_hosu_hist()
|
||||||
{
|
{
|
||||||
u8 hours = 0;
|
u8 hours = PEDOMETER_LOG_SIZE;
|
||||||
// 空白の数時間の設定
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
pool[ hours ] = 0xFFFF;
|
|
||||||
hours -= 1;
|
hours -= 1;
|
||||||
|
pool.vreg_c_ext.pedo_log[ hours ] = 0xFFFF;
|
||||||
}
|
}
|
||||||
while( hours != 0 );
|
while( hours != 0 );
|
||||||
vreg_ctr[ VREG_C_ACC_HOSU_L ] = 0;
|
vreg_ctr[ VREG_C_ACC_HOSU_L ] = 0;
|
||||||
@ -349,7 +352,7 @@ u8 hosu_read( )
|
|||||||
return( 0xAA ); // reserved. dummy
|
return( 0xAA ); // reserved. dummy
|
||||||
|
|
||||||
default:
|
default:
|
||||||
temp = pool[ p_record_buffer ];
|
temp = pool.vreg_c_ext.pedo_log[ p_record_buffer ];
|
||||||
if( record_read_msb_lsb == 0 )
|
if( record_read_msb_lsb == 0 )
|
||||||
{
|
{
|
||||||
dat = (u8)( temp & 0x00FF );
|
dat = (u8)( temp & 0x00FF );
|
||||||
@ -357,7 +360,14 @@ u8 hosu_read( )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
dat = (u8)(( temp >> 8 ) & 0x00FF );
|
dat = (u8)(( temp >> 8 ) & 0x00FF );
|
||||||
p_record_buffer -= 1;
|
if( p_record_buffer == 0 )
|
||||||
|
{
|
||||||
|
p_record_buffer = PEDOMETER_LOG_SIZE-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
p_record_buffer -= 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
record_read_msb_lsb += 1;
|
record_read_msb_lsb += 1;
|
||||||
return( dat );
|
return( dat );
|
||||||
@ -371,7 +381,7 @@ u8 hosu_read( )
|
|||||||
引数 無し
|
引数 無し
|
||||||
返値 u16 long_hour
|
返値 u16 long_hour
|
||||||
======================================================== */
|
======================================================== */
|
||||||
static const u16 DAYS_FROM_HNY[] = {
|
const u16 DAYS_FROM_HNY[] = {
|
||||||
0,
|
0,
|
||||||
0, 31, 31+28, 59+31, 90+30,
|
0, 31, 31+28, 59+31, 90+30,
|
||||||
120+31, 151+30, 181+31, 212+31, 243+30,
|
120+31, 151+30, 181+31, 212+31, 243+30,
|
||||||
|
|||||||
@ -2,98 +2,21 @@
|
|||||||
#define _pedo_
|
#define _pedo_
|
||||||
|
|
||||||
|
|
||||||
|
// =========================================================
|
||||||
void hosu_read_end( );
|
void hosu_read_end( );
|
||||||
u8 hosu_read( );
|
u8 hosu_read( );
|
||||||
void fill_hosu_hist_hours( u16 );
|
void fill_hosu_hist_hours( u16 );
|
||||||
void clear_hosu_hist();
|
void clear_hosu_hist();
|
||||||
|
|
||||||
|
|
||||||
// =========================================================
|
|
||||||
#define TAP 64
|
|
||||||
#define FIL_COEFF_QUANT 10
|
|
||||||
static const s8 lpf_coeff[]={
|
|
||||||
/*
|
|
||||||
Window Function Algorithm LPF
|
|
||||||
Sampling Frequency = 100.0
|
|
||||||
cutoff1 = 6.0000000
|
|
||||||
Tap Count =64
|
|
||||||
Kaiser Constant = 7.000000
|
|
||||||
Quantized by 11 [bits]
|
|
||||||
*/
|
|
||||||
/* 0,// [0]
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
*/
|
|
||||||
1,// 8
|
|
||||||
2,
|
|
||||||
2,
|
|
||||||
3,
|
|
||||||
3,
|
|
||||||
2,
|
|
||||||
0,
|
|
||||||
-2,
|
|
||||||
-5,// 16
|
|
||||||
-9,
|
|
||||||
-13,
|
|
||||||
-16,
|
|
||||||
-16,
|
|
||||||
-13,
|
|
||||||
-6,
|
|
||||||
4,
|
|
||||||
18,// 24
|
|
||||||
37,
|
|
||||||
56,
|
|
||||||
77,
|
|
||||||
95,
|
|
||||||
110,
|
|
||||||
119,
|
|
||||||
122,
|
|
||||||
119,// 32
|
|
||||||
110,
|
|
||||||
95,
|
|
||||||
77,
|
|
||||||
56,
|
|
||||||
37,
|
|
||||||
18,
|
|
||||||
4,
|
|
||||||
-6,// 40
|
|
||||||
-13,
|
|
||||||
-16,
|
|
||||||
-16,
|
|
||||||
-13,
|
|
||||||
-9,
|
|
||||||
-5,
|
|
||||||
-2,
|
|
||||||
0,// 48
|
|
||||||
2,
|
|
||||||
3,
|
|
||||||
3,
|
|
||||||
2,
|
|
||||||
2,
|
|
||||||
1,
|
|
||||||
/*
|
|
||||||
0,
|
|
||||||
0,// 56
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
*/
|
|
||||||
};
|
|
||||||
// */
|
|
||||||
|
|
||||||
// =========================================================
|
|
||||||
|
|
||||||
void pedometer();
|
void pedometer();
|
||||||
static void hosu_increment();
|
|
||||||
|
|
||||||
|
|
||||||
|
// =========================================================
|
||||||
|
#define PEDOMETER_LOG_SIZE ( 24 * 7 )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// =========================================================
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
48
trunk/pm.c
48
trunk/pm.c
@ -16,7 +16,8 @@
|
|||||||
|
|
||||||
#include <fsl.h>
|
#include <fsl.h>
|
||||||
#include "fsl_user.h"
|
#include "fsl_user.h"
|
||||||
extern u16 pool[];
|
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
|
|
||||||
@ -71,7 +72,7 @@ err PM_LCD_on( )
|
|||||||
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_DEACT; // 1でミュート
|
SND_DEPOP_SND_ENABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _PMIC_TWL_
|
#ifdef _PMIC_TWL_
|
||||||
@ -84,7 +85,7 @@ err PM_LCD_on( )
|
|||||||
// BSR //
|
// BSR //
|
||||||
void PM_LCD_off()
|
void PM_LCD_off()
|
||||||
{
|
{
|
||||||
SND_DEPOP_ACT;
|
SND_DEPOP_SND_MUTE;
|
||||||
|
|
||||||
// BLついてたら消す
|
// BLついてたら消す
|
||||||
#ifdef _PMIC_TWL_
|
#ifdef _PMIC_TWL_
|
||||||
@ -230,14 +231,14 @@ err PM_LCD_on( )
|
|||||||
{
|
{
|
||||||
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_DEACT; // 1でミュート
|
SND_DEPOP_SND_ENABLE; // 1でミュート
|
||||||
return ( ERR_SUCCESS );
|
return ( ERR_SUCCESS );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PM_LCD_off( )
|
void PM_LCD_off( )
|
||||||
{
|
{
|
||||||
SND_DEPOP_ACT;
|
SND_DEPOP_SND_MUTE;
|
||||||
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_OFF );
|
set_irq( VREG_C_IRQ3, REG_BIT_LCD_OFF );
|
||||||
}
|
}
|
||||||
@ -559,7 +560,7 @@ task_status_immed ntr_pmic_comm( )
|
|||||||
// CODECバグ回避
|
// CODECバグ回避
|
||||||
// リセット単品でなかったら無視
|
// リセット単品でなかったら無視
|
||||||
// codec 修正済↓
|
// codec 修正済↓
|
||||||
// if( ( reg1_old ^ reg_shadow ) == REG_BIT_TWL_REQ_RST_REQ )
|
if( ( reg1_old ^ reg_shadow ) == REG_BIT_TWL_REQ_RST_REQ )
|
||||||
{
|
{
|
||||||
set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ );
|
set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ );
|
||||||
}
|
}
|
||||||
@ -634,7 +635,7 @@ task_status_immed tski_PM_BL_set()
|
|||||||
void tsk_batt( )
|
void tsk_batt( )
|
||||||
{
|
{
|
||||||
static u8 task_interval = 0;
|
static u8 task_interval = 0;
|
||||||
static u8 charge_hys = 0; // ヒステリシスで上限下限を拡張するとき1
|
static u8 temp_area = 0; // 温度で充電停止する時にヒステリシスを付けるため
|
||||||
static bit pm_extdc_old;
|
static bit pm_extdc_old;
|
||||||
|
|
||||||
if( task_interval-- != 0 )
|
if( task_interval-- != 0 )
|
||||||
@ -666,25 +667,26 @@ void tsk_batt( )
|
|||||||
|
|
||||||
// 充電 ///////////////////////////
|
// 充電 ///////////////////////////
|
||||||
// 温度付きヒステリシス
|
// 温度付きヒステリシス
|
||||||
if( vreg_ctr[VREG_C_BT_TEMP] < 0x36 )
|
if(( 86 < vreg_ctr[VREG_C_BT_TEMP] )
|
||||||
|
&& ( vreg_ctr[VREG_C_BT_TEMP] < 185 ))
|
||||||
{
|
{
|
||||||
charge_hys = 1;
|
temp_area = 1; // 充電許可
|
||||||
|
}
|
||||||
|
else if(( vreg_ctr[VREG_C_BT_TEMP] < 70 )
|
||||||
|
|| ( 189 < vreg_ctr[VREG_C_BT_TEMP] ))
|
||||||
|
{
|
||||||
|
temp_area = 0; // 充電禁止
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// temp_area そのまま
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( 1 < vreg_ctr[VREG_C_BT_TEMP] )
|
if(( temp_area == 1 )
|
||||||
&& ( vreg_ctr[VREG_C_BT_TEMP] < 0x2C ) )
|
&& ( battery_manufacturer <= BT_VENDER_6 ))
|
||||||
{
|
|
||||||
charge_hys = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ( ( charge_hys == 1 )
|
|
||||||
&& ( 1 < vreg_ctr[VREG_C_BT_TEMP] )
|
|
||||||
&& ( vreg_ctr[VREG_C_BT_TEMP] < 0x2C ) )
|
|
||||||
||
|
|
||||||
( ( charge_hys == 0 )
|
|
||||||
&& ( vreg_ctr[VREG_C_BT_TEMP] < 0x36 ) ) )
|
|
||||||
{
|
{
|
||||||
#ifndef _MODEL_WM0_
|
#ifndef _MODEL_WM0_
|
||||||
|
// CHG_ENABLEピンは /WL_RST に配線されているので
|
||||||
BT_CHG_ENABLE(); // 温度範囲OKで充電再開
|
BT_CHG_ENABLE(); // 温度範囲OKで充電再開
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -692,16 +694,12 @@ void tsk_batt( )
|
|||||||
BT_CHG_DISABLE(); // 温度危険! 充電停止
|
BT_CHG_DISABLE(); // 温度危険! 充電停止
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef _MODEL_WM0_
|
|
||||||
// CHG_ENABLEピンは /WL_RST に配線されているので
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// 充電 //
|
// 充電 //
|
||||||
// →割り込み。miscの中でよろしくやってくれている。
|
// →割り込み。miscの中でよろしくやってくれている。
|
||||||
set_bit( !BT_CHG_n, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE );
|
set_bit( !BT_CHG_n, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE );
|
||||||
LED_CHARGE = !BT_CHG_n ? 1 : 0;
|
LED_CHARGE = !BT_CHG_n ? 1 : 0;
|
||||||
|
|
||||||
|
|
||||||
// 電池残量 //
|
// 電池残量 //
|
||||||
if( system_status.pwr_state == ON )
|
if( system_status.pwr_state == ON )
|
||||||
{
|
{
|
||||||
|
|||||||
@ -29,7 +29,8 @@ typedef unsigned char err;
|
|||||||
// ************************************
|
// ************************************
|
||||||
typedef enum{
|
typedef enum{
|
||||||
ERR_SUCCESS = 0,
|
ERR_SUCCESS = 0,
|
||||||
ERR_ERR
|
ERR_ERR,
|
||||||
|
ERR_SYSTEM_OFF
|
||||||
}ERR;
|
}ERR;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
/*スクリプトによる自動生成です。手動で書き換えない方がよいです*/
|
/*スクリプトによる自動生成です。手動で書き換えない方がよいです*/
|
||||||
|
|
||||||
|
#include "renge_defs.h"
|
||||||
|
|
||||||
|
|
||||||
#ifndef __renge_task__
|
#ifndef __renge_task__
|
||||||
#define __renge_task__
|
#define __renge_task__
|
||||||
|
|
||||||
#include "renge_defs.h"
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
TSK_SW, TSK_ADC, TSK_BATT, TSK_LED_POW, TSK_LED_WIFI, TSK_LED_NOTIFY, TSK_LED_CAM, TSK_MISC_STAT, TSK_DEBUG, TSK_DEBUG2, TSK_SYS, TSK_LAST
|
TSK_SW, TSK_ADC, TSK_BATT, TSK_LED_POW, TSK_LED_WIFI, TSK_LED_NOTIFY, TSK_LED_CAM, TSK_MISC_STAT, TSK_DEBUG, TSK_DEBUG2, TSK_SYS, TSK_LAST
|
||||||
};
|
};
|
||||||
@ -21,7 +22,8 @@ extern void tsk_debug();
|
|||||||
extern void tsk_debug2();
|
extern void tsk_debug2();
|
||||||
extern void tsk_sys();
|
extern void tsk_sys();
|
||||||
|
|
||||||
static const task_status ( *tasks[ TSK_LAST ] )() = {
|
|
||||||
|
const void ( *tasks[ TSK_LAST ] )() = {
|
||||||
tsk_sw,
|
tsk_sw,
|
||||||
tsk_adc,
|
tsk_adc,
|
||||||
tsk_batt,
|
tsk_batt,
|
||||||
@ -35,5 +37,6 @@ static const task_status ( *tasks[ TSK_LAST ] )() = {
|
|||||||
tsk_sys,
|
tsk_sys,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,7 @@
|
|||||||
#include "fsl_user.h"
|
#include "fsl_user.h"
|
||||||
#include "i2c_ctr.h"
|
#include "i2c_ctr.h"
|
||||||
|
|
||||||
|
#include "pool.h"
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
@ -24,6 +25,7 @@ const u8 fsl_low_voltage_u08 = 1;
|
|||||||
|
|
||||||
// 自己フラッシュパラメータ
|
// 自己フラッシュパラメータ
|
||||||
#define SAM_BLOCK_SIZE 1024
|
#define SAM_BLOCK_SIZE 1024
|
||||||
|
// ↓256バイト以上はまとめてかけません。
|
||||||
#define SELF_UPDATE_BUFF_SIZE 256
|
#define SELF_UPDATE_BUFF_SIZE 256
|
||||||
#define SELF_UPDATE_SPLIT_WRITE_NUM ( SAM_BLOCK_SIZE / SELF_UPDATE_BUFF_SIZE )
|
#define SELF_UPDATE_SPLIT_WRITE_NUM ( SAM_BLOCK_SIZE / SELF_UPDATE_BUFF_SIZE )
|
||||||
#define SAM_WORD_SIZE 4
|
#define SAM_WORD_SIZE 4
|
||||||
@ -36,8 +38,6 @@ const u8 fsl_low_voltage_u08 = 1;
|
|||||||
|
|
||||||
|
|
||||||
#ifdef _MCU_BSR_
|
#ifdef _MCU_BSR_
|
||||||
|
|
||||||
|
|
||||||
#define ACKD ACKD1
|
#define ACKD ACKD1
|
||||||
#define ACKE ACKE1
|
#define ACKE ACKE1
|
||||||
#define COI COI1
|
#define COI COI1
|
||||||
@ -72,12 +72,12 @@ static void FSL_Close( void );
|
|||||||
void firm_restore( );
|
void firm_restore( );
|
||||||
|
|
||||||
static err my_FSL_Init();
|
static err my_FSL_Init();
|
||||||
static err firm_duplicate( __far u8 * p_rom, u8 block_dest );
|
static err firm_duplicate( u8 block_src, u8 block_dest );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
extern u16 pool[];
|
extern uni_pool pool;
|
||||||
|
|
||||||
|
|
||||||
// 0.D以降 新アップデータ向け
|
// 0.D以降 新アップデータ向け
|
||||||
@ -102,11 +102,12 @@ void firm_update( )
|
|||||||
my_FSL_Init();
|
my_FSL_Init();
|
||||||
|
|
||||||
/* ファームのバックアップ
|
/* ファームのバックアップ
|
||||||
|
開始アドレス、書き込み先の先頭”ブロック番号” (サイズは FIRM_SIZE)
|
||||||
0x2000 - 0x4FFF を
|
0x2000 - 0x4FFF を
|
||||||
0x5000 - 0x7FFF (ブロック 20 - 31) にコピー
|
0x5000 - 0x7FFF (ブロック 20 - 31) にコピー
|
||||||
*/
|
*/
|
||||||
firm_duplicate( ( __far u8 * ) 0x2000,
|
firm_duplicate( FIRM_TOP,
|
||||||
( 0x5000 / 0x0400 ) );
|
UPDATE_BLOCK_LAST +1 );
|
||||||
|
|
||||||
// 全ブロック削除 /////////////////////////////////////
|
// 全ブロック削除 /////////////////////////////////////
|
||||||
// 電源断を判定するため、最初に全クラスタ消去する
|
// 電源断を判定するため、最初に全クラスタ消去する
|
||||||
@ -134,36 +135,37 @@ void firm_update( )
|
|||||||
&& ( !SPD ) );
|
&& ( !SPD ) );
|
||||||
split_write_count += 1 )
|
split_write_count += 1 )
|
||||||
{
|
{
|
||||||
u8* p_buffer = pool;
|
u8* p_buffer = &pool.self_update_work[0];
|
||||||
u8 buffer_fill = 0;
|
u16 buff_written_size = 0;
|
||||||
|
|
||||||
WDT_Restart( );
|
|
||||||
|
|
||||||
// I2Cから書き込みデータをバッファにためる
|
// I2Cから書き込みデータをバッファにためる
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
while( !IICAIF && !SPD ){;}
|
while( !IICAIF && !SPD )
|
||||||
|
{
|
||||||
|
WDT_Restart( );
|
||||||
|
}
|
||||||
IICAIF = 0;
|
IICAIF = 0;
|
||||||
*p_buffer = IICA;
|
*p_buffer = IICA;
|
||||||
WREL = 1;
|
WREL = 1;
|
||||||
p_buffer += 1;
|
p_buffer += 1;
|
||||||
buffer_fill += 1;
|
buff_written_size += 1;
|
||||||
}
|
}
|
||||||
while( ( buffer_fill != ( u8 ) SELF_UPDATE_BUFF_SIZE ) && !SPD );
|
while( ( buff_written_size != SELF_UPDATE_BUFF_SIZE )
|
||||||
|
&& !SPD );
|
||||||
|
|
||||||
// 書き込み
|
// 書き込み
|
||||||
// 最後だと、ゴミをパディングするが別にかまわない
|
// 最後だと、ゴミをパディングするが別にかまわない
|
||||||
if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE
|
if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE
|
||||||
+
|
+ split_write_count * SELF_UPDATE_BUFF_SIZE ),
|
||||||
split_write_count *
|
( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) )
|
||||||
SELF_UPDATE_BUFF_SIZE ),
|
|
||||||
( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) )
|
|
||||||
|
|
||||||
!= FSL_OK )
|
!= FSL_OK )
|
||||||
{
|
{
|
||||||
// 書き込み後のチェックエラー
|
// 書き込み後のチェックエラー
|
||||||
// リストア
|
// リストア
|
||||||
firm_duplicate( ( __far u8 * ) 0x5000,
|
firm_duplicate( UPDATE_BLOCK_LAST +1,
|
||||||
FIRM_TOP );
|
FIRM_TOP );
|
||||||
FSL_ForceReset();
|
FSL_ForceReset();
|
||||||
// 戻ってこない //
|
// 戻ってこない //
|
||||||
@ -173,7 +175,11 @@ void firm_update( )
|
|||||||
// 1ブロック書き込み完了。内部ベリファイを行う
|
// 1ブロック書き込み完了。内部ベリファイを行う
|
||||||
if( FSL_IVerify( target_block ) != FSL_OK ){
|
if( FSL_IVerify( target_block ) != FSL_OK ){
|
||||||
// todo 再度消去→書き込み ベリファイを繰り返すだけじゃダメでした...
|
// todo 再度消去→書き込み ベリファイを繰り返すだけじゃダメでした...
|
||||||
NOP();
|
// リストア
|
||||||
|
firm_duplicate( UPDATE_BLOCK_LAST +1,
|
||||||
|
FIRM_TOP );
|
||||||
|
FSL_ForceReset();
|
||||||
|
// 戻ってこない //
|
||||||
}
|
}
|
||||||
|
|
||||||
if( SPD )
|
if( SPD )
|
||||||
@ -205,7 +211,7 @@ void firm_update( )
|
|||||||
{
|
{
|
||||||
// データ(マジックナンバーしか見てない)エラー
|
// データ(マジックナンバーしか見てない)エラー
|
||||||
// リストア
|
// リストア
|
||||||
firm_duplicate( ( __far u8 * ) 0x5000,
|
firm_duplicate( UPDATE_BLOCK_LAST,
|
||||||
FIRM_TOP );
|
FIRM_TOP );
|
||||||
FSL_ForceReset(); // リセット
|
FSL_ForceReset(); // リセット
|
||||||
// 戻ってこない //
|
// 戻ってこない //
|
||||||
@ -230,7 +236,7 @@ void firm_restore( )
|
|||||||
0x4800 - 0x7FFF (ブロック 18 - 27) から
|
0x4800 - 0x7FFF (ブロック 18 - 27) から
|
||||||
0x2000 - 0x47FF (ブロック 8 - 17) へコピー
|
0x2000 - 0x47FF (ブロック 8 - 17) へコピー
|
||||||
*/
|
*/
|
||||||
firm_duplicate( ( __far u8 * ) 0x5000,
|
firm_duplicate( UPDATE_BLOCK_LAST +1,
|
||||||
FIRM_TOP );
|
FIRM_TOP );
|
||||||
// todo
|
// todo
|
||||||
// リストア失敗したら、LEDちかちかとかさせて、サービス送りにしてもらう
|
// リストア失敗したら、LEDちかちかとかさせて、サービス送りにしてもらう
|
||||||
@ -304,11 +310,14 @@ static void FSL_Close( void )
|
|||||||
|
|
||||||
コピー先に書けるようにmy_FSL_Initをあらかじめ実行する必要があります。
|
コピー先に書けるようにmy_FSL_Initをあらかじめ実行する必要があります。
|
||||||
======================================================== */
|
======================================================== */
|
||||||
static err firm_duplicate( __far u8 * p_rom,
|
//static err firm_duplicate( __far u8 * p_rom,
|
||||||
u8 block_dest )
|
// u8 block_dest )
|
||||||
|
static err firm_duplicate( u8 block_src,
|
||||||
|
u8 block_dest )
|
||||||
{
|
{
|
||||||
u8 target_block;
|
u8 target_block;
|
||||||
u8 split_write_count; // ブロックへちまちま書き込むカウンタ
|
u8 split_write_count; // ブロックへちまちま書き込むカウンタ
|
||||||
|
__far u8* p_src = ( __far u8* )( block_src * 0x400 );
|
||||||
|
|
||||||
// 書き込み先ブロックの数だけ繰り返す
|
// 書き込み先ブロックの数だけ繰り返す
|
||||||
for( target_block = block_dest;
|
for( target_block = block_dest;
|
||||||
@ -327,29 +336,28 @@ static err firm_duplicate( __far u8 * p_rom,
|
|||||||
split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM;
|
split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM;
|
||||||
split_write_count += 1 )
|
split_write_count += 1 )
|
||||||
{
|
{
|
||||||
u8 buffer_fill;
|
u16 buff_written_size;
|
||||||
u8* p_buff;
|
u8* p_buff;
|
||||||
|
|
||||||
// 書き込みデータをバッファにためる
|
// 書き込みデータをバッファにためる
|
||||||
buffer_fill = 0;
|
buff_written_size = 0;
|
||||||
p_buff = pool;
|
p_buff = &pool.self_update_work[0];
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
*p_buff = *p_rom;
|
*p_buff = *p_src;
|
||||||
p_rom += 1;
|
p_src += 1;
|
||||||
p_buff += 1;
|
p_buff += 1;
|
||||||
buffer_fill +=1;
|
buff_written_size +=1;
|
||||||
}
|
}
|
||||||
while( buffer_fill != ( u8 ) SELF_UPDATE_BUFF_SIZE );
|
while( buff_written_size != SELF_UPDATE_BUFF_SIZE );
|
||||||
|
|
||||||
// 書き込み
|
// 書き込み
|
||||||
if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE
|
if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE
|
||||||
+
|
+ split_write_count * SELF_UPDATE_BUFF_SIZE ),
|
||||||
split_write_count *
|
( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) )
|
||||||
SELF_UPDATE_BUFF_SIZE ),
|
|
||||||
( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) )
|
|
||||||
!= FSL_OK )
|
!= FSL_OK )
|
||||||
{
|
{
|
||||||
|
// todo リカバリ? //
|
||||||
FSL_Close( );
|
FSL_Close( );
|
||||||
return ( ERR_ERR );
|
return ( ERR_ERR );
|
||||||
}
|
}
|
||||||
@ -377,7 +385,7 @@ static err my_FSL_Init()
|
|||||||
DI( );
|
DI( );
|
||||||
FSL_Open( ); // 割り込み禁止など
|
FSL_Open( ); // 割り込み禁止など
|
||||||
|
|
||||||
FSL_Init( pool ); // ライブラリ初期化。割り込み中断考慮せず
|
FSL_Init( &pool.self_update_work[0] ); // ライブラリ初期化。割り込み中断考慮せず
|
||||||
FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず
|
FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず
|
||||||
|
|
||||||
return( ERR_SUCCESS );
|
return( ERR_SUCCESS );
|
||||||
@ -386,12 +394,11 @@ static err my_FSL_Init()
|
|||||||
|
|
||||||
task_status_immed tski_mcu_reset()
|
task_status_immed tski_mcu_reset()
|
||||||
{
|
{
|
||||||
WDT_Restart( );
|
|
||||||
// 普通に再起動
|
// 普通に再起動
|
||||||
my_FSL_Init();
|
my_FSL_Init();
|
||||||
FSL_SwapBootCluster();
|
FSL_SwapBootCluster();
|
||||||
|
|
||||||
// FSL_ForceReset(); // リセット
|
FSL_ForceReset(); // リセット
|
||||||
FSL_Close( );
|
FSL_Close( );
|
||||||
|
|
||||||
// 保険? //
|
// 保険? //
|
||||||
|
|||||||
@ -90,7 +90,7 @@ void tsk_sys( )
|
|||||||
system_status.pwr_state = OFF_TRIG;
|
system_status.pwr_state = OFF_TRIG;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 残量チェック
|
// 残量チェック
|
||||||
BT_get_left(); // 先に、BT_init()が実行されている必要があります。(大丈夫)
|
BT_get_left(); // 先に、BT_init()が実行されている必要があります。(大丈夫)
|
||||||
if( vreg_ctr[VREG_C_BT_REMAIN] < 5 )
|
if( vreg_ctr[VREG_C_BT_REMAIN] < 5 )
|
||||||
@ -265,6 +265,9 @@ void tsk_sys( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
PM_sys_pow_off( );
|
PM_sys_pow_off( );
|
||||||
|
while( iic_mcu_busy )
|
||||||
|
{;
|
||||||
|
}
|
||||||
|
|
||||||
KRM = ( KR_SW_POW ); // Mask ではなく、Modeなのだそうだ。紛らわしい
|
KRM = ( KR_SW_POW ); // Mask ではなく、Modeなのだそうだ。紛らわしい
|
||||||
// intp20系は後ほど
|
// intp20系は後ほど
|
||||||
@ -354,21 +357,59 @@ void tsk_sys( )
|
|||||||
**********************************************************/
|
**********************************************************/
|
||||||
static void chk_emergencyExit(){
|
static void chk_emergencyExit(){
|
||||||
#ifndef _PARRADIUM_
|
#ifndef _PARRADIUM_
|
||||||
if( !RESET1_n )
|
static u8 shirobako_power_control;
|
||||||
|
|
||||||
|
if( shirobako_power_control == 0 ) // PM_chk_LDSW() はI2C_mを使用し、高コスト
|
||||||
{
|
{
|
||||||
if( PM_chk_LDSW( ) == 0 )
|
if( !RESET1_n )
|
||||||
{
|
{
|
||||||
// PMICが異常終了判断をした
|
// リセットが下がってる
|
||||||
|
if( PM_chk_LDSW( ) == 0 )
|
||||||
|
{
|
||||||
|
// PMICが異常終了判断をした
|
||||||
|
system_status.pwr_state = OFF_TRIG;
|
||||||
|
renge_task_interval_run_force = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 白箱の仕業
|
||||||
|
shirobako_power_control = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if( shirobako_power_control == 240 )
|
||||||
|
// デバッガが何かした。reset1を解除するまでは無視
|
||||||
|
{
|
||||||
|
if( RESET1_n )
|
||||||
|
{
|
||||||
|
shirobako_power_control = 0;
|
||||||
|
}
|
||||||
|
}else if( shirobako_power_control == 200 )
|
||||||
|
// デバッガが何かしたいらしい
|
||||||
|
{
|
||||||
|
// 白箱は電源を切りたいらしい
|
||||||
system_status.pwr_state = OFF_TRIG;
|
system_status.pwr_state = OFF_TRIG;
|
||||||
renge_task_interval_run_force = 1;
|
renge_task_interval_run_force = 1;
|
||||||
|
shirobako_power_control = 240;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// デバッガなりがリセットをかけた
|
if( !RESET1_n )
|
||||||
iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, 0 );
|
{
|
||||||
vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & 0b10011111 );
|
shirobako_power_control += 1;
|
||||||
vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ;
|
}
|
||||||
renge_task_immed_add( do_command0 );
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
// リセットをかけたらしい
|
||||||
|
iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, 0 );
|
||||||
|
vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & 0b10011111 );
|
||||||
|
vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ;
|
||||||
|
renge_task_immed_add( do_command0 );
|
||||||
|
shirobako_power_control = 240;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -118,11 +118,11 @@
|
|||||||
// INTP6
|
// INTP6
|
||||||
|
|
||||||
#ifndef _MODEL_CTR_
|
#ifndef _MODEL_CTR_
|
||||||
#define SND_DEPOP_ACT P7.6 = 1
|
#define SND_DEPOP_SND_MUTE P7.7 = 1
|
||||||
#define SND_DEPOP_DEACT P7.6 = 0
|
#define SND_DEPOP_SND_ENABLE P7.7 = 0
|
||||||
#else
|
#else
|
||||||
#define SND_DEPOP_ACT ;
|
#define SND_DEPOP_SND_MUTE ;
|
||||||
#define SND_DEPOP_DEACT ;
|
#define SND_DEPOP_SND_ENABLE ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// PM
|
// PM
|
||||||
@ -194,8 +194,10 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _MODEL_CTR_
|
#ifdef _MODEL_CTR_
|
||||||
#define I2C_PU_on() { PM14 |= 0x03; P5 |= 0x09; P14 |= 0x03; PM14 &= ~0x03; }
|
// P5.0 に加え、P5.5, P140 P141
|
||||||
#define I2C_PU_off() { PM14 |= 0x03; P5 &= 0x09; }
|
// P140が出力専用なので...
|
||||||
|
#define I2C_PU_on() { PM5 |= 0x09; P14 |= 0x03; P5 |= 0x09; PM5 &= ~0x09; }
|
||||||
|
#define I2C_PU_off() { PM5 |= 0x09; P14 &= ~0x03; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -19,12 +19,8 @@ extern u8 mcu_info_read(); // task_misc.c
|
|||||||
|
|
||||||
// ********************************************************
|
// ********************************************************
|
||||||
u8 vreg_ctr[VREG_C_ENDMARK_];
|
u8 vreg_ctr[VREG_C_ENDMARK_];
|
||||||
|
|
||||||
bit irq_readed; // AAA型のため。
|
bit irq_readed; // AAA型のため。
|
||||||
|
|
||||||
extern bit update;
|
|
||||||
extern u16 pool[];
|
|
||||||
|
|
||||||
|
|
||||||
// ********************************************************
|
// ********************************************************
|
||||||
extern task_status_immed tski_firm_update();
|
extern task_status_immed tski_firm_update();
|
||||||
|
|||||||
@ -5,10 +5,11 @@ TWL
|
|||||||
======================================================== */
|
======================================================== */
|
||||||
#include "incs.h"
|
#include "incs.h"
|
||||||
#include "jhl_defs.h"
|
#include "jhl_defs.h"
|
||||||
|
#include "led.h"
|
||||||
|
|
||||||
#include "vreg_twl.h"
|
#include "vreg_twl.h"
|
||||||
|
|
||||||
#include "vreg_ctr.h"
|
#include "vreg_ctr.h"
|
||||||
#include "renge\renge_task_intval.h"
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
#define TWL_REG_VER_INFO 0x35
|
#define TWL_REG_VER_INFO 0x35
|
||||||
|
|||||||
@ -116,7 +116,7 @@ void vreg_twl_write( u8 adrs, u8 data );
|
|||||||
u8 adrs_table_twl_ext2int( u8 img );
|
u8 adrs_table_twl_ext2int( u8 img );
|
||||||
u8 vreg_twl_read( u8 phy_adrs );
|
u8 vreg_twl_read( u8 phy_adrs );
|
||||||
|
|
||||||
task_status_immed command_from_twl( );
|
extern task_status_immed command_from_twl( );
|
||||||
|
|
||||||
|
|
||||||
// 読んだらクリアなどの処理
|
// 読んだらクリアなどの処理
|
||||||
|
|||||||
@ -36,9 +36,6 @@ TargetFile=0
|
|||||||
[BuildMode5]
|
[BuildMode5]
|
||||||
BuildModeName=BSR_WM0
|
BuildModeName=BSR_WM0
|
||||||
TargetFile=0
|
TargetFile=0
|
||||||
[BuildBefore-AfterCmd]
|
|
||||||
Before1=touch magic.c
|
|
||||||
After1=ruby nec_s_2_bsrbin2.rb bsr.hex
|
|
||||||
[Options.OC78K0R 0]
|
[Options.OC78K0R 0]
|
||||||
Version=100
|
Version=100
|
||||||
O0=.\bsr.hex
|
O0=.\bsr.hex
|
||||||
@ -254,30 +251,6 @@ Version=100
|
|||||||
LCNV_GO=0
|
LCNV_GO=0
|
||||||
E=0
|
E=0
|
||||||
CommandFile=0
|
CommandFile=0
|
||||||
[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=ini_VECT.c
|
|
||||||
Source10=led.c
|
|
||||||
Source11=rtc.c
|
|
||||||
Source12=vreg_ctr.c
|
|
||||||
Source13=vreg_twl.c
|
|
||||||
Source14=adc.c
|
|
||||||
Source15=renge\renge.c
|
|
||||||
Source16=accero.c
|
|
||||||
Source17=self_flash.c
|
|
||||||
Source18=reboot.c
|
|
||||||
Source19=sw.c
|
|
||||||
Source20=task_debug.c
|
|
||||||
Source21=task_misc.c
|
|
||||||
Source22=task_sys.c
|
|
||||||
Source23=pedo_alg_thre_det2.c
|
|
||||||
[Options.LK78K0R 0]
|
[Options.LK78K0R 0]
|
||||||
Version=100
|
Version=100
|
||||||
O0=bsr_k0r.lmf
|
O0=bsr_k0r.lmf
|
||||||
@ -539,44 +512,6 @@ DefaultMode2=1
|
|||||||
DefaultMode3=1
|
DefaultMode3=1
|
||||||
DefaultMode4=1
|
DefaultMode4=1
|
||||||
DefaultMode5=1
|
DefaultMode5=1
|
||||||
[ToolSet]
|
|
||||||
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
|
||||||
Tool1=CC78K0R|W2.10
|
|
||||||
Tool2=RA78K0R|W1.31
|
|
||||||
Tool3=ID78K0R-QB|V3.60
|
|
||||||
[IncFile]
|
|
||||||
Include1=incs_loader.h
|
|
||||||
Include2=jhl_defs.h
|
|
||||||
Include3=config.h
|
|
||||||
Include4=user_define.h
|
|
||||||
Include5=bsr_system.h
|
|
||||||
Include6=renge\renge.h
|
|
||||||
Include7=renge\renge_defs.h
|
|
||||||
Include8=renge\renge_task_immediate.h
|
|
||||||
Include9=vreg_ctr.h
|
|
||||||
Include10=vreg_twl.h
|
|
||||||
Include11=loader.h
|
|
||||||
Include12=i2c_mcu.h
|
|
||||||
Include13=WDT.h
|
|
||||||
Include14=fsl.h
|
|
||||||
Include15=fsl_user.h
|
|
||||||
Include16=i2c_ctr.h
|
|
||||||
Include17=pm.h
|
|
||||||
Include18=rtc.h
|
|
||||||
Include19=reboot.h
|
|
||||||
Include20=incs.h
|
|
||||||
Include21=accero.h
|
|
||||||
Include22=pedometer.h
|
|
||||||
Include23=adc.h
|
|
||||||
Include24=led.h
|
|
||||||
Include25=batt_params.h
|
|
||||||
Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
|
||||||
Include27=i2c_twl_defs.h
|
|
||||||
Include28=renge\renge_task_intval.h
|
|
||||||
Include29=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
|
||||||
Include30=i2c_twl.h
|
|
||||||
Include31=sw.h
|
|
||||||
Include32=self_flash.h
|
|
||||||
[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
|
||||||
@ -1043,3 +978,69 @@ VfiFileBoot0=
|
|||||||
VfiFileBoot1=boot.vfi
|
VfiFileBoot1=boot.vfi
|
||||||
VF78K0Rchk=0
|
VF78K0Rchk=0
|
||||||
VF78K0Rvs=
|
VF78K0Rvs=
|
||||||
|
[ToolSet]
|
||||||
|
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
||||||
|
Tool1=CC78K0R|W2.10
|
||||||
|
Tool2=RA78K0R|W1.31
|
||||||
|
Tool3=ID78K0R-QB|V3.60
|
||||||
|
[SrcFile]
|
||||||
|
Source1=loader.c
|
||||||
|
Source2=pm.c
|
||||||
|
Source3=i2c_ctr.c
|
||||||
|
Source4=main.c
|
||||||
|
Source5=magic.c
|
||||||
|
Source6=WDT.c
|
||||||
|
Source7=i2c_mcu.c
|
||||||
|
Source8=i2c_twl.c
|
||||||
|
Source9=ini_VECT.c
|
||||||
|
Source10=led.c
|
||||||
|
Source11=rtc.c
|
||||||
|
Source12=vreg_ctr.c
|
||||||
|
Source13=vreg_twl.c
|
||||||
|
Source14=adc.c
|
||||||
|
Source15=renge\renge.c
|
||||||
|
Source16=accero.c
|
||||||
|
Source17=self_flash.c
|
||||||
|
Source18=sw.c
|
||||||
|
Source19=task_debug.c
|
||||||
|
Source20=task_misc.c
|
||||||
|
Source21=task_sys.c
|
||||||
|
Source22=pedo_alg_thre_det2.c
|
||||||
|
[BuildBefore-AfterCmd]
|
||||||
|
Before1=touch magic.c
|
||||||
|
After1=ruby nec_s_2_bsrbin2.rb bsr.hex
|
||||||
|
[IncFile]
|
||||||
|
Include1=incs_loader.h
|
||||||
|
Include2=jhl_defs.h
|
||||||
|
Include3=config.h
|
||||||
|
Include4=user_define.h
|
||||||
|
Include5=bsr_system.h
|
||||||
|
Include6=renge\renge.h
|
||||||
|
Include7=renge\renge_defs.h
|
||||||
|
Include8=renge\renge_task_immediate.h
|
||||||
|
Include9=vreg_ctr.h
|
||||||
|
Include10=vreg_twl.h
|
||||||
|
Include11=loader.h
|
||||||
|
Include12=i2c_mcu.h
|
||||||
|
Include13=WDT.h
|
||||||
|
Include14=fsl.h
|
||||||
|
Include15=fsl_user.h
|
||||||
|
Include16=i2c_ctr.h
|
||||||
|
Include17=pm.h
|
||||||
|
Include18=rtc.h
|
||||||
|
Include19=reboot.h
|
||||||
|
Include20=incs.h
|
||||||
|
Include21=accero.h
|
||||||
|
Include22=pedometer.h
|
||||||
|
Include23=adc.h
|
||||||
|
Include24=led.h
|
||||||
|
Include25=batt_params.h
|
||||||
|
Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
|
||||||
|
Include27=i2c_twl_defs.h
|
||||||
|
Include28=renge\renge_task_intval.h
|
||||||
|
Include29=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
|
||||||
|
Include30=i2c_twl.h
|
||||||
|
Include31=sw.h
|
||||||
|
Include32=self_flash.h
|
||||||
|
Include33=pool.h
|
||||||
|
Include34=pedo_lpf_coeff.h
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user