電源off中にも電池温度を測定するための変更(未完)

CODECとの通信、仕様を誤って実装していた
コード整理
タスクシステム(?)の修正 タスク実行し忘れることがあった
tasks.cを分けた
デバッガがリセットをかけたのか、PMICが異常検知でリセットがアサートされたのか判定するようにした
電池の認証削除
割り込みフラグクリアの仕様を変更


git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@20 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
fujita_ryohei 2009-11-06 09:37:08 +00:00
parent b23f299217
commit ee79a61677
28 changed files with 961 additions and 569 deletions

View File

@ -34,21 +34,21 @@ void tsk_adc( )
static u8 sndvol_codec;
static u8 bt_temp_old;
if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) )
if( task_interval != 0 )
{
if( adc_updated )
task_interval -= 1;
return;
}
else
{
task_interval = ( INTERVAL_TSK_ADC / SYS_INTERVAL_TICK );
}
if( adc_updated )
{
if( system_status.pwr_state == ON )
{
if( task_interval != 0 )
{
task_interval -= 1;
return;
}
else
{
task_interval = ( INTERVAL_TSK_ADC / SYS_INTERVAL_TICK );
}
#if 0
tune
// tune
@ -63,7 +63,7 @@ void tsk_adc( )
}
#endif
// Volume
// Volume //
{
static u8 vol_old;
static u8 class_old;
@ -83,22 +83,43 @@ void tsk_adc( )
}
}
// デバイスに伝える
if( sndvol_codec != vreg_ctr[VREG_C_SND_VOL] )
{
sndvol_codec = vreg_ctr[VREG_C_SND_VOL];
// DCPにも伝えておく
iic_mcu_write_a_byte( IIC_SLA_DCP, 0,
sndvol_codec / 2 + sndvol_codec / 4 ); // 簡易スケーリング todo
// codecに伝える
iic_mcu_write_a_byte( IIC_SLA_CODEC, REG_ADRS_CODEC_VOL,
127 - ( sndvol_codec / 2 + sndvol_codec / 4 )/2 );
}
}
// デバイスに伝える
if( sndvol_codec != vreg_ctr[VREG_C_SND_VOL] )
// TUNE_LED //
{
sndvol_codec = vreg_ctr[VREG_C_SND_VOL];
// DCPにも伝えておく
iic_mcu_write_a_byte( IIC_SLA_DCP, 0,
sndvol_codec / 2 + sndvol_codec / 4 ); // 簡易スケーリング todo
// codecに伝える
iic_mcu_write_a_byte( IIC_SLA_CODEC, REG_ADRS_CODEC_VOL,
127 - ( sndvol_codec / 2 + sndvol_codec / 4 )/2 );
// ここで?仕様? 
switch ( vreg_ctr[VREG_C_LED_TUNE] )
{
case ( 1 ): // 点灯
LED_duty_TUNE = vreg_ctr[VREG_C_LED_BRIGHT];
break;
case ( 2 ): //
LED_duty_TUNE = LED_BRIGHT_MAX - vreg_ctr[VREG_C_TUNE];
break;
default: // 消灯
LED_duty_TUNE = 0;
break;
}
}
adc_updated = 0;
}
ADCEN = 1;
ADM = 0b00011011; // セレクトモード、章圧、fCLK/6 ///ここから
@ -110,22 +131,6 @@ void tsk_adc( )
ADIF = 0;
ADMK = 0;
// TUNE_LED ここかよ!
switch ( vreg_ctr[VREG_C_LED_TUNE] )
{
case ( 1 ): // 点灯
LED_duty_TUNE = vreg_ctr[VREG_C_LED_BRIGHT];
break;
case ( 2 ): //
LED_duty_TUNE = LED_BRIGHT_MAX - vreg_ctr[VREG_C_TUNE];
break;
default: // 消灯
LED_duty_TUNE = 0;
break;
}
}
}

View File

@ -11,11 +11,13 @@ enum pwr_state_
SLEEP_TRIG,
SLEEP,
// WAKE,
BT_CHARGE,
};
enum poweron_reason_
{
PWSW = 0,
NONE = 0,
PWSW,
RTC_ALARM,
};

View File

@ -5,13 +5,11 @@
======================================================== */
#include "incs.h"
// u16 tot;
#ifdef _MCU_BSR_
// #ifdef _MODEL_TS0_ || _MODEL_WM0_
// ワーキングモデルはI2Cが逆
// TEGは回路図でテレコ
#define ACKD ACKD1
#define ACKE ACKE1
#define COI COI1
@ -84,9 +82,8 @@ __interrupt void int_iic_ctr( )
rtc_unlock( );
// レジスタリードで、割り込みピンの設定
// if( ( reg_adrs - 1 ) == VREG_C_IRQ3 ){
// IRQ0_neg;
// レジスタリードで、割り込みピンをネゲート
// まだ読まれてない割り込みがあれば、再度アサート
if( !( ( vreg_ctr[VREG_C_IRQ0] == 0 )
&& ( vreg_ctr[VREG_C_IRQ1] == 0 )
&& ( vreg_ctr[VREG_C_IRQ2] == 0 ) && ( vreg_ctr[VREG_C_IRQ3] == 0 ) ) )
@ -100,7 +97,6 @@ __interrupt void int_iic_ctr( )
else
{
IRQ0_neg;
// }
}
return;
}
@ -184,100 +180,6 @@ __interrupt void int_iic_ctr( )
}
#if 0
// 一度通信が始まったら終わるまで戻らないバージョン
__interrupt void int_iic_ctr( )
{
static u8 state = 0;
static u8 reg_adrs;
// static u8 reg_adrs_internal;
static u8 trx_buf;
if( SPD )
{
return;
}
// 自局呼び出しに応答。
// 初期化など
WREL = 1; // ウェイト解除
while( !IICAIF )
{;
}
IICAIF = 0;
// レジスタアドレス受信
reg_adrs = IICA;
WREL = 1;
trx_buf = vreg_ctr_read( reg_adrs ); // データの準備をしておく
while( !IICAIF )
{;
}
IICAIF = 0;
if( STD )
{ // リスタートコンディション
// リードされる
if( COI )
{
state = IIC_TX;
}
else
{
// リスタートで違うデバイスが呼ばれた!
WREL = 1; // ウェイト解除?
state = IIC_IDLE; // 終了処理
SPIE = 0;
return;
}
}
else
{ // ライト続行
state = IIC_RX;
}
if( state == IIC_TX )
{
// 送信 //
do
{
IICA = trx_buf;
vreg_ctr_after_read( reg_adrs ); // 読んだらクリアなどの処理
reg_adrs += 1;
trx_buf = vreg_ctr_read( reg_adrs );
while( !IICAIF )
{;
}
IICAIF = 0;
}
while( ACKD );
LREL = 1;
}
else
{
// 受信 //
SPIE = 1;
do
{
trx_buf = IICA;
vreg_ctr_write( reg_adrs, trx_buf );
reg_adrs += 1;
WREL = 1;
while( !IICAIF )
{;
}
IICAIF = 0;
}
while( !SPD );
SPIE = 0;
}
state = IIC_IDLE;
}
#endif
// ========================================================

View File

@ -272,7 +272,7 @@ err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat )
DMA1を使用します
******************************************************************************/
err iic_mcu_write( u8 slave, u8 adrs, u8 len, u8 * src )
err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src )
{
//*
// 使用中なら待つ

View File

@ -21,7 +21,7 @@ extern u8 iic_mcu_bus_status;
err iic_mcu_read( u8 SLA, u8 adrs, u8 len, u8 * dest );
u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs );
err iic_mcu_write( u8 SLA, u8 adrs, u8 len, u8 * src );
err iic_mcu_write( u8 SLA, u8 adrs, u8 len, void * src );
err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat );
// ↓その通信が完了したら解除されます。

View File

@ -18,6 +18,8 @@ typedef unsigned char err;
} \
}
// 割り込みマスクが必要と言うことでこんな事をする羽目になりました
#if 0
// マスクされてたら、フラグは立てるが、割り込みは入れない。
#define set_irq( irqreg, bitpos ) \

View File

