mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-10-31 13:51:10 -04:00
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@27 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
parent
10e2a9b12c
commit
94400442d5
18
trunk/adc.c
18
trunk/adc.c
@ -34,14 +34,13 @@ void tsk_adc( )
|
|||||||
static u8 sndvol_codec;
|
static u8 sndvol_codec;
|
||||||
static u8 bt_temp_old;
|
static u8 bt_temp_old;
|
||||||
|
|
||||||
if( task_interval != 0 )
|
if( task_interval != system_time )
|
||||||
{
|
{
|
||||||
task_interval -= 1;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
task_interval = ( INTERVAL_TSK_ADC / SYS_INTERVAL_TICK );
|
task_interval += (u8)( INTERVAL_TSK_ADC / SYS_INTERVAL_TICK );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -49,6 +48,7 @@ void tsk_adc( )
|
|||||||
{
|
{
|
||||||
if( system_status.pwr_state == ON )
|
if( system_status.pwr_state == ON )
|
||||||
{
|
{
|
||||||
|
// Tune //
|
||||||
#if 0
|
#if 0
|
||||||
tune ・フ変化では割り込みを入れない
|
tune ・フ変化では割り込みを入れない
|
||||||
// tune
|
// tune
|
||||||
@ -112,12 +112,18 @@ void tsk_adc( )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ( 2 ): //
|
case ( 2 ): //
|
||||||
|
default: // <20>Á“”
|
||||||
|
#ifdef _MODEL_WM0_
|
||||||
|
LED_duty_TUNE = vreg_ctr[VREG_C_TUNE] / 16;
|
||||||
|
#else
|
||||||
LED_duty_TUNE = LED_BRIGHT_MAX - vreg_ctr[VREG_C_TUNE];
|
LED_duty_TUNE = LED_BRIGHT_MAX - vreg_ctr[VREG_C_TUNE];
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
#if 0
|
||||||
default: // 消灯
|
default: // 消灯
|
||||||
LED_duty_TUNE = 0;
|
LED_duty_TUNE = 0;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,7 +194,11 @@ __interrupt void int_adc( )
|
|||||||
{
|
{
|
||||||
case ( ADC_SEL_TUNE ):
|
case ( ADC_SEL_TUNE ):
|
||||||
hist_tune[index] = ADCRH;
|
hist_tune[index] = ADCRH;
|
||||||
|
#ifdef _MODEL_WM0_
|
||||||
|
vreg_ctr[VREG_C_TUNE] = 255 - getmean3( hist_tune );
|
||||||
|
#else
|
||||||
vreg_ctr[VREG_C_TUNE] = getmean3( hist_tune );
|
vreg_ctr[VREG_C_TUNE] = getmean3( hist_tune );
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ( ADC_SEL_VOL ):
|
case ( ADC_SEL_VOL ):
|
||||||
|
|||||||
@ -89,6 +89,7 @@ __interrupt void int_iic_ctr( )
|
|||||||
// まだ読まれてない割り込みがあれば、再度アサート
|
// まだ読まれてない割り込みがあれば、再度アサート
|
||||||
if( irq_readed )
|
if( irq_readed )
|
||||||
{
|
{
|
||||||
|
IRQ0_neg;
|
||||||
irq_readed = 0;
|
irq_readed = 0;
|
||||||
if( !( ( vreg_ctr[VREG_C_IRQ0] == 0 )
|
if( !( ( vreg_ctr[VREG_C_IRQ0] == 0 )
|
||||||
&& ( vreg_ctr[VREG_C_IRQ1] == 0 )
|
&& ( vreg_ctr[VREG_C_IRQ1] == 0 )
|
||||||
@ -96,18 +97,10 @@ __interrupt void int_iic_ctr( )
|
|||||||
&& ( vreg_ctr[VREG_C_IRQ3] == 0 )
|
&& ( vreg_ctr[VREG_C_IRQ3] == 0 )
|
||||||
&& ( vreg_ctr[VREG_C_IRQ4] == 0 ) ) )
|
&& ( vreg_ctr[VREG_C_IRQ4] == 0 ) ) )
|
||||||
{
|
{
|
||||||
IRQ0_neg;
|
while( !IRQ0 ){;} // 時間稼ぎ不要かも
|
||||||
while( !IRQ0 )
|
|
||||||
{;
|
|
||||||
}
|
|
||||||
IRQ0_ast;
|
IRQ0_ast;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
IRQ0_neg;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,7 +127,6 @@ __interrupt void int_iic_ctr( )
|
|||||||
// レジスタアドレス受信
|
// レジスタアドレス受信
|
||||||
reg_adrs = IICA;
|
reg_adrs = IICA;
|
||||||
WREL = 1;
|
WREL = 1;
|
||||||
// reg_adrs_internal = adrs_table_ctr_ext2int( reg_adrs );
|
|
||||||
trx_buf = vreg_ctr_read( reg_adrs ); // データの準備をしておく
|
trx_buf = vreg_ctr_read( reg_adrs ); // データの準備をしておく
|
||||||
state = IIC_TX_OR_RX;
|
state = IIC_TX_OR_RX;
|
||||||
break;
|
break;
|
||||||
@ -178,11 +170,9 @@ __interrupt void int_iic_ctr( )
|
|||||||
WREL = 1;
|
WREL = 1;
|
||||||
}
|
}
|
||||||
reg_adrs += 1;
|
reg_adrs += 1;
|
||||||
// reg_adrs_internal = adrs_table_ctr_ext2int( reg_adrs );
|
|
||||||
if( state == IIC_TX )
|
if( state == IIC_TX )
|
||||||
{
|
{
|
||||||
trx_buf = vreg_ctr_read( reg_adrs );
|
trx_buf = vreg_ctr_read( reg_adrs );
|
||||||
// temp = vreg_ctr[ reg_adrs ];
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
34
trunk/led.c
34
trunk/led.c
@ -299,6 +299,8 @@ static void led_pow_hotaru( )
|
|||||||
* 割り込みそのものは使いません *
|
* 割り込みそのものは使いません *
|
||||||
LED_Wifi 3
|
LED_Wifi 3
|
||||||
2 P24 (未)
|
2 P24 (未)
|
||||||
|
|
||||||
|
todo ’¼<EFBFBD>‘‚«‚Ì“_–ÅŠÔŠu‚È‚Ç
|
||||||
======================================================== */
|
======================================================== */
|
||||||
void tsk_led_wifi( )
|
void tsk_led_wifi( )
|
||||||
{
|
{
|
||||||
@ -308,13 +310,11 @@ void tsk_led_wifi( )
|
|||||||
static u8 flag_wifi_TX;
|
static u8 flag_wifi_TX;
|
||||||
|
|
||||||
|
|
||||||
if( task_interval != 0 )
|
if( task_interval != system_time )
|
||||||
{
|
{
|
||||||
task_interval -= 1;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 送信パルスのラッチ
|
// 送信パルスのラッチ
|
||||||
if( vreg_ctr[VREG_C_LED_WIFI] == WIFI_LED_TXAUTO )
|
if( vreg_ctr[VREG_C_LED_WIFI] == WIFI_LED_TXAUTO )
|
||||||
{
|
{
|
||||||
@ -371,7 +371,7 @@ void tsk_led_wifi( )
|
|||||||
state_wifi_tx = 0;
|
state_wifi_tx = 0;
|
||||||
flag_wifi_TX -= 1;
|
flag_wifi_TX -= 1;
|
||||||
}
|
}
|
||||||
task_interval = 22;
|
task_interval += 22;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -379,7 +379,7 @@ void tsk_led_wifi( )
|
|||||||
{
|
{
|
||||||
LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT];
|
LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT];
|
||||||
LED_WIFI_2 = 1;
|
LED_WIFI_2 = 1;
|
||||||
task_interval = 200;
|
task_interval += 200;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -402,7 +402,7 @@ void tsk_led_wifi( )
|
|||||||
{
|
{
|
||||||
state_wifi_tx = 0;
|
state_wifi_tx = 0;
|
||||||
}
|
}
|
||||||
task_interval = 50;
|
task_interval += 50;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case ( WIFI_LED_PTN1 ):
|
case ( WIFI_LED_PTN1 ):
|
||||||
@ -415,7 +415,7 @@ void tsk_led_wifi( )
|
|||||||
{
|
{
|
||||||
LED_duty_WiFi = 0;
|
LED_duty_WiFi = 0;
|
||||||
remain_wifi_tx = 0;
|
remain_wifi_tx = 0;
|
||||||
task_interval = MSG_SPD;
|
task_interval += MSG_SPD;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -427,26 +427,26 @@ void tsk_led_wifi( )
|
|||||||
case ( 0b00000000 ):
|
case ( 0b00000000 ):
|
||||||
LED_duty_WiFi = 0;
|
LED_duty_WiFi = 0;
|
||||||
remain_wifi_tx = 0;
|
remain_wifi_tx = 0;
|
||||||
task_interval = ( MSG_SPD * 3 );
|
task_interval += ( MSG_SPD * 3 );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ( 0b01000000 ):
|
case ( 0b01000000 ):
|
||||||
default:
|
default:
|
||||||
LED_duty_WiFi = 0;
|
LED_duty_WiFi = 0;
|
||||||
remain_wifi_tx = 1;
|
remain_wifi_tx = 1;
|
||||||
task_interval = ( MSG_SPD );
|
task_interval += ( MSG_SPD );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ( 0b10000000 ):
|
case ( 0b10000000 ):
|
||||||
LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT];
|
LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT];
|
||||||
remain_wifi_tx = 1;
|
remain_wifi_tx = 1;
|
||||||
task_interval = ( MSG_SPD );
|
task_interval += ( MSG_SPD );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ( 0b11000000 ):
|
case ( 0b11000000 ):
|
||||||
LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT];
|
LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT];
|
||||||
remain_wifi_tx = 1;
|
remain_wifi_tx = 1;
|
||||||
task_interval = ( MSG_SPD * 3 );
|
task_interval += ( MSG_SPD * 3 );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -469,12 +469,12 @@ void tsk_led_cam( )
|
|||||||
static u8 task_interval;
|
static u8 task_interval;
|
||||||
static u8 state_led_cam_twl;
|
static u8 state_led_cam_twl;
|
||||||
|
|
||||||
if( task_interval != 0 )
|
if( task_interval != system_time )
|
||||||
{
|
{
|
||||||
task_interval -= 1;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
switch ( vreg_ctr[VREG_C_LED_CAM] )
|
switch ( vreg_ctr[VREG_C_LED_CAM] )
|
||||||
{
|
{
|
||||||
case ( CAM_LED_OFF ):
|
case ( CAM_LED_OFF ):
|
||||||
@ -499,7 +499,7 @@ void tsk_led_cam( )
|
|||||||
LED_duty_CAM = 0;
|
LED_duty_CAM = 0;
|
||||||
state_led_cam = 0;
|
state_led_cam = 0;
|
||||||
}
|
}
|
||||||
task_interval = 250;
|
task_interval += 250;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ( CAM_LED_ON_PLUSE ):
|
case ( CAM_LED_ON_PLUSE ):
|
||||||
@ -507,7 +507,7 @@ void tsk_led_cam( )
|
|||||||
{
|
{
|
||||||
LED_duty_CAM = vreg_ctr[VREG_C_LED_BRIGHT];
|
LED_duty_CAM = vreg_ctr[VREG_C_LED_BRIGHT];
|
||||||
state_led_cam = 1;
|
state_led_cam = 1;
|
||||||
task_interval = 250;
|
task_interval += 250;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -520,7 +520,7 @@ void tsk_led_cam( )
|
|||||||
{
|
{
|
||||||
LED_duty_CAM = 0;
|
LED_duty_CAM = 0;
|
||||||
state_led_cam = 1;
|
state_led_cam = 1;
|
||||||
task_interval = 250;
|
task_interval += 250;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -546,7 +546,7 @@ void tsk_led_cam( )
|
|||||||
LED_duty_CAM = 0;
|
LED_duty_CAM = 0;
|
||||||
state_led_cam = 0;
|
state_led_cam = 0;
|
||||||
}
|
}
|
||||||
task_interval = 250;
|
task_interval += 250;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case( TWL_CAMLED_ON ):
|
case( TWL_CAMLED_ON ):
|
||||||
|
|||||||
@ -24,6 +24,9 @@ static void read_dipsw( );
|
|||||||
system_status_ system_status;
|
system_status_ system_status;
|
||||||
|
|
||||||
|
|
||||||
|
u8 pool[512]; // アップデート時のワークエリア 兼 歩数計データ
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
本当のエントリ関数は loader.c にあります
|
本当のエントリ関数は loader.c にあります
|
||||||
======================================================== */
|
======================================================== */
|
||||||
|
|||||||
@ -22,16 +22,22 @@
|
|||||||
bit renge_flg_interval;
|
bit renge_flg_interval;
|
||||||
bit renge_task_interval_run_force;
|
bit renge_task_interval_run_force;
|
||||||
|
|
||||||
|
u8 system_time;
|
||||||
|
|
||||||
|
|
||||||
extern const task_info tasks[];
|
extern const task_info tasks[];
|
||||||
|
|
||||||
#include "..\bsr_system.h"
|
#include "..\bsr_system.h"
|
||||||
extern system_status_ system_status;
|
extern system_status_ system_status;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
static void renge_task_immed_init();
|
static void renge_task_immed_init();
|
||||||
static void renge_task_immed_del( u8 );
|
static void renge_task_immed_del( u8 );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
初期化。
|
初期化。
|
||||||
・タスクシステムの動的部分の初期化
|
・タスクシステムの動的部分の初期化
|
||||||
|
|||||||
@ -11,22 +11,24 @@
|
|||||||
// #include "renge_task_interval_run.h" // 外から強制起動禁止!
|
// #include "renge_task_interval_run.h" // 外から強制起動禁止!
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
void renge_init();
|
void renge_init();
|
||||||
|
|
||||||
|
|
||||||
err renge_task_interval_run();
|
|
||||||
extern bit renge_task_interval_run_force;
|
|
||||||
extern bit renge_flg_interval;
|
|
||||||
|
|
||||||
|
|
||||||
void renge_task_immed_init();
|
void renge_task_immed_init();
|
||||||
err renge_task_immed_run();
|
err renge_task_immed_run();
|
||||||
err renge_task_immed_add( task_immed );
|
err renge_task_immed_add( task_immed );
|
||||||
// static err renge_task_immed_del( u8 );
|
// static err renge_task_immed_del( u8 );
|
||||||
|
|
||||||
|
|
||||||
void wait_ms( u8 );
|
void wait_ms( u8 );
|
||||||
|
|
||||||
u8 renge_set_jump( u8 tsk_id );
|
u8 renge_set_jump( u8 tsk_id );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
|
err renge_task_interval_run();
|
||||||
|
extern bit renge_task_interval_run_force;
|
||||||
|
extern bit renge_flg_interval;
|
||||||
|
|
||||||
|
extern u8 system_time;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -7,8 +7,6 @@
|
|||||||
OSにはほど遠い、簡易的なタスクシステム。
|
OSにはほど遠い、簡易的なタスクシステム。
|
||||||
Range の Typo ではないです。レンゲです。
|
Range の Typo ではないです。レンゲです。
|
||||||
|
|
||||||
必要に応じてがんがん変えて使います。
|
|
||||||
|
|
||||||
なんと レンゲ は俗称で日本名は ゲンゲ
|
なんと レンゲ は俗称で日本名は ゲンゲ
|
||||||
小さいけど役に立つ役草です。
|
小さいけど役に立つ役草です。
|
||||||
大きく育ってね!
|
大きく育ってね!
|
||||||
|
|||||||
33
trunk/rtc.c
33
trunk/rtc.c
@ -65,23 +65,13 @@ void RTC_init( void )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
|
||||||
RTC システムチックタイマ割り込みベクタ
|
|
||||||
2^6/fXT(1.953125 ms)
|
|
||||||
======================================================== */
|
|
||||||
__interrupt void int_rtc_int( )
|
|
||||||
{
|
|
||||||
renge_flg_interval = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
RTC アラーム割り込み
|
RTC アラーム割り込み
|
||||||
2^6/fXT(1.953125 ms)
|
2^6/fXT(1.953125 ms)
|
||||||
======================================================== */
|
======================================================== */
|
||||||
__interrupt void int_rtc( )
|
__interrupt void int_rtc( )
|
||||||
{
|
{
|
||||||
|
// 日付も指定日で
|
||||||
if( ( vreg_ctr[VREG_C_RTC_ALARM_DAY] == DAY )
|
if( ( vreg_ctr[VREG_C_RTC_ALARM_DAY] == DAY )
|
||||||
&& ( vreg_ctr[VREG_C_RTC_ALARM_MONTH] == MONTH )
|
&& ( vreg_ctr[VREG_C_RTC_ALARM_MONTH] == MONTH )
|
||||||
&& ( vreg_ctr[VREG_C_RTC_ALARM_YEAR] == YEAR ) )
|
&& ( vreg_ctr[VREG_C_RTC_ALARM_YEAR] == YEAR ) )
|
||||||
@ -175,3 +165,24 @@ void rtc_unlock( )
|
|||||||
WALE = 1;
|
WALE = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ========================================================
|
||||||
|
RTC システムチックタイマ割り込みベクタ
|
||||||
|
2^6/fXT(1.953125 ms)
|
||||||
|
======================================================== */
|
||||||
|
__interrupt void int_rtc_int( )
|
||||||
|
{
|
||||||
|
if( renge_flg_interval == 0 )
|
||||||
|
{
|
||||||
|
renge_flg_interval = 1;
|
||||||
|
system_time += 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
NOP();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -70,6 +70,15 @@ static void FSL_Open( void );
|
|||||||
static void FSL_Close( void );
|
static void FSL_Close( void );
|
||||||
err firm_restore( );
|
err firm_restore( );
|
||||||
|
|
||||||
|
static err my_FSL_Init();
|
||||||
|
static err firm_duplicate( __far u8 * p_rom, u8 block_dest );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ========================================================
|
||||||
|
extern u8 pool[];
|
||||||
|
|
||||||
|
|
||||||
// magic.c の記述と違わないように注意!
|
// magic.c の記述と違わないように注意!
|
||||||
#define N_MGC_L 0x1FF6
|
#define N_MGC_L 0x1FF6
|
||||||
#define N_MGC_T 0x47F6
|
#define N_MGC_T 0x47F6
|
||||||
@ -77,82 +86,29 @@ err firm_restore( );
|
|||||||
|
|
||||||
|
|
||||||
/* ========================================================
|
/* ========================================================
|
||||||
|
I2Cで受信して、
|
||||||
|
書き込み、
|
||||||
|
チェックOK → 新ファームに切り替えて再起動
|
||||||
|
NG → 旧(現)ファームに戻して再起動
|
||||||
|
(この関数からは戻りません)
|
||||||
======================================================== */
|
======================================================== */
|
||||||
err firm_update( )
|
err firm_update( )
|
||||||
{
|
{
|
||||||
u8 buffer_fill;
|
|
||||||
u8 target_block;
|
u8 target_block;
|
||||||
u8 data_buffer[SELF_UPDATE_BUFF_SIZE];
|
|
||||||
u8 split_write_count; // ブロックへちまちま書き込むカウンタ
|
u8 split_write_count; // ブロックへちまちま書き込むカウンタ
|
||||||
fsl_u08 err;
|
|
||||||
__far u8 *p_rom;
|
|
||||||
|
|
||||||
|
|
||||||
TOE0 = 0x0000;
|
TOE0 = 0x0000;
|
||||||
TOE0 = 0x0020;
|
TOE0 = 0x0020;
|
||||||
|
|
||||||
// 書き替え前準備 //
|
// 書き替え前準備 //
|
||||||
FSL_Open( ); // 割り込み禁止など
|
my_FSL_Init();
|
||||||
DI( );
|
|
||||||
|
|
||||||
err = FSL_Init( data_buffer ); // ライブラリ初期化。割り込み中断考慮せず
|
/* ファームのバックアップ
|
||||||
err += FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず
|
|
||||||
|
|
||||||
|
|
||||||
// ファームのバックアップ //
|
|
||||||
/*
|
|
||||||
0x2000 - 0x47FF (ブロック 8 - 17) を
|
0x2000 - 0x47FF (ブロック 8 - 17) を
|
||||||
0x4800 - 0x7FFF (ブロック 18 - 27) にコピー
|
0x4800 - 0x7FFF (ブロック 18 - 27) にコピー
|
||||||
*/
|
*/
|
||||||
|
firm_duplicate( ( __far u8 * ) 0x2000,
|
||||||
p_rom = ( __far u8 * ) 0x2000;
|
( FIRM_TOP + FIRM_SIZE ) );
|
||||||
// 書き込み先ブロックの数だけ繰り返す
|
|
||||||
for( target_block = ( FIRM_TOP + FIRM_SIZE );
|
|
||||||
target_block < ( FIRM_TOP + FIRM_SIZE + FIRM_SIZE ); target_block += 1 )
|
|
||||||
{
|
|
||||||
|
|
||||||
WDT_Restart( );
|
|
||||||
// ブロック消去
|
|
||||||
while( FSL_BlankCheck( target_block ) != FSL_OK )
|
|
||||||
{
|
|
||||||
err = FSL_Erase( target_block );
|
|
||||||
}
|
|
||||||
|
|
||||||
// 分割書き込み分繰り返す
|
|
||||||
for( split_write_count = 0;
|
|
||||||
split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; split_write_count += 1 )
|
|
||||||
{
|
|
||||||
|
|
||||||
// 書き込みデータをバッファにためる
|
|
||||||
buffer_fill = 0;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
data_buffer[buffer_fill] = *p_rom;
|
|
||||||
p_rom += 1;
|
|
||||||
buffer_fill++;
|
|
||||||
}
|
|
||||||
while( buffer_fill != ( u8 ) SELF_UPDATE_BUFF_SIZE );
|
|
||||||
|
|
||||||
// 書き込み
|
|
||||||
err = FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE
|
|
||||||
+
|
|
||||||
split_write_count *
|
|
||||||
SELF_UPDATE_BUFF_SIZE ),
|
|
||||||
( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) );
|
|
||||||
|
|
||||||
if( err != FSL_OK )
|
|
||||||
{
|
|
||||||
FSL_Close( );
|
|
||||||
NOP( );
|
|
||||||
return ( ERR_ERR );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1ブロック書き込み完了。内部電圧チェックを行う
|
|
||||||
while( FSL_IVerify( target_block ) != FSL_OK )
|
|
||||||
{;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 書き替え //
|
// 書き替え //
|
||||||
/*
|
/*
|
||||||
@ -161,48 +117,48 @@ err firm_update( )
|
|||||||
●終わったら、リセットする。WDTリセットなので自分でわかる。
|
●終わったら、リセットする。WDTリセットなので自分でわかる。
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// 全ブロック消去
|
|
||||||
for( target_block = INACTIVE_BOOTSECT_TOP;
|
|
||||||
target_block <= UPDATE_BLOCK_LAST; target_block += 1 )
|
|
||||||
{
|
|
||||||
err = FSL_Erase( target_block );
|
|
||||||
}
|
|
||||||
|
|
||||||
WREL = 1;
|
WREL = 1;
|
||||||
|
|
||||||
// ブロックの数だけ繰り返し
|
// ブロックの数だけ繰り返し
|
||||||
for( target_block = INACTIVE_BOOTSECT_TOP;
|
for( target_block = INACTIVE_BOOTSECT_TOP;
|
||||||
target_block <= UPDATE_BLOCK_LAST; target_block += 1 )
|
target_block <= UPDATE_BLOCK_LAST;
|
||||||
|
target_block += 1 )
|
||||||
{
|
{
|
||||||
|
// 新ファーム領域削除
|
||||||
|
FSL_Erase( target_block );
|
||||||
|
|
||||||
// 分割書き込み
|
// 分割書き込み
|
||||||
for( split_write_count = 0;
|
for( split_write_count = 0;
|
||||||
( ( split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM )
|
( ( split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM )
|
||||||
&& ( !SPD ) ); split_write_count += 1 )
|
&& ( !SPD ) );
|
||||||
|
split_write_count += 1 )
|
||||||
{
|
{
|
||||||
|
u8* p_buffer = pool;
|
||||||
|
u8 buffer_fill = 0;
|
||||||
|
|
||||||
WDT_Restart( );
|
WDT_Restart( );
|
||||||
|
|
||||||
// I2Cから書き込みデータをバッファにためる
|
// I2Cから書き込みデータをバッファにためる
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
while( !IICAIF && !SPD )
|
while( !IICAIF && !SPD ){;}
|
||||||
{;
|
|
||||||
}
|
|
||||||
IICAIF = 0;
|
IICAIF = 0;
|
||||||
data_buffer[buffer_fill] = IICA;
|
*p_buffer = IICA;
|
||||||
WREL = 1;
|
WREL = 1;
|
||||||
|
p_buffer += 1;
|
||||||
buffer_fill += 1;
|
buffer_fill += 1;
|
||||||
}
|
}
|
||||||
while( ( buffer_fill != ( u8 ) SELF_UPDATE_BUFF_SIZE ) && !SPD );
|
while( ( buffer_fill != ( u8 ) SELF_UPDATE_BUFF_SIZE ) && !SPD );
|
||||||
|
|
||||||
// 書き込み
|
// 書き込み
|
||||||
// 最後だと、ゴミをパディングするが別にかまわない
|
// 最後だと、ゴミをパディングするが別にかまわない
|
||||||
err = FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE
|
if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE
|
||||||
+
|
+
|
||||||
split_write_count *
|
split_write_count *
|
||||||
SELF_UPDATE_BUFF_SIZE ),
|
SELF_UPDATE_BUFF_SIZE ),
|
||||||
( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) );
|
( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) )
|
||||||
|
|
||||||
if( err != FSL_OK )
|
!= FSL_OK )
|
||||||
{
|
{
|
||||||
FSL_Close( );
|
FSL_Close( );
|
||||||
return ( ERR_ERR );
|
return ( ERR_ERR );
|
||||||
@ -210,17 +166,14 @@ err firm_update( )
|
|||||||
|
|
||||||
}
|
}
|
||||||
// 1ブロック書き込み完了。内部ベリファイを行う
|
// 1ブロック書き込み完了。内部ベリファイを行う
|
||||||
while( FSL_IVerify( target_block ) != FSL_OK )
|
while( FSL_IVerify( target_block ) != FSL_OK ){;}
|
||||||
{;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( SPD )
|
if( SPD )
|
||||||
{
|
{
|
||||||
goto firm_update_end;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
firm_update_end:
|
|
||||||
LREL = 1;
|
LREL = 1;
|
||||||
|
|
||||||
// 書き込んだファームのチェック //
|
// 書き込んだファームのチェック //
|
||||||
@ -261,76 +214,17 @@ err firm_update( )
|
|||||||
======================================================== */
|
======================================================== */
|
||||||
err firm_restore( )
|
err firm_restore( )
|
||||||
{
|
{
|
||||||
u8 buffer_fill;
|
my_FSL_Init();
|
||||||
u8 target_block;
|
|
||||||
u8 data_buffer[SELF_UPDATE_BUFF_SIZE];
|
|
||||||
u8 split_write_count; // ブロックへちまちま書き込むカウンタ
|
|
||||||
fsl_u08 err;
|
|
||||||
__far u8 *p_rom;
|
|
||||||
|
|
||||||
RTCE = 0;
|
/* ファームのリストア
|
||||||
|
|
||||||
TOE0 = 0x0000;
|
|
||||||
TOE0 = 0x0080;
|
|
||||||
// 書き替え前準備 //
|
|
||||||
DI( );
|
|
||||||
FSL_Open( ); // 割り込み禁止など
|
|
||||||
|
|
||||||
err = FSL_Init( data_buffer ); // ライブラリ初期化。割り込み中断考慮せず
|
|
||||||
err += FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず
|
|
||||||
|
|
||||||
|
|
||||||
// ファームのリストア
|
|
||||||
/*
|
|
||||||
0x4800 - 0x7FFF (ブロック 18 - 27) から
|
0x4800 - 0x7FFF (ブロック 18 - 27) から
|
||||||
0x2000 - 0x47FF (ブロック 8 - 17) へコピー
|
0x2000 - 0x47FF (ブロック 8 - 17) へコピー
|
||||||
*/
|
*/
|
||||||
|
firm_duplicate( ( __far u8 * ) 0x4800,
|
||||||
|
FIRM_TOP );
|
||||||
|
|
||||||
p_rom = ( __far u8 * ) 0x4800;
|
|
||||||
// 転送先ブロックの数だけ繰り返す
|
|
||||||
for( target_block = FIRM_TOP; target_block <= UPDATE_BLOCK_LAST; target_block += 1 )
|
|
||||||
{
|
|
||||||
|
|
||||||
WDT_Restart( );
|
|
||||||
// 壊れたファームを消し
|
|
||||||
err = FSL_Erase( target_block );
|
|
||||||
|
|
||||||
// 分割書き込み分繰り返す
|
|
||||||
for( split_write_count = 0;
|
|
||||||
split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; split_write_count += 1 )
|
|
||||||
{
|
|
||||||
|
|
||||||
// 書き込みデータをバッファにためる
|
|
||||||
buffer_fill = 0;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
data_buffer[buffer_fill] = *p_rom;
|
|
||||||
p_rom += 1;
|
|
||||||
buffer_fill++;
|
|
||||||
}
|
|
||||||
while( buffer_fill != ( u8 ) SELF_UPDATE_BUFF_SIZE );
|
|
||||||
|
|
||||||
// 書き込み
|
|
||||||
err = FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE
|
|
||||||
+
|
|
||||||
split_write_count *
|
|
||||||
SELF_UPDATE_BUFF_SIZE ),
|
|
||||||
( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) );
|
|
||||||
|
|
||||||
if( err != FSL_OK )
|
|
||||||
{
|
|
||||||
FSL_Close( );
|
|
||||||
return ( ERR_ERR );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1ブロック書き込み完了したので内部ベリファイを行う
|
|
||||||
while( FSL_IVerify( target_block ) != FSL_OK )
|
|
||||||
{;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// todo
|
// todo
|
||||||
// それでもだなら、LEDちかちかとかさせて、サービス送りにしてもらう
|
// リストア失敗したら、LEDちかちかとかさせて、サービス送りにしてもらう
|
||||||
|
|
||||||
// リブート
|
// リブート
|
||||||
// スワップは不要です!
|
// スワップは不要です!
|
||||||
@ -362,9 +256,7 @@ static void FSL_Open( void )
|
|||||||
|
|
||||||
// 何か前準備?
|
// 何か前準備?
|
||||||
// todo DMAを止める
|
// todo DMAを止める
|
||||||
while( DST1 )
|
while( DST1 ){;}
|
||||||
{;
|
|
||||||
}
|
|
||||||
DEN1 = 0;
|
DEN1 = 0;
|
||||||
|
|
||||||
FSL_FLMD0_HIGH; // フラッシュ書き替え許可
|
FSL_FLMD0_HIGH; // フラッシュ書き替え許可
|
||||||
@ -377,7 +269,6 @@ static void FSL_Open( void )
|
|||||||
/*----------------------------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------------------------*/
|
||||||
static void FSL_Close( void )
|
static void FSL_Close( void )
|
||||||
{
|
{
|
||||||
|
|
||||||
// 何か後始末?
|
// 何か後始末?
|
||||||
|
|
||||||
FSL_FLMD0_LOW; // フラッシュライトプロテクト
|
FSL_FLMD0_LOW; // フラッシュライトプロテクト
|
||||||
@ -393,3 +284,87 @@ static void FSL_Close( void )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ========================================================
|
||||||
|
マイコン内でファームをコピーします。
|
||||||
|
block_dest コピー元の先頭ブロック
|
||||||
|
__far u8 * p_rom コピー先のアドレス
|
||||||
|
|
||||||
|
コピー先に書けるようにmy_FSL_Initをあらかじめ実行する必要があります。
|
||||||
|
======================================================== */
|
||||||
|
static err firm_duplicate( __far u8 * p_rom,
|
||||||
|
u8 block_dest )
|
||||||
|
{
|
||||||
|
u8 target_block;
|
||||||
|
u8 split_write_count; // ブロックへちまちま書き込むカウンタ
|
||||||
|
|
||||||
|
// 書き込み先ブロックの数だけ繰り返す
|
||||||
|
for( target_block = block_dest;
|
||||||
|
target_block < block_dest + FIRM_SIZE;
|
||||||
|
target_block += 1 )
|
||||||
|
{
|
||||||
|
WDT_Restart( );
|
||||||
|
// ブロック消去
|
||||||
|
while( FSL_BlankCheck( target_block ) != FSL_OK )
|
||||||
|
{
|
||||||
|
FSL_Erase( target_block );
|
||||||
|
}
|
||||||
|
|
||||||
|
// 分割書き込み分繰り返す
|
||||||
|
for( split_write_count = 0;
|
||||||
|
split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM;
|
||||||
|
split_write_count += 1 )
|
||||||
|
{
|
||||||
|
u8 buffer_fill;
|
||||||
|
u8* p_buff;
|
||||||
|
|
||||||
|
// 書き込みデータをバッファにためる
|
||||||
|
buffer_fill = 0;
|
||||||
|
p_buff = pool;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
*p_buff = *p_rom;
|
||||||
|
p_rom += 1;
|
||||||
|
p_buff += 1;
|
||||||
|
buffer_fill +=1;
|
||||||
|
}
|
||||||
|
while( buffer_fill != ( u8 ) SELF_UPDATE_BUFF_SIZE );
|
||||||
|
|
||||||
|
// 書き込み
|
||||||
|
if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE
|
||||||
|
+
|
||||||
|
split_write_count *
|
||||||
|
SELF_UPDATE_BUFF_SIZE ),
|
||||||
|
( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) )
|
||||||
|
!= FSL_OK )
|
||||||
|
{
|
||||||
|
FSL_Close( );
|
||||||
|
return ( ERR_ERR );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1ブロック書き込み完了。内部電圧チェックを行う
|
||||||
|
while( FSL_IVerify( target_block ) != FSL_OK ){;}
|
||||||
|
}
|
||||||
|
return( ERR_SUCCESS );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ========================================================
|
||||||
|
======================================================== */
|
||||||
|
static err my_FSL_Init()
|
||||||
|
{
|
||||||
|
RTCE = 0;
|
||||||
|
|
||||||
|
// 書き替え前準備 //
|
||||||
|
DI( );
|
||||||
|
FSL_Open( ); // 割り込み禁止など
|
||||||
|
|
||||||
|
FSL_Init( pool ); // ライブラリ初期化。割り込み中断考慮せず
|
||||||
|
FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず
|
||||||
|
|
||||||
|
return( ERR_SUCCESS );
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -56,14 +56,13 @@ void tsk_sw( )
|
|||||||
static u8 cnt_force_off = 0;
|
static u8 cnt_force_off = 0;
|
||||||
static u8 task_interval = 0;
|
static u8 task_interval = 0;
|
||||||
|
|
||||||
if( task_interval != 0 )
|
if( task_interval != system_time )
|
||||||
{
|
{
|
||||||
task_interval -= 1;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
task_interval = ( INTERVAL_TSK_SW / SYS_INTERVAL_TICK );
|
task_interval += (u8)( INTERVAL_TSK_SW / SYS_INTERVAL_TICK );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -73,7 +73,8 @@ void vreg_ctr_write( u8 adrs, u8 data )
|
|||||||
case ( VREG_C_DBG3 ):
|
case ( VREG_C_DBG3 ):
|
||||||
vreg_ctr[adrs] = data;
|
vreg_ctr[adrs] = data;
|
||||||
if( ( vreg_ctr[VREG_C_DBG1] == 'j' )
|
if( ( vreg_ctr[VREG_C_DBG1] == 'j' )
|
||||||
&& ( vreg_ctr[VREG_C_DBG2] == 'h' ) && ( data == 'l' ) )
|
&& ( vreg_ctr[VREG_C_DBG2] == 'h' )
|
||||||
|
&& ( data == 'l' ) )
|
||||||
{
|
{
|
||||||
firm_update( ); // 戻ってこない
|
firm_update( ); // 戻ってこない
|
||||||
}
|
}
|
||||||
@ -253,25 +254,18 @@ void vreg_ctr_after_read( u8 adrs )
|
|||||||
{
|
{
|
||||||
|
|
||||||
// 割り込みフラグはリードでクリア
|
// 割り込みフラグはリードでクリア
|
||||||
if( adrs == VREG_C_IRQ0 )
|
switch( adrs )
|
||||||
{
|
{
|
||||||
vreg_ctr[VREG_C_IRQ0] = 0;
|
case VREG_C_IRQ0:
|
||||||
irq_readed = 1;
|
case VREG_C_IRQ1:
|
||||||
}
|
case VREG_C_IRQ2:
|
||||||
else if( adrs == VREG_C_IRQ1 )
|
case VREG_C_IRQ3:
|
||||||
{
|
vreg_ctr[ adrs ] = 0;
|
||||||
vreg_ctr[VREG_C_IRQ1] = 0;
|
|
||||||
irq_readed = 1;
|
|
||||||
}
|
|
||||||
else if( adrs == VREG_C_IRQ2 )
|
|
||||||
{
|
|
||||||
vreg_ctr[VREG_C_IRQ2] = 0;
|
|
||||||
irq_readed = 1;
|
|
||||||
}
|
|
||||||
else if( adrs == VREG_C_IRQ3 )
|
|
||||||
{
|
|
||||||
vreg_ctr[VREG_C_IRQ3] = 0;
|
|
||||||
irq_readed = 1;
|
irq_readed = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else if( adrs == VREG_C_IRQ4 )
|
else if( adrs == VREG_C_IRQ4 )
|
||||||
{
|
{
|
||||||
|
|||||||
@ -78,10 +78,10 @@ Symbol Type=OFF
|
|||||||
Language=C
|
Language=C
|
||||||
Kanji=SJIS
|
Kanji=SJIS
|
||||||
[Source]
|
[Source]
|
||||||
Geometry=284, 93, 863, 998
|
Geometry=325, 260, 834, 813
|
||||||
Window=Normal
|
Window=Normal
|
||||||
DispStart=69
|
DispStart=46
|
||||||
CaretPos=70,0
|
CaretPos=89,0
|
||||||
Mode=Normal
|
Mode=Normal
|
||||||
DispFile=
|
DispFile=
|
||||||
Address1=
|
Address1=
|
||||||
@ -185,7 +185,7 @@ SaveRange=Screen
|
|||||||
SaveStart=
|
SaveStart=
|
||||||
SaveEnd=
|
SaveEnd=
|
||||||
[Memory]
|
[Memory]
|
||||||
Geometry=0, 0, 0, 0
|
Geometry=859, 4, 550, 1064
|
||||||
Window=Hide
|
Window=Hide
|
||||||
Boundary=0
|
Boundary=0
|
||||||
Format=Hex
|
Format=Hex
|
||||||
@ -194,7 +194,7 @@ Endian=
|
|||||||
Ascii=OFF
|
Ascii=OFF
|
||||||
Idtag=OFF
|
Idtag=OFF
|
||||||
Address=
|
Address=
|
||||||
DispStart=FFFFFFFF
|
DispStart=00004390
|
||||||
CaretPosData=0, 0
|
CaretPosData=0, 0
|
||||||
CaretPosAscii=0, 0
|
CaretPosAscii=0, 0
|
||||||
Address1=
|
Address1=
|
||||||
@ -814,7 +814,7 @@ L529=IICWL1
|
|||||||
L530=IICWH1
|
L530=IICWH1
|
||||||
L531=SVA1
|
L531=SVA1
|
||||||
[Local Variable]
|
[Local Variable]
|
||||||
Geometry=1180, 798, 400, 300
|
Geometry=442, 879, 400, 212
|
||||||
Window=Normal
|
Window=Normal
|
||||||
Boundary=13041851
|
Boundary=13041851
|
||||||
Mode=Proper
|
Mode=Proper
|
||||||
@ -973,68 +973,58 @@ Count=0
|
|||||||
Geometry=1143, 7, 440, 503
|
Geometry=1143, 7, 440, 503
|
||||||
Window=Normal
|
Window=Normal
|
||||||
Boundary=13762700
|
Boundary=13762700
|
||||||
0=.SVA0,P,S,A,+,1
|
0=.hist_tune,P,N,A,+,1
|
||||||
1=.IICA0EN,P,S,A,+,1
|
1=.vreg_ctr[8],P,N,A,+,1
|
||||||
2=.IICAIF1,P,S,A,+,1
|
2=.comp,P,N,A,+,1
|
||||||
3=.IICAIF0,P,S,A,+,1
|
3=.pool,P,N,A,+,1
|
||||||
4=.system_status.pwr_state,P,N,A,+,1
|
4=.p_buff,P,N,A,+,1
|
||||||
5=.P2,B,S,A,+,1
|
5=.p_rom,P,N,A,+,1
|
||||||
6=.PM2,B,S,A,+,1
|
6=.SVA0,P,S,A,+,1
|
||||||
7=.raw_adc_temperature,P,N,A,+,1
|
7=.IICA0EN,P,S,A,+,1
|
||||||
8=.vreg_ctr,P,N,A,+,1
|
8=.IICAIF1,P,S,A,+,1
|
||||||
9=.reg1_old,P,N,A,+,1
|
9=.IICAIF0,P,S,A,+,1
|
||||||
10=.reg_shadow,P,N,A,+,1
|
10=.system_status.pwr_state,P,N,A,+,1
|
||||||
Line=11
|
11=.P2,B,S,A,+,1
|
||||||
|
12=.PM2,B,S,A,+,1
|
||||||
|
13=.raw_adc_temperature,P,N,A,+,1
|
||||||
|
14=.vreg_ctr,P,N,A,+,1
|
||||||
|
15=.reg1_old,P,N,A,+,1
|
||||||
|
16=.reg_shadow,P,N,A,+,1
|
||||||
|
Line=17
|
||||||
[Quick Watch]
|
[Quick Watch]
|
||||||
0=vreg_ctr[0x0e],P,A,1
|
0=raw_adc_temperature,P,A,1
|
||||||
1=iic_mcu_bus_status,P,A,1
|
1=PM2,P,A,1
|
||||||
2=diff,P,A,1
|
2=P2,B,A,1
|
||||||
3=reg_shadow,P,A,1
|
3=system_status.pwr_state,P,A,1
|
||||||
4=reg1_old,P,A,1
|
4=IICA0IF0,P,A,1
|
||||||
5=vreg_ctr,P,A,1
|
5=IICA0IF,P,A,1
|
||||||
6=raw_adc_temperature,P,A,1
|
6=IICAIF0,P,A,1
|
||||||
7=PM2,P,A,1
|
7=IICAIF1,P,A,1
|
||||||
8=P2,B,A,1
|
8=IICA0EN,P,A,1
|
||||||
9=system_status.pwr_state,P,A,1
|
9=SVA0,P,A,1
|
||||||
10=IICA0IF0,P,A,1
|
10=p_rom,P,A,1
|
||||||
11=IICA0IF,P,A,1
|
11=p_buff,P,A,1
|
||||||
12=IICAIF0,P,A,1
|
12=pool,P,A,1
|
||||||
13=IICAIF1,P,A,1
|
13=comp,P,A,1
|
||||||
14=IICA0EN,P,A,1
|
14=vreg_ctr[8],P,A,1
|
||||||
15=SVA0,P,A,1
|
15=hist_tune,P,A,1
|
||||||
[Software Break]
|
[Software Break]
|
||||||
Geometry=1069, 522, 500, 272
|
Geometry=1069, 522, 500, 272
|
||||||
Window=Normal
|
Window=Normal
|
||||||
Width=150 30 200 100
|
Width=150 30 200 100
|
||||||
Name0=Swb00003
|
Name0=Swb00001
|
||||||
Address0=pm.c#_ntr_pmic_comm+0x90
|
Address0=task_sys.c#_tsk_sys+0x171
|
||||||
Window0=ASM
|
Window0=ASM
|
||||||
Status0=ON
|
Status0=ON
|
||||||
Name1=Swb00004
|
Name1=Swb00002
|
||||||
Address1=pm.c#_ntr_pmic_comm+0x69
|
Address1=task_sys.c#_tsk_sys+0x159
|
||||||
Window1=ASM
|
Window1=ASM
|
||||||
Status1=ON
|
Status1=ON
|
||||||
Name2=Swb00006
|
Name2=Swb00003
|
||||||
Address2=pm.c#_ntr_pmic_comm+0x61
|
Address2=adc.c#_tsk_adc+0x102
|
||||||
Window2=ASM
|
Window2=ASM
|
||||||
Status2=ON
|
Status2=ON
|
||||||
Name3=Swb00007
|
Count=3
|
||||||
Address3=pm.c#_ntr_pmic_comm+0x30
|
|
||||||
Window3=ASM
|
|
||||||
Status3=ON
|
|
||||||
Name4=Swb00001
|
|
||||||
Address4=pm.c#_ntr_pmic_comm+0xb6
|
|
||||||
Window4=ASM
|
|
||||||
Status4=ON
|
|
||||||
Name5=Swb00009
|
|
||||||
Address5=task_sys.c#_tsk_sys+0x6e
|
|
||||||
Window5=ASM
|
|
||||||
Status5=ON
|
|
||||||
Name6=Swb00010
|
|
||||||
Address6=task_sys.c#_tsk_sys+0x80
|
|
||||||
Window6=ASM
|
|
||||||
Status6=ON
|
|
||||||
Count=7
|
|
||||||
[Reset]
|
[Reset]
|
||||||
Debugger=ON
|
Debugger=ON
|
||||||
Symbol=OFF
|
Symbol=OFF
|
||||||
|
|||||||
@ -514,6 +514,59 @@ DefaultMode2=1
|
|||||||
DefaultMode3=1
|
DefaultMode3=1
|
||||||
DefaultMode4=1
|
DefaultMode4=1
|
||||||
DefaultMode5=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=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
|
||||||
[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
|
||||||
@ -686,12 +739,12 @@ AssignROM=0
|
|||||||
Maxoptimizechk=0
|
Maxoptimizechk=0
|
||||||
Maxoptimize=1104
|
Maxoptimize=1104
|
||||||
Charunexpandchk=0
|
Charunexpandchk=0
|
||||||
Unsignedchar=0
|
Unsignedchar=1
|
||||||
Usesaddrchk=0
|
Usesaddrchk=0
|
||||||
Autoallocationchk=1
|
Autoallocationchk=1
|
||||||
Jumpoptimize=1
|
Jumpoptimize=1
|
||||||
Librarycallchk=1
|
Librarycallchk=1
|
||||||
Librarycall=1128
|
Librarycall=1129
|
||||||
Aggressivechk=1
|
Aggressivechk=1
|
||||||
Relativebranchchk=1
|
Relativebranchchk=1
|
||||||
Debugoptchk=0
|
Debugoptchk=0
|
||||||
@ -980,59 +1033,6 @@ VfiFileBoot0=
|
|||||||
VfiFileBoot1=boot.vfi
|
VfiFileBoot1=boot.vfi
|
||||||
VF78K0Rchk=0
|
VF78K0Rchk=0
|
||||||
VF78K0Rvs=
|
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]
|
[ToolSet]
|
||||||
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
ToolSetName=(•Ï<E280A2>X)78K0R Software Package V1.10
|
||||||
Tool1=CC78K0R|W2.10
|
Tool1=CC78K0R|W2.10
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user