@ -162,7 +162,7 @@ static void led_pow_normal( )
{
static u8 state;
if( vreg_ctr[VREG_C_BT_REMAIN] < ( 255 * 0.05 ) )
if( vreg_ctr[VREG_C_BT_REMAIN] < 3 )
{
// 赤点滅
state++;
@ -178,7 +178,7 @@ static void led_pow_normal( )
return;
}
else if( vreg_ctr[VREG_C_BT_REMAIN] < ( 255 * 0.2 ) )
else if( vreg_ctr[VREG_C_BT_REMAIN] < 12 )
{
// 赤点灯
if( LED_duty_pow_H != 0x0000 )
@ -260,7 +260,7 @@ static void led_pow_hotaru( )
case ( 0 ):
case ( 2 ):
case ( 4 ):
if( vreg_ctr[VREG_C_BT_REMAIN] < ( 255 * 0.2 ) )
if( vreg_ctr[VREG_C_BT_REMAIN] < 12 )
{
// 赤いとき
blue_to = 0;
@ -275,7 +275,7 @@ static void led_pow_hotaru( )
default:
// フェードアウト
if( vreg_ctr[VREG_C_BT_REMAIN] < ( 255 * 0.2 ) )
if( vreg_ctr[VREG_C_BT_REMAIN] < 12 )
{
red_to = 2;
}

View File

@ -52,7 +52,6 @@ static fsl_u08 fsl_MK2H_bak_u08; /* }
#define MGC_HEAD 0x2100
#define MGC_FOOT 0x47F6
u8 temp;
// ========================================================
@ -63,7 +62,7 @@ void power_save( );
static void hdwinit2( );
extern void main_loop( );
extern void chk_bootCluster( );
// ========================================================
@ -79,6 +78,9 @@ void main( )
// 旧版対応 強制リセット
WDTE = 0x00;
/*
{
u8 temp;
#asm
mov A,PSW
and A,#06h
@ -103,6 +105,7 @@ void main( )
DBG_LED_WIFI_2_off;
}
}
}
*/
}
else
@ -117,7 +120,7 @@ void main( )
{
pwup_delay1 += 1;
}
while( pwup_delay1 != 0 ); // u16にするとコンパイラが怒るため…。
while( pwup_delay1 != 0 ); // u16にするとコンパイラが怒るんだが…。
}
while( pwup_delay0 != 0 );
@ -150,8 +153,6 @@ void main( )
}
}
// chk_bootCluster( );
// 通常運転
main_loop( );
}
@ -159,16 +160,6 @@ void main( )
/* ========================================================
======================================================== */
void power_save( )
{
HALT( );
}
/* ========================================================
======================================================== */

View File

@ -14,18 +14,15 @@
#include "accero.h"
#include "led.h"
// ========================================================
static void read_dipsw( );
extern void power_save( );
// ========================================================
system_status_ system_status;
extern u8 boot_ura;
/* ========================================================
loader.c
@ -72,6 +69,7 @@ void main_loop( void )
EI( );
RTCIMK = 0; /* 割り込み(アラーム&インターバル)許可 */
// メインループ //
while( 1 )
@ -84,7 +82,7 @@ void main_loop( void )
renge_task_interval_run( );
}
renge_task_immed_run( ); // ここのループが廻る度に実行されます
power_save( );
HALT( );
}
}

View File

@ -14,7 +14,8 @@
// ========================================================
// -1.45 ,-3.9}
// ========================================================
@ -44,24 +45,6 @@ u8 rcomp;
float temp_co_up;
float temp_co_dn;
#define _TEG_
/* ========================================================
 
 (ERR)ERR_SUCCESS
======================================================== */
err PM_bt_auth( )
{
/*
todo
Dallas-1wire
SHA-1
*/
return ( ERR_SUCCESS );
}
/******************************************************//**
@ -87,38 +70,36 @@ void PM_init( )
}chars;
}dat_16;
#if 1
wait_ms( 200 );
wait_ms( 150 );
#if 0
// -1. なんかおかしい… リセットをかけてみる
dat_16._u16 = swap_endian_16( 0x5400 ); // reset
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_COMMAND, 2, &dat_16.chars.lsb );
#endif
wait_ms( 200 );
// 0. バッテリ残量IC クイックスタート
dat_16._u16 = swap_endian_16( 0x4000 ); // quick start
if( iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_MODE, 2, &dat_16.chars.lsb ) != ERR_SUCCESS )
{
vreg_ctr[ VREG_C_STATUS_X ] |= 0x01;
vreg_ctr[ VREG_C_STATUS_1 ] |= 0x01;
}
else
{
// 1. ロック解除
dat_16._u16 = swap_endian_16( 0x4057 ); // unlock key
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16.chars.lsb );
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16._u16 );
// 2. 初期パラメータを一時保存
iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam );
// 3. 一時的にOCVを変更
dat_16._u16 = swap_endian_16( 0xD4C0 ); // マジックナンバー的なもの。メーカー指定
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_OCV, 2, &dat_16.chars.lsb );
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_OCV, 2, &dat_16._u16 );
// 4. 一時的にRCOMPを変更
dat_16._u16 = swap_endian_16( 0xFF00 );
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &dat_16.chars.lsb );
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &dat_16._u16 );
// 電池メーカーの識別
BT_DET_P = 1;
@ -143,7 +124,7 @@ void PM_init( )
// 7. OCVに「とある値」を書く
dat_16._u16 = swap_endian_16( 0xD4C0 );
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_OCV, 2, &dat_16.chars.lsb );
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_OCV, 2, &dat_16._u16 );
// 8. 150600ms待つ。600msは厳守
wait_ms( 200 );
@ -162,7 +143,7 @@ void PM_init( )
// 11. ロック
dat_16._u16 = swap_endian_16( 0x0000 ); // lock key
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16.chars.lsb );
iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16._u16 );
// おしまい //
}
@ -191,7 +172,7 @@ void PM_init( )
======================================================== */
task_status_immed PM_bt_temp_update( )
{
s8 newrcomp;
s16 newrcomp;
static s8 temp_old;
static u8 count = 0; // たまにしか書きに行かない
static s16 temperature;
@ -472,13 +453,14 @@ err PM_sys_pow_on( )
// 残量チェック
vreg_ctr[VREG_C_BT_REMAIN] = PM_get_batt_left( );
vreg_ctr[VREG_C_BT_REMAIN] = 200;
vreg_ctr[VREG_C_BT_REMAIN] = 99;
if( vreg_ctr[VREG_C_BT_REMAIN] < 0 )
{
return ( 1 );
}
// 電源順次立ち上げ
PM_reset_ast( );
RESET2_ast;
FCRAM_RST_ast;
@ -511,7 +493,8 @@ err PM_sys_pow_on( )
u8 temp;
// 電源投入
RESETs_ast;
RESET1_ast;
RESET2_ast;
FCRAM_RST_ast;
PM_TEG_PWSW = 1;
@ -535,7 +518,8 @@ err PM_sys_pow_on( )
if( !RESET1_n )
{
// 起動失敗
RESETs_ast;
RESET1_ast;
RESET2_ast;
FCRAM_RST_ast;
return ( ERR_ERR );
}
@ -567,8 +551,8 @@ err PM_sys_pow_off( )
if( RESET1_n )
{
RESETs_ast;
RESET1_ast;
RESET2_ast;
FCRAM_RST_ast;
PM_TEG_PWSW = 1;
wait_ms( 250 );
@ -576,7 +560,8 @@ err PM_sys_pow_off( )
wait_ms( 250 );
PM_TEG_PWSW = 0;
}
RESETs_ast;
RESET1_ast;
RESET2_ast;
FCRAM_RST_ast;
#endif
@ -619,7 +604,7 @@ void tsk_batt( )
}
// 電源周りのステータスが変化? ///
set_bit( PM_EXTDC, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY );
set_bit( !PM_EXTDC_n, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY );
set_bit( !BT_CHG_n, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE );
// →割り込み。miscの中でよろしくやってくれている。
@ -644,17 +629,17 @@ void tsk_batt( )
&& ( ( 345 / 4 ) < vreg_ctr[VREG_C_BT_TEMP] )
&& ( vreg_ctr[VREG_C_BT_TEMP] < ( 739 / 4 ) ) ) )
{
BT_CHG_EN = 1;
BT_CHG_EN_n = 0; // 温度範囲OKで充電再開
}
else
{
BT_CHG_EN = 0;
BT_CHG_EN_n = 1; // 温度危険! 充電停止
}
// 充電LED
LED_duty_CHARGE = !BT_CHG_n ? vreg_ctr[VREG_C_LED_BRIGHT] : 0;
if(( vreg_ctr[ VREG_C_STATUS_X ] & 0x01 ) == 0 )
if(( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_GASGAUGE_ERR ) == 0 )
{
// 電池残量の取得
{
@ -667,7 +652,7 @@ void tsk_batt( )
}
else
{
vreg_ctr[ VREG_C_BT_REMAIN ] = 0xFF;
vreg_ctr[ VREG_C_BT_REMAIN ] = 99;
}
vreg_ctr[ VREG_C_FREE0 ] = vreg_ctr[ VREG_C_BT_REMAIN ];
vreg_ctr[ VREG_C_FREE1 ] = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL );
@ -718,11 +703,11 @@ extern u8 temp_debug_3;
task_status_immed ntr_pmic_comm( )
{
#ifdef _CODEC_CTR_
static u8 reg_shadow[2];
static u8 reg_shadow;
u8 reg1_old;
reg1_old = reg_shadow[1];
if( iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 2, reg_shadow ) != ERR_SUCCESS )
reg1_old = reg_shadow;
if( iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, &reg_shadow ) != ERR_SUCCESS )
{
return ( ERR_FINISED );
}
@ -730,7 +715,7 @@ task_status_immed ntr_pmic_comm( )
DI( );
// offリクエスト
if( ( reg_shadow[0] & REG_BIT_TWL_REQ_OFF_REQ ) != 0 )
if( ( reg_shadow & REG_BIT_TWL_REQ_OFF_REQ ) != 0 )
{
set_irq( VREG_C_IRQ3, REG_BIT_TWL_OFF_REQ );
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_OFF_REQ;
@ -741,7 +726,7 @@ task_status_immed ntr_pmic_comm( )
}
// リセットリクエスト
if( ( reg_shadow[0] & REG_BIT_TWL_REQ_RST_REQ ) != 0 )
if( ( reg_shadow & REG_BIT_TWL_REQ_RST_REQ ) != 0 )
{
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_RESET_REQ;
if( ( vreg_ctr[VREG_C_IRQ_MASK3] & REG_BIT_TWL_RESET_REQ ) == 0 )
@ -751,9 +736,9 @@ task_status_immed ntr_pmic_comm( )
}
// バックライトが...
if( ( ( reg1_old ^ reg_shadow[1] ) & REG_BIT_TWL_REQ_BL ) != 0 ) // バックライトの2ビットが何らか変化して、
if( ( ( reg1_old ^ reg_shadow ) & REG_BIT_TWL_REQ_BL ) != 0 ) // バックライトの2ビットが何らか変化して、
{
if( ( reg_shadow[1] & REG_BIT_TWL_REQ_BL ) == 0x00 ) // 00になった
if( ( reg_shadow & REG_BIT_TWL_REQ_BL ) == 0x00 ) // 00になった
{
// 両方消された
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_BL_OFF;
@ -762,7 +747,7 @@ task_status_immed ntr_pmic_comm( )
IRQ0_ast;
}
}
else if( ( reg_shadow[1] & REG_BIT_TWL_REQ_BL ) == REG_BIT_TWL_REQ_BL )
else if( ( reg_shadow & REG_BIT_TWL_REQ_BL ) == REG_BIT_TWL_REQ_BL )
{
// 両方ついた
vreg_ctr[VREG_C_IRQ3] |= REG_BIT_TWL_BL_ON;
@ -773,8 +758,8 @@ task_status_immed ntr_pmic_comm( )
}
}
EI( );
reg_shadow[0] &= ~( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ );
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_PM, reg_shadow[0] );
reg_shadow &= ~( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ );
iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_PM, reg_shadow );
#endif
return ( ERR_FINISED );
}

View File

@ -114,6 +114,7 @@ task_status_immed tski_PM_LCD_off( );
#ifdef _model_CTR_
#define PM_VDD_ecoMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x47 ))
#define PM_VDD_normMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x00 ))
// todo コア電圧を下げる
#else
#define PM_VDD_ecoMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x00 | 0x40 ))
#define PM_VDD_normMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, 0x00 | 0x03 ))
@ -140,7 +141,6 @@ task_status_immed tski_PM_LCD_off( );
#define PM_VDDLCD_off() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD, 0 ) )
#define PM_set_BL( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, dat ) )
#define PM_set_pow_save( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, dat ) )
#define PM_set_adc1( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC1, dat ) )
#define PM_set_adc2( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC2, dat ) )

View File

@ -149,7 +149,7 @@ static u8 lock = 0;
for( temp = 0; temp < task_immed_index; temp += 1 ){
if( tasks_immed[ temp ] == new_task ){
// while(1){
NOP(); // アサートで止めたいのですが。
NOP(); // アサートで止めたい
// }
lock = 0;
EI();
@ -263,6 +263,7 @@ err renge_task_immed_run(){
if( tasks_immed[ task_id ]() == ERR_FINISED ){
DI();
renge_task_immed_del( task_id );
task_id -= 1; // ↑でリストを前詰めするので帳尻あわせが必要 todo
EI();
}
}
@ -315,7 +316,7 @@ err renge_task_immed_run(){
/******************************************************************************
ms
NOPを回すだけCPUを占有します
NOPを回すだけCPUを **
*****************************************************************************/

View File

@ -34,9 +34,9 @@ void RTC_init( void )
SEC = 0;
MIN = 0;
HOUR = 15;
DAY = ((1<<4) + 7);
DAY = 1;
WEEK = 0;
MONTH = 10;
MONTH = 11;
YEAR = 9;
ALARMWW = 0x7F;
@ -75,6 +75,7 @@ __interrupt void int_rtc_int( )
}
/* ========================================================
RTC
2^6/fXT1.953125 ms

View File

@ -75,10 +75,6 @@ err firm_restore( );
#define N_MGC_T 0x47F6
// ========================================================
u8 boot_ura; // ブートクラスタ 0/1
/* ========================================================
======================================================== */
@ -343,21 +339,6 @@ err firm_restore( )
}
void chk_bootCluster( )
{
u8 data_buffer[SELF_UPDATE_BUFF_SIZE];
u8 err;
DI( );
FSL_Open( ); // 割り込み禁止など
err = FSL_Init( data_buffer ); // ライブラリ初期化。割り込み中断考慮せず
err |= FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず
err |= FSL_GetActiveBootCluster( &boot_ura );
FSL_Close( );
}
// ========================================================

153
trunk/sw.c Normal file
View File

@ -0,0 +1,153 @@
#pragma SFR
#pragma NOP
#pragma HALT
#pragma STOP
#include "incs.h"
#include "i2c_twl.h"
#include "i2c_ctr.h"
#include "led.h"
#include "accero.h"
#include "pm.h"
#include "rtc.h"
//=========================================================
#define INTERVAL_TSK_SW 16
#define CLICK_THRESHOLD 3
#define HOLD_THREASHOLD ( 800 / INTERVAL_TSK_SW )
//=========================================================
u8 SW_pow_count, SW_home_count, SW_wifi_count;
bit SW_pow_mask, SW_home_mask, SW_wifi_mask;
//=========================================================
// 押した時間を数える。押しっぱなしでも0に戻らない
// maskが非0の時は、一度離すまで無視する
#define count_sw_n( sw, counter, mask ) \
{ \
if( sw ){ \
mask = 0; \
counter = 0; \
}else{ \
if( mask != 0 ){ \
counter = 0; \
}else{ \
counter += 1; \
if( counter == 0 ) counter = 255; \
} \
} \
}
/* ========================================================
 
======================================================== */
void tsk_sw( )
{
static u8 cnt_force_off = 0;
static u8 task_interval = 0;
if( task_interval != 0 )
{
task_interval -= 1;
return;
}
else
{
task_interval = ( INTERVAL_TSK_SW / SYS_INTERVAL_TICK );
}
switch ( system_status.pwr_state )
{
case ( OFF_TRIG ):
SW_pow_count = 0;
SW_wifi_count = 0;
SW_home_count = 0;
cnt_force_off = 0;
break;
case ( ON ):
case ( SLEEP ):
case ( BT_CHARGE ):
// 電源スイッチの監視 //
if( SW_POW_n )
{
if( ( CLICK_THRESHOLD < SW_pow_count ) && ( SW_pow_count < HOLD_THREASHOLD ) )
{
set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK );
}
}
else if( SW_pow_count == HOLD_THREASHOLD )
{
set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_HOLD );
}
else if( SW_pow_count == ( HOLD_THREASHOLD * 4 ) )
{ // todo
// vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ONLY_RED;
system_status.pwr_state = OFF_TRIG;
renge_task_interval_run_force = 1;
}
// 電源OFF割り込みを入れたが…
if( ( vreg_ctr[VREG_C_IRQ0] & REG_BIT_SW_POW_HOLD ) != 0 )
{
cnt_force_off += 1;
if( cnt_force_off >= 13 )
{ // …返事がない。強制的に切る。
vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_OFF;
if( ( LED_duty_pow_H == 0 ) && ( LED_duty_pow_L == 0 ) )
{
system_status.pwr_state = OFF_TRIG;
renge_task_interval_run_force = 1;
}
}
}
else
{
cnt_force_off = 0;
}
// HOME スイッチ //
if( SW_HOME_n )
{
if( ( CLICK_THRESHOLD < SW_home_count ) && ( SW_home_count < HOLD_THREASHOLD ) )
{
set_irq( VREG_C_IRQ0, REG_BIT_SW_HOME_CLICK );
}
}
else if( SW_home_count == HOLD_THREASHOLD )
{
set_irq( VREG_C_IRQ0, REG_BIT_SW_HOME_HOLD );
}
// wifi sw //
if( SW_wifi_count == 10 )
{
set_irq( VREG_C_IRQ0, REG_BIT_SW_WIFI_CLICK );
}
break;
}
// ボタン押し時間のカウント
if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == OFF ) )
{
count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask );
#ifdef _SW_HOME_ENABLE_
count_sw_n( SW_HOME_n, SW_home_count, SW_home_mask );
#endif
count_sw_n( SW_WIFI_n, SW_wifi_count, SW_wifi_mask );
}
return;
}

7
trunk/sw.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef _sw_
#define _sw_
extern u8 SW_pow_count, SW_home_count, SW_wifi_count;
extern bit SW_pow_mask, SW_home_mask, SW_wifi_mask;
#endif

114
trunk/task_debug.c Normal file
View File

@ -0,0 +1,114 @@
#pragma SFR
#pragma NOP
#pragma HALT
#pragma STOP
#include "incs.h"
#include "renge.h"
#include "pm.h"
/* ========================================================
======================================================== */
void tsk_debug( )
{
u8 temp;
static u8 count = 0;
static u8 task_interval;
if( system_status.pwr_state == ON_TRIG ){
iic_mcu_write_a_byte( IIC_SLA_DCP, 0x08, 0x80 ); // ACR←0x80 揮発モードへ
if( !SW_SEL_n ){
renge_task_immed_add( tski_PM_LCD_on );
renge_task_immed_add( tski_PM_BL_on );
}
// vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x03;
// renge_task_immed_add( acc_hosu_set );
}
/*
temp = iic_mcu_read_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO );
count += 1;
iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, count );
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, count );
*/
return;
}
u8 temp_debug_3;
void tsk_debug2( )
{
u8 str[4];
if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) )
{
/*
str[3] = vreg_ctr[ VREG_C_FREE0 ];
str[2] = vreg_ctr[ VREG_C_FREE1 ];
str[1] = vreg_ctr[ VREG_C_STATUS ];
str[0] = vreg_ctr[ VREG_C_RTC_SEC ];
*/
str[3] = vreg_ctr[ VREG_C_IRQ1 ];
str[2] = vreg_ctr[ VREG_C_IRQ2 ];
str[1] = vreg_ctr[ VREG_C_IRQ3 ];
// str[0] = vreg_ctr[ VREG_C_STATUS ];
str[0] = temp_debug_3;
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_IRQ1 ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, boot_ura );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_SND_VOL ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_TUNE ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_TUNE ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_SND_VOL ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
iic_mcu_write( IIC_SLA_DBG_MONITOR, 0, 4, &str[0] );
}
return;
}
#if 0
/* ========================================================
======================================================== */
task_interval tsk_hina( )
{
switch ( system_status.pwr_state )
{
case OFF:
case ON_TRIG:
case ON:
case SLEEP_TRIG:
case SLEEP:
case OFF_TRIG:
default:
}
return ( X e tick ); // 毎 tic 呼ばれることになります
}
// ポインタで何かもらうのは危険な気がしてきた
/* このように使う
renge_task_immed_add( );
*/
task_status_immed tsk_imm_hina( u8 * arg )
{
return ( ERR_FINISED );
// ERR_FINISED タスクを削除
// ERR_CONTINUE 次になんか割り込みなり、ユーザー操作なり、システムチックが
// 来たときに再度実行
}
#endif

View File

@ -9,8 +9,6 @@
#include "accero.h"
extern u8 boot_ura;
#define INTERVAL_TSK_MISC_STAT 4
@ -116,24 +114,27 @@ void tsk_misc_stat( )
}
//#ifdef _MCU_KE3_
// KE3では必須です。
/* ========================================================
BSRマイコンはaccero.cで割り込みルーチンからタスク登録します
======================================================== */
// 割り込みの取りこぼし?
if( ( vreg_ctr[VREG_C_ACC_CONFIG] & 0x03 ) != 0x00 )
{
if( ACC_VALID )
{
// renge_task_immed_add( tsk_cbk_accero );
renge_task_immed_add( tsk_cbk_accero );
NOP();
}
}
//#endif
// 割り込みの取りこぼし?
if( !PM_IRQ_n ){
// renge_task_immed_add( ntr_pmic_comm );
renge_task_immed_add( ntr_pmic_comm );
NOP();
}
}
@ -143,109 +144,6 @@ void tsk_misc_stat( )
/* ========================================================
======================================================== */
void tsk_debug( )
{
u8 temp;
static u8 count = 0;
static u8 task_interval;
if( system_status.pwr_state == ON_TRIG ){
if( !SW_SEL_n ){
renge_task_immed_add( tski_PM_LCD_on );
wait_ms( 50 );
renge_task_immed_add( tski_PM_BL_on );
}
// vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x03;
// renge_task_immed_add( acc_hosu_set );
}
/*
temp = iic_mcu_read_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO );
count += 1;
iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, count );
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, count );
*/
return;
}
u8 temp_debug_3;
void tsk_debug2( )
{
u8 str[4];
if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) )
{
/*
str[3] = vreg_ctr[ VREG_C_FREE0 ];
str[2] = vreg_ctr[ VREG_C_FREE1 ];
str[1] = vreg_ctr[ VREG_C_STATUS ];
str[0] = vreg_ctr[ VREG_C_RTC_SEC ];
*/
str[3] = vreg_ctr[ VREG_C_IRQ1 ];
str[2] = vreg_ctr[ VREG_C_IRQ2 ];
str[1] = vreg_ctr[ VREG_C_IRQ3 ];
// str[0] = vreg_ctr[ VREG_C_STATUS ];
str[0] = temp_debug_3;
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_IRQ1 ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, boot_ura );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_SND_VOL ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_TUNE ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_TUNE ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_SND_VOL ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
iic_mcu_write( IIC_SLA_DBG_MONITOR, 0, 4, &str[0] );
}
return;
}
#if 0
/* ========================================================
======================================================== */
task_interval tsk_hina( )
{
switch ( system_status.pwr_state )
{
case OFF:
case ON_TRIG:
case ON:
case SLEEP_TRIG:
case SLEEP:
case OFF_TRIG:
default:
}
return ( X e tick ); // 毎 tic 呼ばれることになります
}
// ポインタで何かもらうのは危険な気がしてきた
/* このように使う
renge_task_immed_add( );
*/
task_status_immed tsk_imm_hina( u8 * arg )
{
return ( ERR_FINISED );
// ERR_FINISED タスクを削除
// ERR_CONTINUE 次になんか割り込みなり、ユーザー操作なり、システムチックが
// 来たときに再度実行
}
#endif
/* ========================================================
@ -267,12 +165,8 @@ task_status_immed do_command0( )
{
if( vreg_ctr[VREG_C_COMMAND0] & REG_BIT_RESET1_REQ )
{
#ifdef _PMIC_TWL_
RESETs_ast;
#else
PM_reset_ast( );
RESET2_ast;
#endif
FCRAM_RST_ast;
wait_ms( 5 );
}
@ -286,12 +180,8 @@ task_status_immed do_command0( )
FCRAM_RST_ast;
wait_ms( 5 );
}
#ifdef _PMIC_TWL_
RESETs_neg;
#else
PM_reset_neg( );
RESET2_neg;
#endif
FCRAM_RST_neg;
}
@ -328,23 +218,3 @@ task_status_immed do_command0( )
/* ========================================================
CPUからのスリープ要求
 
======================================================== */
/*
__interrupt void intp0_slp( )
{ // SLP
if( SLP_REQ ){
system_status.pwr_state = SLEEP_TRIG;
}else{
system_status.pwr_state = ON_TRIG;
if( PM_BL_on() == 0 ){
renge_task_interval_run_force = 1;
iic_mcu_stop();
system_status.pwr_state = OFF_TRIG;
}
}
renge_task_interval_run_force = 1;
}
*/

322
trunk/task_sys.c Normal file
View File

@ -0,0 +1,322 @@
#pragma SFR
#pragma NOP
#pragma HALT
#pragma STOP
#include "incs.h"
#include "i2c_twl.h"
#include "i2c_ctr.h"
#include "led.h"
#include "accero.h"
#include "pm.h"
#include "rtc.h"
#include "sw.h"
//=========================================================
static void chk_emergencyExit();
//=========================================================
/* ========================================================
 system_status.pwr_state == OFF_TRIG
======================================================== */
void tsk_sys( )
{
static u8 timeout = 0;
switch ( system_status.pwr_state )
{
case OFF: //-------------------------------------------------------
// スイッチ操作などで割り込みが発生し、スリープが解除されるとここに来ます。
switch ( system_status.poweron_reason )
{
default:
// スイッチで電源on
if( ( SW_pow_count != 0 ) || ( SW_wifi_count != 0 ) )
{
timeout = 0;
}
else
{
timeout += 1;
}
if( timeout > 127 )
{
system_status.pwr_state = OFF_TRIG; // スイッチはノイズだった。寝る。
renge_task_interval_run_force = 1;
return;
}
if( ( SW_pow_count < 3 ) && ( SW_wifi_count < 3 ) )
{
// もう少しスイッチの様子を見る
return;
}
// 電源投入
system_status.poweron_reason = PWSW;
break;
case ( RTC_ALARM ):
break;
}
timeout = 0;
// 電源投入
SW_pow_mask = 1;
SW_home_mask = 1;
SW_wifi_mask = 1;
// 電源投入 //
iic_mcu_start( );
// ↓で電池残量ICの起動待ちウェイトなどがあります。
PM_init( ); // 電池残量ICの設定
if( PM_sys_pow_on( ) != ERR_SUCCESS )
{ // 電源起動不可エラー
renge_task_interval_run_force = 1;
iic_mcu_stop( );
system_status.pwr_state = OFF;
return;
}
PM_LCD_vcom_set( ); // LCDの対向電圧値など書き込み
#ifdef _PMIC_TWL_
PM_TEG_LCD_dis( 0 );
#endif
if( system_status.poweron_reason == PWSW )
{
// 電源ボタンでのonの時は、LEDを点灯させる
vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO;
}
else
{
// とりあえず、LED消灯状態で起動させる
vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_OFF;
// todo?
}
// ここまで来ると、電源投入確定
LED_init( );
PU7 = 0b00011101; // 4:SW_WIFI 3:SW_PWSW 2:PM_IRQ 0:PM_EXTDC_n
IIC_ctr_Init( ); // とりあえずはここで初期化
IIC_twl_Init( );
RTC_32k_on( );
KRM = 0b00000000;
system_status.poweron_reason = NONE;
system_status.pwr_state = ON_TRIG;
renge_task_interval_run_force = 1;
break;
case ON_TRIG: //-------------------------------------------------------
MK0 = INT_MSK0_RSV; // 何とかする。ON_TRIGがいらない子の気がして
MK1 = INT_MSK1_RSV;
#ifdef _MCU_BSR_
// MK2 = ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ );
// PMK21 = 0; // wifi 使わない
PMK6 = 0; // pm_irq
#else
MK2L = ~INT_MSK2_WIFI_TX_KE3;
#endif
system_status.pwr_state = ON;
break;
case ON: //---------------------------------------------
// PMICによる強制電源断チェック
// デバッガがreset1をアサートすることもある。そのときは全部リセット
chk_emergencyExit();
// SLP監視
if( SLP_REQ ){
system_status.pwr_state = SLEEP_TRIG;
renge_task_interval_run_force = 1;
}
break;
case SLEEP_TRIG: //-------------------------------------
PM_VDD_ecoMode();
system_status.pwr_state = SLEEP;
break;
case SLEEP: //------------------------------------------
chk_emergencyExit();
// スリープから復帰
if( !SLP_REQ ){
PM_VDD_normMode();
wait_ms( 5 ); // tdly_sw
#ifdef _MODEL_CTR_
SLP_ACK = 1;
NOP(); // 適当ウェイト
NOP();
NOP();
NOP();
SLP_ACK = 0;
#endif
system_status.pwr_state = ON_TRIG;
renge_task_interval_run_force = 1;
}
break;
case OFF_TRIG: //---------------------------------------
LED_stop( );
IIC_ctr_Stop( );
IIC_twl_Stop( );
iic_mcu_stop( );
vreg_ctr[VREG_C_IRQ0] = 0;
vreg_ctr[VREG_C_IRQ1] = 0;
vreg_ctr[VREG_C_IRQ2] = 0;
vreg_ctr[VREG_C_IRQ3] = 0;
// 電源オン条件の割り込みセット
// PWSW KR3 押すとL
// BG24 KR4
// ふた開け INTP5 閉じるとL
// ACアダプタ INTP4 アダプタありでL
// RTC
#ifdef _PMIC_TWL_
PM_TEG_LCD_dis( 1 );
#endif
PM_sys_pow_off( );
// pullup_off(); ↓
{
PU5 = 0b00000011; // PM_CHG,PM_CHGERR
PU7 = 0b00011001; // SW_WiFi,PWSWI,PM_EXTTDC
}
KRM = ( KR_SW_POW ); // Mask ではなく、Modeなのだそうだ。紛らわしい
// intp20系は後ほど
MK0 = ~( INT_MSK0_EXTDC );
MK1 = ~( INT_MSK1_KR | INT_MSK1_RTCALARM | INT_MSK1_RTCINTVAL );
MK2L = 0b11111111;
IF0 = 0;
IF1 = 0;
IF2 = 0;
timeout = 0;
system_status.pwr_state = BT_CHARGE;
// no break //
case BT_CHARGE:
if( !PM_EXTDC_n )
{
// アダプタ有り:充電温度監視
BT_TEMP_P = 1;
// 電源on
if( ( SW_pow_count > 3 ) || ( SW_wifi_count > 3 )
|| ( system_status.poweron_reason == RTC_ALARM ) )
{
system_status.pwr_state = OFF; // 若干抵抗有るがこれでよい
renge_task_interval_run_force = 1;
KRMK = 1;
return;
}
return;
}
else
{
// 省電力へ移行
BT_TEMP_P = 0;
while( RWST )
{;
}
// 割り込み待ちで寝る //
RTCIMK = 1;
STOP( );
RTCIMK = 0;
// 起きる //
// 起きる条件は
// ・KeyReturn割り込み電源ボたん
// ・RTCアラーム
// ・アダプタ挿抜
system_status.pwr_state = OFF; // 若干抵抗有るがこれでよい
renge_task_interval_run_force = 1;
KRMK = 1;
return;
}
default:
while( 1 )
{
NOP( );
// あり得ないステート
}
}
}
/*******************************************************//**
PMICが電源異常で止めたか確認
**********************************************************/
static void chk_emergencyExit(){
if( !RESET1_n )
{
if( PM_chk_LDSW( ) == 0 )
{
// PMICが異常終了判断をした
system_status.pwr_state = OFF_TRIG;
renge_task_interval_run_force = 1;
}
else
{
// デバッガなりがリセットをかけた
vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ;
renge_task_immed_add( do_command0 );
}
}
}
/* ========================================================
CPUからのスリープ要求
 
======================================================== */
/*
__interrupt void intp0_slp( )
{ // SLP
if( SLP_REQ ){
system_status.pwr_state = SLEEP_TRIG;
}else{
system_status.pwr_state = ON_TRIG;
if( PM_BL_on() == 0 ){
renge_task_interval_run_force = 1;
iic_mcu_stop();
system_status.pwr_state = OFF_TRIG;
}
}
renge_task_interval_run_force = 1;
}
*/

View File

@ -74,8 +74,6 @@
#define RESET1_n ( P0.0 )
#define RESET1_ast { P0.0 = 0; PM0.0 = 0; }
#define RESET1_neg { PM0.0 = 1; }
#define RESETs_ast { P0 &= ~0x03; PM0 &= ~0x03; }
#define RESETs_neg { PM0.0 = 1; P0.1 = 1; }
#define RESET2_ast { P0.1 = 0; }
#define RESET2_neg { P0.1 = 1; }
@ -99,7 +97,7 @@
#define SND_DEPOP P7.7
// PM
#define PM_EXTDC P7.0
#define PM_EXTDC_n P7.0
// INTP7
//#define BT_TEMP P15.0
// ANI8
@ -107,19 +105,17 @@
// ANI9
#define BT_DET_P P1.6
#define BT_TEMP_P P1.7
// <20>[“d¹æ(out)
#ifndef _PMIC_CTR_
#define BT_CHG_EN P4.2
#define BT_CHG_EN_n P4.2
#else
#define BT_CHG_EN P4.3
#define BT_CHG_EN_n P4.3
#endif
#define BT_CHG_ERR_n P5.0
// <20>[“d†(in)
#define BT_CHG_n P5.1
#ifdef _PMIC_TWL_
#define PM_BT_AUTH P12.1
#else
#define PM_BT_AUTH P4.2
#endif
#define SW_WIFI_n P7.4
// KR4
@ -202,27 +198,27 @@
#define KR_SW_WIFI ( 1 << 4 )
#define INT_MSK0_IIC_M_DMA ( 0b0001000000000000 )
#define INT_MSK0_SHELL ( 0b0000000010000000 )
#define INT_MSK0_EXTDC ( 0b0000000001000000 )
//#define INT_MSK0_SLP ( 0b0000000000000100 )
//#define INT_MSK0_RSV ( 0b1110111100111011 )
#define INT_MSK0_RSV ( 0b1110111100111111 )
#define INT_MSK0_IIC_M_DMA 0b0001000000000000
#define INT_MSK0_SHELL 0b0000000010000000
#define INT_MSK0_EXTDC 0b0000000001000000
//#define INT_MSK0_SLP 0b0000000000000100 )
//#define INT_MSK0_RSV 0b1110111100111011 )
#define INT_MSK0_RSV 0b1110111100111111
#define INT_MSK1_KR ( 0b0000100000000000 )
#define INT_MSK1_RTCINTVAL ( 0b0000010000000000 )
#define INT_MSK1_RTCALARM ( 0b0000001000000000 )
#define INT_MSK1_ADC ( 0b0000000100000000 )
#define INT_MSK1_IIC_CTR ( 0b0000000000001000 )
#define INT_MSK1_IIC_MCU ( 0b0000000000000001 )
#define INT_MSK1_RSV ( 0b1111000011110110 )
#define INT_MSK1_KR 0b0000100000000000
#define INT_MSK1_RTCINTVAL 0b0000010000000000
#define INT_MSK1_RTCALARM 0b0000001000000000
#define INT_MSK1_ADC 0b0000000100000000
#define INT_MSK1_IIC_CTR 0b0000000000001000
#define INT_MSK1_IIC_MCU 0b0000000000000001
#define INT_MSK1_RSV 0b1111000011110110
#define INT_MSK2_WIFI_TX_KE3 ( 0b00010000 )
#define INT_MSK2L_RSV ( 0b11101111 )
#define INT_MSK2_WIFI_TX_KE3 0b00010000
#define INT_MSK2L_RSV 0b11101111
#define INT_MSK2_IIC_TWL ( 0b0000000100000000 )
#define INT_MSK2_WIFI_TX_BSR ( 0b0000010000000000 )
#define INT_MSK2_CODEC_PMIRQ ( 0b0000000000001000 )
#define INT_MSK2_RSV ( 0b1111101111110111 )
#define INT_MSK2_RSV 0b1111101111110111
#endif

View File

@ -220,10 +220,38 @@ void vreg_ctr_write( u8 adrs, u8 data )
// I2C仮想レジスタから読みます。
// 引数 adrs 外から見たときの、アドレス
// 戻り xx データ
//  存在しないアドレスにアクセスした場合、戻り値は0x5A
u8 vreg_ctr_read( u8 adrs )
{
if( ( VREG_C_RTC_SEC <= adrs ) && ( adrs <= VREG_C_RTC_YEAR ) )
u8 dat;
// 割り込みフラグはリードでクリア
if( adrs == VREG_C_IRQ0 )
{
dat = vreg_ctr[VREG_C_IRQ0];
vreg_ctr[VREG_C_IRQ0] = 0;
return dat;
}
else if( adrs == VREG_C_IRQ1 )
{
dat = vreg_ctr[VREG_C_IRQ1];
vreg_ctr[VREG_C_IRQ1] = 0;
return dat;
}
else if( adrs == VREG_C_IRQ2 )
{
dat = vreg_ctr[VREG_C_IRQ2];
vreg_ctr[VREG_C_IRQ2] = 0;
return dat;
}
else if( adrs == VREG_C_IRQ3 )
{
dat = vreg_ctr[VREG_C_IRQ3];
vreg_ctr[VREG_C_IRQ3] = 0;
return dat;
}
// RTCは読み出し途中に繰り上がるのを避けるため
else if( ( VREG_C_RTC_SEC <= adrs ) && ( adrs <= VREG_C_RTC_YEAR ) )
{
get_rtc( );
}
@ -236,13 +264,4 @@ u8 vreg_ctr_read( u8 adrs )
// I2C仮想レジスタから読まれて何かするレジスタ
void vreg_ctr_after_read( u8 adrs )
{
// リードがトリガで何かをする↓
// 割り込みビットのクリア
if( adrs == VREG_C_IRQ3 )
{
vreg_ctr[VREG_C_IRQ0] = vreg_ctr[VREG_C_IRQ1] =
vreg_ctr[VREG_C_IRQ2] = vreg_ctr[VREG_C_IRQ3] = 0;
}
return;
}

View File

@ -56,6 +56,9 @@
#define REG_BIT_POW_SUPPLY ( 1 << 3 )
#define REG_BIT_ST_SHELL_CLOSED ( 1 << 1 )
// VREG_C_STATUS_1
#define REG_BIT_GASGAUGE_ERR ( 1 << 0 )
// VREG_C_COMMAND0
#define REG_BIT_CMD_LCD_ON ( 1 << 7 )
@ -152,7 +155,7 @@ enum VREG_C
VREG_C_BT_REMAIN,
VREG_C_BT_TEMP,
VREG_C_STATUS_X = 0x0E,
VREG_C_STATUS_1 = 0x0E,
VREG_C_STATUS = 0x0F,
VREG_C_IRQ0 = 0x10,

View File

@ -78,13 +78,13 @@ enum REG_TWL_ADRS_INT
// REG_TWL_INT_ADRS_ADC_CALIB_VALUE,
// REG_TWL_INT_ADRS_POWER_LED,
REG_TWL_INT_ADRS_TEMP0, // 0x70 - 0x77
// REG_TWL_INT_ADRS_TEMP1,
// REG_TWL_INT_ADRS_TEMP2,
// REG_TWL_INT_ADRS_TEMP3,
// REG_TWL_INT_ADRS_TEMP4,
// REG_TWL_INT_ADRS_TEMP5,
// REG_TWL_INT_ADRS_TEMP6,
// REG_TWL_INT_ADRS_TEMP7,
REG_TWL_INT_ADRS_TEMP1,
REG_TWL_INT_ADRS_TEMP2,
REG_TWL_INT_ADRS_TEMP3,
REG_TWL_INT_ADRS_TEMP4,
REG_TWL_INT_ADRS_TEMP5,
REG_TWL_INT_ADRS_TEMP6,
REG_TWL_INT_ADRS_TEMP7,
// REG_TWL_INT_ADRS_TIME_PWSW_DELAY,
// REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD
_REG_TWL_INT_ADRS_ENDMARK,

View File

@ -1,19 +1,25 @@
C:\WINDOWS\system32\cmd.exe /c echo touch magic.c
touch magic.c
"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -qvjl1wt -sainter_asm -zp -no pm.c
pm.c(210) : CC78K0R warning W0745: Expected function prototype
pm.c(214) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(218) : CC78K0R warning W0401: Conversion may lose significant digits
pm.c(223) : CC78K0R warning W0510: Pointer mismatch in function 'iic_mcu_write'
pm.c(617) : CC78K0R warning W0401: Conversion may lose significant digits
Compilation complete, 0 error(s) and 5 warning(s) found.
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\pm.asm
"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 -qvjl1wt -sainter_asm -zp -no i2c_ctr.c
Compilation complete, 0 error(s) and 0 warning(s) found.
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\i2c_ctr.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 -kp -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 ini_VECT.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel tasks.rel adc.rel renge.rel tasks_sys.rel accero.rel self_flash.rel reboot.rel
"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -qvjl1wt -sainter_asm -zp -no vreg_ctr.c
vreg_ctr.c(59) : CC78K0R warning W0401: Conversion may lose significant digits
vreg_ctr.c(102) : CC78K0R warning W0401: Conversion may lose significant digits
vreg_ctr.c(103) : CC78K0R warning W0401: Conversion may lose significant digits
vreg_ctr.c(105) : CC78K0R warning W0401: Conversion may lose significant digits
vreg_ctr.c(107) : CC78K0R warning W0401: Conversion may lose significant digits
vreg_ctr.c(108) : CC78K0R warning W0401: Conversion may lose significant digits
vreg_ctr.c(110) : CC78K0R warning W0401: Conversion may lose significant digits
Compilation complete, 0 error(s) and 7 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\vreg_ctr.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 -kp -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 ini_VECT.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel reboot.rel sw.rel task_debug.rel task_misc.rel task_sys.rel
Link complete, 0 error(s) and 0 warning(s) found.
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\oc78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -nu -ki bsr.lmf
Object Conversion Complete, 0 error(s) and 0 warning(s) found.
C:\WINDOWS\system32\cmd.exe /c ruby C:\Cygwin\home\fujita_ryohei\ctr\nec_s_2_bsrbin.rb bsr.hex
C:/Cygwin/home/fujita_ryohei/ctr/nec_s_2_bsrbin.rb:2: warning: variable $KCODE is no longer effective; ignored
Build Total error(s) : 0 Total warning(s) : 5
Build Total error(s) : 0 Total warning(s) : 7

View File

@ -78,10 +78,10 @@ Symbol Type=OFF
Language=C
Kanji=SJIS
[Source]
Geometry=104, 38, 981, 857
Geometry=286, 184, 981, 857
Window=Normal
DispStart=264
CaretPos=265,0
DispStart=40
CaretPos=86,0
Mode=Normal
DispFile=
Address1=
@ -140,10 +140,10 @@ SaveStart=
SaveEnd=
Accumulative=ON
[Assemble]
Geometry=59, 244, 600, 738
Geometry=66, 131, 600, 738
Window=Normal
DispStart=14961
CaretPos=14961,27
DispStart=10043
CaretPos=10043,27
Address1=
Address2=
Address3=
@ -251,7 +251,7 @@ Destination=0
[I/O Port]
Line=0
[Stack]
Geometry=839, 787, 400, 300
Geometry=906, 793, 400, 300
Window=Normal
Boundary=13762687
Mode=Proper
@ -876,11 +876,11 @@ Register Bank=0
RP0=1
RP1=1
RP2=1
RP3=3
RP3=1
PC=1
SP=1
PSW=1
ES=3
ES=1
CS=1
[Event Manager]
Geometry=0, 0, 0, 0
@ -960,38 +960,52 @@ Count=0
Geometry=1138, 6, 440, 688
Window=Normal
Boundary=13762700
0=.hist_bt_temp,D,N,A,+,1
1=.ADCRH,P,S,A,+,1
2=.vreg_ctr,P,N,A,+,1
3=.vreg_ctr[11],D,N,A,+,1
4=.skip,P,N,A,+,1
5=.temperature,P,N,A,+,1
6=.raw_adc_temperature,P,N,A,+,1
7=.system_status.pwr_state,P,N,A,+,1
Line=8
0=.mk2h,P,S,A,+,1
1=.mk2l,P,S,A,+,1
2=.MK1,P,S,A,+,1
3=.MK2,P,S,A,+,1
4=.IICAMK1,P,S,A,+,1
5=.IICAIF1,P,S,A,+,1
6=.IICAMK0,P,S,A,+,1
7=.IICAIF0,P,S,A,+,1
8=.tasks,P,N,A,+,1
9=.RTCIIF,P,S,A,+,1
10=.RTCIMK,P,S,A,+,1
11=.task_id,P,N,A,+,1
12=.system_status.poweron_reason,P,N,A,+,1
13=.ADCRH,P,S,A,+,1
14=.hist_bt_temp,P,N,A,+,1
15=.raw_adc_temperature,P,N,A,+,1
16=.system_status.pwr_state,P,N,A,+,1
17=.vreg_ctr[11],D,N,A,+,1
18=.newrcomp,D,N,A,+,1
19=.temperature,P,N,A,+,1
20=.temp_co_up,P,N,A,+,1
21=.temp_co_dn,P,N,A,+,1
Line=22
[Quick Watch]
0=pm12,P,A,1
1=vreg_twl,P,A,1
2=PMK21,P,A,1
3=IFP21,P,A,1
4=PIF21,P,A,1
5=skip,P,A,1
6=vreg_ctr[11],P,A,1
7=ADCRH,P,A,1
8=hist_tune,P,A,1
9=hist_bt_temp,P,A,1
10=vreg_ctr,P,A,1
11=t1,P,A,1
12=t2,P,A,1
13=t3,P,A,1
14=raw_adc_temperature,P,A,1
15=temperature,P,A,1
0=PM7.3,P,A,1
1=IMMED_RSV_TASKS_NUM,P,A,1
2=task_id,P,A,1
3=tasks,P,A,1
4=RTCIMK,P,A,1
5=RTCIIF,P,A,1
6=IICA0IF,P,A,1
7=IICAIF0,P,A,1
8=IICAIF1,P,A,1
9=IICAMK1,P,A,1
10=IICAMK0,P,A,1
11=mk2,P,A,1
12=mk2l,P,A,1
13=mk2h,P,A,1
14=MK2,P,A,1
15=MK1,P,A,1
[Software Break]
Geometry=51, 459, 500, 200
Geometry=14, 896, 500, 200
Window=Normal
Width=150 30 200 100
Name0=Swb00001
Address0=pm.c#_PM_bt_temp_update+0x3d
Name0=Swb00002
Address0=i2c_ctr.c#_int_iic_ctr+0x17
Window0=ASM
Status0=ON
Count=1

View File

@ -514,61 +514,6 @@ 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=ini_VECT.c
Source10=led.c
Source11=rtc.c
Source12=vreg_ctr.c
Source13=vreg_twl.c
Source14=tasks.c
Source15=adc.c
Source16=renge\renge.c
Source17=tasks_sys.c
Source18=accero.c
Source19=self_flash.c
Source20=reboot.c
[IncFile]
Include1=incs_loader.h
Include2=jhl_defs.h
Include3=user_define.h
Include4=config.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=loader.h
Include11=i2c_mcu.h
Include12=WDT.h
Include13=fsl.h
Include14=fsl_user.h
Include15=i2c_ctr.h
Include16=pm.h
Include17=rtc.h
Include18=adc.h
Include19=led.h
Include20=incs.h
Include21=vreg_twl.h
Include22=accero.h
Include23=i2c_twl_defs.h
Include24=renge\renge_task_intval.h
Include25=i2c_twl.h
Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
Include27=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
Include28=reboot.h
[ToolSet]
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|V3.60
[Options.CC78K0R 0]
Version=210
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
@ -1035,3 +980,61 @@ VfiFileBoot0=
VfiFileBoot1=boot.vfi
VF78K0Rchk=0
VF78K0Rvs=
[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
[IncFile]
Include1=incs_loader.h
Include2=jhl_defs.h
Include3=user_define.h
Include4=config.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=loader.h
Include11=i2c_mcu.h
Include12=WDT.h
Include13=fsl.h
Include14=fsl_user.h
Include15=i2c_ctr.h
Include16=pm.h
Include17=rtc.h
Include18=adc.h
Include19=led.h
Include20=incs.h
Include21=vreg_twl.h
Include22=accero.h
Include23=i2c_twl_defs.h
Include24=renge\renge_task_intval.h
Include25=i2c_twl.h
Include26=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
Include27=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
Include28=reboot.h
Include29=sw.h
[ToolSet]
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|V3.60

View File

@ -15,17 +15,17 @@ OpenFile8=loader.c,0,255,224,1438,850,14,85,0,0
OpenFile9=main.c,0,124,87,1368,844,0,45,0,0
OpenFile10=vreg_ctr.c,0,345,273,1060,932,14,23,0,0
OpenFile11=reboot.c,0,110,110,1354,867,5,14,14,0
OpenFile12=config.h,0,374,323,1618,1080,15,18,22,0
OpenFile13=vreg_twl.c,0,314,110,1558,867,74,90,75,0
OpenFile14=renge\renge.c,0,154,154,1398,911,0,264,0,0
OpenFile15=adc.c,0,275,163,1065,610,0,145,0,0
OpenFile16=led.c,0,286,286,1469,912,12,323,0,0
OpenFile17=ProjectWindow
OpenFile12=vreg_twl.c,0,314,110,1558,867,74,90,75,0
OpenFile13=renge\renge.c,0,154,154,1398,911,0,264,0,0
OpenFile14=adc.c,0,275,163,1065,610,0,145,0,0
OpenFile15=led.c,0,286,286,1469,912,45,278,46,0
OpenFile16=pm.c,0,457,302,1701,1059,4,496,14,0
OpenFile17=i2c_ctr.c,0,329,42,1171,976,0,56,0,0
OpenFile18=ProjectWindow
PrjPos=0,2,754,3,253
OpenFile18=i2c_ctr.c,0,329,42,1171,976,9,101,9,0
OpenFile19=pm.c,0,457,302,1701,1059,0,216,0,0
OpenFile20=OutputWindow
OpenFile19=OutputWindow
OutputPos=0,360,1128,478,1503
OpenFile20=config.h,0,263,342,1507,1099,15,15,15,0
ActivePRJ=yav_mcu_bsr.prj
[ProjectWindow]
ProjectWindowDispType=0

View File

@ -1,7 +1,7 @@
[SdbInfo]
Ver=5
[loader.c]
T=4ae7c536
T=4af2385f
1=incs_loader.h
2=fsl.h
3=fsl_user.h
@ -11,16 +11,16 @@ T=4ae7c536
7=rtc.h
8=reboot.h
[pm.c]
T=4aee97ce
T=4af37d73
1=incs.h
2=adc.h
3=led.h
4=pm.h
[i2c_ctr.c]
T=4ae78e76
T=4af2327f
1=incs.h
[main.c]
T=4aee391d
T=4af281ee
1=incs.h
2=WDT.h
3=rtc.h
@ -34,7 +34,7 @@ T=4ad3e9ff
T=4aca8ef0
1=incs_loader.h
[i2c_mcu.c]
T=4aee94fe
T=4af25f2b
1=incs.h
2=i2c_mcu.h
[i2c_twl.c]
@ -45,11 +45,11 @@ T=4add157f
T=4ae986c0
1=config.h
[led.c]
T=4ae991e4
T=4af37126
1=incs.h
2=led.h
[rtc.c]
T=4adee281
T=4af0e439
1=incs.h
[vreg_ctr.c]
T=4ae6477f
@ -60,45 +60,30 @@ T=4ae6477f
5=accero.h
6=pm.h
[vreg_twl.c]
T=4ae916d9
T=4af37c2b
1=incs.h
2=jhl_defs.h
3=vreg_twl.h
4=vreg_ctr.h
[tasks.c]
T=4aee6c62
1=incs.h
2=renge\renge.h
3=pm.h
4=accero.h
[adc.c]
T=4aea78e3
T=4af27e29
1=incs.h
2=adc.h
3=pm.h
4=led.h
[renge\renge.c]
T=4ae94be1
T=4af291b9
1=renge\renge_defs.h
2=renge\renge_task_intval.h
3=renge\renge_task_immediate.h
4=WDT.h
5=bsr_system.h
[tasks_sys.c]
T=4aea41aa
1=incs.h
2=i2c_twl.h
3=i2c_ctr.h
4=led.h
5=accero.h
6=pm.h
7=rtc.h
[accero.c]
T=4ae66d1d
1=incs.h
2=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h
[self_flash.c]
T=4ae67264
T=4af2385f
1=incs_loader.h
2=..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h
3=fsl_user.h
@ -106,6 +91,36 @@ T=4ae67264
[reboot.c]
T=4ae01bca
1=incs_loader.h
[sw.c]
T=4af283ee
1=incs.h
2=i2c_twl.h
3=i2c_ctr.h
4=led.h
5=accero.h
6=pm.h
7=rtc.h
[task_debug.c]
T=4af37091
1=incs.h
2=renge\renge.h
3=pm.h
[task_misc.c]
T=4af23bcc
1=incs.h
2=renge\renge.h
3=pm.h
4=accero.h
[task_sys.c]
T=4af3afcc
1=incs.h
2=i2c_twl.h
3=i2c_ctr.h
4=led.h
5=accero.h
6=pm.h
7=rtc.h
8=sw.h
[incs_loader.h]
T=4aca8c17
1=jhl_defs.h
@ -117,14 +132,14 @@ T=4aca8c17
7=i2c_mcu.h
8=WDT.h
[jhl_defs.h]
T=4ae647cd
T=4af224f5
[user_define.h]
T=4ae8dfa1
T=4af3ad8a
1=config.h
[config.h]
T=4aee58b4
T=4af37e8a
[bsr_system.h]
T=4aca8c17
T=4af27e29
[renge\renge.h]
T=4abc82ef
1=renge\renge_defs.h
@ -135,13 +150,13 @@ T=4ac96e5c
T=4ad68780
1=renge\renge_defs.h
[vreg_ctr.h]
T=4aee86c8
T=4af37075
1=config.h
[loader.h]
T=4aca8c17
1=jhl_defs.h
[i2c_mcu.h]
T=4aee9168
T=4af25faf
[WDT.h]
T=4aca8c17
[fsl.h]
@ -151,7 +166,7 @@ T=4aca8c17
[i2c_ctr.h]
T=4aca8c17
[pm.h]
T=4aee8ed6
T=4af23bbb
[rtc.h]
T=4aca8c17
[adc.h]
@ -170,7 +185,7 @@ T=4ae508d8
7=i2c_mcu.h
8=rtc.h
[vreg_twl.h]
T=4ae8ea1f
T=4af37c30
[accero.h]
T=4aca8c17
1=jhl_defs.h
@ -187,3 +202,5 @@ T=49a3bd4e
T=45f12258
[reboot.h]
T=4ae008e4
[sw.h]
T=4af2326b