V0.3 final

V0.4でレジスタなどがらっと変えてしまうつもりで、#ifdef ではつらいため、
きれいにしてしまいます。

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@10 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
fujita_ryohei 2009-09-16 06:41:53 +00:00
parent 218026b2e2
commit 4f86e7aa2d
18 changed files with 345 additions and 340 deletions

View File

@ -1,8 +1,6 @@
#ifndef __bsr_system__
#define __bsr_system__
#include "jhl_defs.h"
// イベントループのステート
enum pwr_state_{
OFF_TRIG = 0,
@ -24,9 +22,9 @@ enum poweron_reason_{
typedef struct{
enum pwr_state_ pwr_state;
enum poweron_reason_ poweron_reason;
u8 dipsw0 :1;
u8 dipsw1 :1;
u8 dipsw2 :1;
unsigned char dipsw0 :1;
unsigned char dipsw1 :1;
unsigned char dipsw2 :1;
}system_status_;
extern system_status_ system_status;

View File

@ -8,7 +8,16 @@
// u16 tot;
#ifndef _PMIC_CTR_
#define IRQ0_neg { PM3.0 = 1; }
#else
#define IRQ0_neg { PM7.6 = 1; }
#endif
#ifdef _MCU_BSR_
#ifdef 1
//#ifdef _MODEL_WM0_
// ワーキングモデルはI2Cが逆
@ -37,9 +46,10 @@
#define SVA SVA1
#define WREL WREL1
#define WTIM WTIM1
#define TRC TRC1
//#else
#else
#define ACKD ACKD0
#define ACKE ACKE0
@ -67,7 +77,7 @@
#define WREL WREL0
#define WTIM WTIM0
//#endif
#endif
#endif
@ -100,9 +110,22 @@ __interrupt void int_iic_ctr(){
return;
}
// 読み出し終了
if( !ACKD ){
LREL = 1;
state = IIC_IDLE;
SPIE = 0;
LREL = 1;
rtc_unlock();
// IRQレジスタリードで、割り込みピンの設定
IRQ0_neg;
if(! (( vreg_ctr[ VREG_C_IRQ0 ] == 0 )
&& ( vreg_ctr[ VREG_C_IRQ1 ] == 0 )
&& ( vreg_ctr[ VREG_C_IRQ2 ] == 0x02 )) ){ // 暫定
IRQ0_ast;
}
return;
}
@ -111,8 +134,8 @@ __interrupt void int_iic_ctr(){
case( IIC_IDLE ):
// 自局呼び出しに応答。
// 初期化など
WREL = 1; // ウェイト解除
SPIE = 1;
WREL = 1; // ウェイト解除
state = IIC_RCV_REG_ADRS;
break;
@ -126,36 +149,38 @@ __interrupt void int_iic_ctr(){
break;
case( IIC_TX_OR_RX ):
if( TRC ){
// if( STD ){
// if( TRC ){ // 送信方向フラグ
if( STD ){ // スタートコンディション検出フラグ
// リードされる
if( COI ){
if( COI ){ // アドレス一致フラグ
state = IIC_TX;
// no break, no return //
}else{
// リスタートで違うデバイスが呼ばれた!
WREL = 1; // ウェイト解除?
state = IIC_IDLE; // 終了処理
SPIE = 0;
LREL = 1; // ウェイト解除?
return;
}
}else{
state = IIC_RX;
state = IIC_RX; // データ1バイト受信の割り込みだった
// no break, no return //
}
// no break; //
default:
if( state == IIC_TX ){
if( state == IIC_TX ){ // 送信
IICA = trx_buf;
vreg_ctr_after_read( reg_adrs ); // 読んだらクリアなどの処理
}else{
// RX
trx_buf = IICA;
WREL = 1;
vreg_ctr_write( reg_adrs, trx_buf );
WREL = 1;
}
reg_adrs += 1;
reg_adrs += 1;
// reg_adrs_internal = adrs_table_ctr_ext2int( reg_adrs );
if( state == IIC_TX ){
trx_buf = vreg_ctr_read( reg_adrs );
trx_buf = vreg_ctr_read( reg_adrs );
// temp = vreg_ctr[ reg_adrs ];
}
break;

View File

@ -65,11 +65,14 @@ u8 iic_mcu_bus_status; //
======================================================== */
u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ){
u8 dat;
if( iic_mcu_initialized == 0 ){
#ifdef _debug_
iic_mcu_start();
#else
while(1){};
#endif
}
while( iic_mcu_busy ){
NOP();
@ -183,7 +186,6 @@ err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8* dest ){
IICIF10 = 0;
iic_mcu_busy = 0;
return( ERR_SUCCESS );
}
@ -205,13 +207,13 @@ err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ){
while(1){};
#endif
}
while( iic_mcu_busy ){
NOP();
}
while( iic_mcu_busy ){
NOP();
}
iic_mcu_busy = 1;
#if 0
temp = dat;
return( iic_mcu_write( SLA, adrs, 1, &temp ) );
temp = dat;
return( iic_mcu_write( SLA, adrs, 1, &temp ) );
}
#else
// スタートコンディションとスレーブの呼び出し...
@ -267,48 +269,48 @@ err iic_mcu_write( u8 slave, u8 adrs, u8 len, u8* src ){
return( 3 );
}
//*/
iic_mcu_busy = 1;
// スタートコンディションとスレーブの呼び出し...
IICMK10 = 1;
if( iic_mcu_call_slave( slave ) != 0 ){
iic_mcu_busy = 0;
EI();
return( ERR_NAK );
}
if( !iic_mcu_wo_dma ){
// DMAを使用する通常
if( !iic_mcu_wo_dma ){
// DMAを使用する通常
// レジスタアドレスを送り、データの準備
memcpy( iic_send_work, src, 4 ); //バッファとして4バイトしか用意して無いため。
// DMAセット
while( DST1 ){;};
// レジスタアドレスを送り、データの準備
memcpy( iic_send_work, src, 4 ); //バッファとして4バイトしか用意して無いため。
// DMAセット
while( DST1 ){;};
DEN1 = 1;
DSA1 = (u8)( &SIO10 );
DRA1 = (u16)iic_send_work;
DBC1 = len;
DMC1 = DRS | 8; // RAM -> SFR, 8bit, IRQ, IIC10
DEN1 = 1;
DSA1 = (u8)( &SIO10 );
DRA1 = (u16)iic_send_work;
DBC1 = len;
DMC1 = DRS | 8; // RAM -> SFR, 8bit, IRQ, IIC10
DMAIF1 = 0;
DMAMK1 = 0;
DST1 = 1;
DMAIF1 = 0;
DMAMK1 = 0;
DST1 = 1;
SIO10 = adrs; // 書きっぱなし! 割り込みが発生してDMAスタート
// 残りは割り込みルーチン内で
}else{
// DMAを使用しない //
SIO10 = adrs; // 書きっぱなし! 割り込みが発生してDMAスタート
// 残りは割り込みルーチン内で
}else{
// DMAを使用しない //
// レジスタアドレスの送信
IICIF10 = 0;
SIO10 = adrs;
// レジスタアドレスの送信
IICIF10 = 0;
SIO10 = adrs;
IICMK10 = 0;
iic_send_wo_dma_len = len;
p_iic_send_wo_dma_dat = src;
// 残りは割り込みルーチン内で
}
return( ERR_SUCCESS );
IICMK10 = 0;
iic_send_wo_dma_len = len;
p_iic_send_wo_dma_dat = src;
// 残りは割り込みルーチン内で
}
return( ERR_SUCCESS );
}
@ -320,10 +322,14 @@ err iic_mcu_write( u8 slave, u8 adrs, u8 len, u8* src ){
DMA転送が終わっただけでI2Cの転送は終わってません
======================================================== */
__interrupt void int_dma1(){
u8 hoge;
hoge = IICIF10;
DMAMK1 = 1;
DEN1 = 0;
IICMK10 = 0;
while( SSR02 & ( 1 << TSF0 )){;}
while(( SSR02 & TSF0 ) != 0 ){
NOP();
}
// 最後のバイト転送後、I2C割り込みが発生する
}
@ -333,7 +339,6 @@ __interrupt void int_dma1(){
IIC MCUのバイト送出完了割り込み
======================================================== */
__interrupt void int_iic10(){
EI();
if( iic_mcu_wo_dma ){
// DMA使用せず、転送途中
if( iic_send_wo_dma_len != 0 ){

View File

@ -10,7 +10,9 @@
extern u8 vreg_twl[];
#ifdef _MCU_BSR_
//#ifdef _MODEL_WM0_
#ifdef 1
// ワーキングモデルはI2Cが逆
#define ACKD ACKD0
@ -39,7 +41,7 @@ extern u8 vreg_twl[];
#define WREL WREL0
#define WTIM WTIM0
//#else
#else
#define ACKD ACKD1
#define ACKE ACKE1
@ -67,7 +69,7 @@ extern u8 vreg_twl[];
#define WREL WREL1
#define WTIM WTIM1
//#endif
#endif
#endif
#ifndef _MCU_BSR_

View File

@ -64,6 +64,9 @@ void LED_init(){
#ifdef _MODEL_WM0_
TOL0 = 0b0000000000000010;
#else
#ifdef _MODEL_TS0_
TOL0 = 0b0000000000000110;
#endif
TOL0 = 0b0000000000000110;
#endif
TO0 = 0; // タイマー動作中で、タイマー出力にしてないときのピンのラッチ。タイマー出力を使わないなら0

View File

@ -58,7 +58,7 @@ void hdwinit(void);
void power_save();
extern void main_loop();
extern u8 chk_bootCluster();
extern void chk_bootCluster();
// ========================================================

View File

@ -214,7 +214,7 @@ void PM_init(){
iic_mcu_write( IIC_SLA_BT_GAUGE,
BT_GAUGE_REG_MODE,
2,
BT_GAUGE_QUICK_START[0] );
BT_GAUGE_QUICK_START );
// 電池固有パラメータの書き込み下準備
iic_mcu_write( IIC_SLA_BT_GAUGE,
@ -611,7 +611,6 @@ task_interval tsk_batt(){
// 電源周りのステータスが変化?
set_bit( PM_EXTDC, vreg_ctr[ VREG_C_STATUS0 ], REG_BIT_POW_SUPPLY );
set_bit( !BT_CHG_ERR_n, vreg_ctr[ VREG_C_STATUS0 ], REG_BIT_BATT_CHARGE_ERR );
set_bit( !BT_CHG_n, vreg_ctr[ VREG_C_STATUS0 ], REG_BIT_BATT_CHARGE );
// →割り込み。miscの中でよろしくやってくれている。

View File

@ -24,6 +24,9 @@ bit renge_task_interval_run_force;
extern task_info tasks[];
#include "..\bsr_system.h"
extern system_status_ system_status;
//******************************************************************************
static void renge_task_immed_init();
static void renge_task_immed_del( u8 );
@ -268,10 +271,21 @@ static void renge_task_immed_del( u8 task_id ){
**************************************/
err renge_task_immed_run(){
u8 task_id;
u8 i;
do{
i = 0;
for( task_id = 0; task_id < IMMED_RSV_TASKS_NUM; task_id += 1 ){
if( tasks_immed[ task_id ] != 0 ){
if( tasks_immed[ task_id ]() == ERR_FINISED ){
// ƒgƒ‰ƒbƒv
if( system_status.pwr_state == OFF_TRIG ){
u8 i = 0;
while( i == 0 ){
NOP();
}
}
DI();
renge_task_immed_del( task_id );
EI();
@ -279,6 +293,15 @@ err renge_task_immed_run(){
}
}
for( task_id = 0; task_id < IMMED_RSV_TASKS_NUM; task_id += 1 ){
if( tasks_immed[ task_id ] != 0 ){
i += 1;
}
}
}while( i != 0 );
#if 0
for( task_id = 0; task_id < IMMED_RSV_TASKS_NUM; task_id += 1 ){

View File

@ -112,7 +112,7 @@ err firm_update(){
0x4800 - 0x7FFF ( 18 - 27)
*/
p_rom = (u8*)0x2000;
p_rom = (__far u8*)0x2000;
// 書き込み先ブロックの数だけ繰り返す
for( target_block = ( FIRM_TOP + FIRM_SIZE );
target_block < ( FIRM_TOP + FIRM_SIZE + FIRM_SIZE );
@ -263,7 +263,7 @@ err firm_restore(){
0x2000 - 0x47FF ( 8 - 17)
*/
p_rom = (u8*)0x4800;
p_rom = (__far u8*)0x4800;
// 転送先ブロックの数だけ繰り返す
for( target_block = FIRM_TOP;
target_block <= UPDATE_BLOCK_LAST;
@ -310,7 +310,7 @@ err firm_restore(){
}
u8 chk_bootCluster(){
void chk_bootCluster(){
u8 data_buffer[ SELF_UPDATE_BUFF_SIZE ];
u8 err;

View File

@ -32,7 +32,7 @@ task_interval tsk_misc_stat(){
SHELL_CLOSE_P = 1;
set_bit( EXT_OPT_DET, vreg_ctr[ VREG_C_STATUS0 ], REG_BIT_EXT_OPT_LOCK );
set_bit( SHELL_CLOSE, vreg_ctr[ VREG_C_STATUS0 ], REG_BIT_SHELL_CLOSE );
set_bit( SHELL_CLOSE, vreg_ctr[ VREG_C_STATUS0 ], REG_BIT_ST_SHELL_CLOSED );
SHELL_CLOSE_P = 0;
// ステータスレジスタ関係 → 割り込み //
@ -48,7 +48,7 @@ task_interval tsk_misc_stat(){
break;
case SLEEP_TRIG:
case SLEEP:
if( (( state_old & REG_BIT_SHELL_CLOSE ) != 0 )
if( (( state_old & REG_BIT_ST_SHELL_CLOSED ) != 0 )
&& ( !SHELL_CLOSE ) ){
// 蓋開けた のみ通知
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_STAT_CHANGE ) == 0 ){
@ -101,7 +101,7 @@ task_interval tsk_debug2(){
str[1] = vreg_ctr[ VREG_C_STATUS0 ];
str[0] = vreg_ctr[ VREG_C_ACC_YH ];
iic_mcu_write( IIC_SLA_DBG_MONITOR, 0, 4, str );
iic_mcu_write( IIC_SLA_DBG_MONITOR, 0, 4, &str );
// 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 ] );
@ -226,14 +226,14 @@ task_status_immed do_command0(){
}
// 液晶電源など
if( vreg_ctr[ VREG_C_COMMAND0 ] & REG_BIT_BL_ON ){
if( vreg_ctr[ VREG_C_COMMAND0 ] & REG_BIT_CMD_BL_ON ){
renge_task_immed_add( tski_PM_BL_on );
}else if( vreg_ctr[ VREG_C_COMMAND0 ] & REG_BIT_BL_OFF ){
}else if( vreg_ctr[ VREG_C_COMMAND0 ] & REG_BIT_CMD_BL_OFF ){
renge_task_immed_add( tski_PM_BL_off );
}
if( vreg_ctr[ VREG_C_COMMAND0 ] & REG_BIT_LCD_ON ){
if( vreg_ctr[ VREG_C_COMMAND0 ] & REG_BIT_CMD_LCD_ON ){
renge_task_immed_add( tski_PM_LCD_on );
}else if( vreg_ctr[ VREG_C_COMMAND0 ] & REG_BIT_LCD_OFF ){
}else if( vreg_ctr[ VREG_C_COMMAND0 ] & REG_BIT_CMD_LCD_OFF ){
renge_task_immed_add( tski_PM_LCD_off );
}

View File

@ -164,8 +164,8 @@ task_interval tsk_sys(){
}
#endif
vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] = 0x00; // デバッグ目的
// vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] = 0x01; // デバッグ目的
// vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] = 0x00; // デバッグ目的
vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] = 0x01; // デバッグ目的
renge_task_immed_add( acc_hosu_set );
system_status.poweron_reason = PWSW;

View File

@ -222,13 +222,14 @@ void vreg_ctr_after_read( u8 adrs ){
case( VREG_C_IRQ1 ): vreg_ctr[ VREG_C_IRQ1 ] = 0; break;
case( VREG_C_IRQ2 ): vreg_ctr[ VREG_C_IRQ2 ] = 0x02; break; // 暫定
}
/*
if(( adrs == VREG_C_IRQ0 ) || ( adrs == VREG_C_IRQ1 ) || ( adrs == VREG_C_IRQ2 )){
IRQ0_neg;
if(! (( vreg_ctr[ VREG_C_IRQ0 ] == 0 ) && ( vreg_ctr[ VREG_C_IRQ1 ] == 0 ) && ( vreg_ctr[ VREG_C_IRQ2 ] == 0x02 )) ){ // 暫定
IRQ0_ast;
}
}
*/
return;
}

View File

@ -2,14 +2,22 @@
#define __vreg_ctr__
#include "config.h"
#if MCU_VER_MINOR <= 3
#include "vreg_ctr_03.h"
#else
#define REG_BIT_RTC_BLACKOUT 0b00000001
#define REG_BIT__SYS_MODE0 0b01000000
#define REG_BIT_MCU_FIRMBROKEN 0b10000000
// VREG_C_IRQ0
#define REG_BIT_VR_SNDVOL_CHANGE ( 1 << 7 )
#define REG_BIT_VR_TUNE_CHANGE ( 1 << 6 )
#define REG_BIT_VR_TUNE_CHANGE ( 1 << 7 )
#define REG_BIT_VR_SNDVOL_CHANGE ( 1 << 6 )
#define REG_BIT_SW_TUNE_CLICK ( 1 << 5 )
#define REG_BIT_SW_WIFI_CLICK ( 1 << 4 )
#define REG_BIT_SW_POW_HOLD ( 1 << 3 )
@ -18,34 +26,52 @@
#define REG_BIT_SW_HOME_CLICK ( 1 << 0 )
// VREG_C_IRQ1
#define REG_BIT_TWL_OFF_REQ ( 1 << 7 )
#define REG_BIT_TWL_RESET_REQ ( 1 << 6 )
#define REG_BIT_WDT_DET ( 1 << 5 )
#define REG_BIT_ACC_DAT_RDY ( 1 << 4 )
#define REG_BIT_ACC_ACK ( 1 << 3 )
#define REG_BIT_RTC_ALARM ( 1 << 2 )
#define REG_BIT_BT_REMAIN ( 1 << 1 )
#define REG_BIT_STAT_CHANGE ( 1 << 0 )
// VREG_C_IRQ2
#define REG_BIT_BT_CHG_START ( 1 << 7 )
#define REG_BIT_BT_CHG_STOP ( 1 << 6 )
#define REG_BIT_BT_DC_CONNECT ( 1 << 5 )
#define REG_BIT_BT_DC_DISC ( 1 << 4 )
#define REG_BIT_EXTOPT_OPEN ( 1 << 3 )
#define REG_BIT_EXTOPT_LOCK ( 1 << 2 )
#define REG_BIT_SHELL_OPEN ( 1 << 1 )
#define REG_BIT_SHELL_CLOSE ( 1 << 0 )
// VREG_C_IRQ3
#define REG_BIT_TWL_BL_ON ( 1 << 7 )
#define REG_BIT_TWL_BL_OFF ( 1 << 6 )
#define REG_BIT_TWL_OFF_REQ ( 1 << 5 )
#define REG_BIT_TWL_RESET_REQ ( 1 << 4 )
#define REG_BIT_LCD_ON ( 1 << 3 )
#define REG_BIT_LCD_OFF ( 1 << 2 )
#define REG_BIT_BL_ON ( 1 << 1 )
#define REG_BIT_BL_OFF ( 1 << 0 )
// VREG_C_STATUS0,
#define REG_BIT_BATT_CHARGE_ERR ( 1 << 5 )
#define REG_BIT_LCD_POW ( 1 << 7 )
#define REG_BIT_BL ( 1 << 6 )
// #define REG_BIT_BATT_CHARGE_ERR ( 1 << 5 )
#define REG_BIT_BATT_CHARGE ( 1 << 4 )
#define REG_BIT_POW_SUPPLY ( 1 << 3 )
#define REG_BIT_EXT_OPT_LOCK ( 1 << 2 )
#define REG_BIT_SHELL_CLOSE ( 1 << 1 )
#define REG_BIT_BL ( 1 << 6 )
#define REG_BIT_LCD_POW ( 1 << 7 )
#define REG_BIT_ST_SHELL_CLOSED ( 1 << 1 )
// VREG_C_COMMAND0
#define REG_BIT_CMD_LCD_ON ( 1 << 7 )
#define REG_BIT_CMD_LCD_OFF ( 1 << 6 )
#define REG_BIT_CMD_BL_ON ( 1 << 5 )
#define REG_BIT_CMD_BL_OFF ( 1 << 4 )
#define REG_BIT_FCRAM_RESET_REQ ( 1 << 3 )
#define REG_BIT_RESET2_REQ ( 1 << 2 )
#define REG_BIT_RESET1_REQ ( 1 << 1 )
#define REG_BIT_OFF_REQ ( 1 << 0 )
#define REG_BIT_BL_ON ( 1 << 5 )
#define REG_BIT_BL_OFF ( 1 << 4 )
#define REG_BIT_LCD_ON ( 1 << 7 )
#define REG_BIT_LCD_OFF ( 1 << 6 )
// VREG_C_COMMAND1
#define REG_BIT_SEND_TWL_BATT_EMPTY ( 1 << 4 )
@ -56,8 +82,14 @@
// VREG_C_WIFI_LED
#define REG_BIT_WIFI_BLINK_ENA ( 1 << 1 )
#define REG_BIT_WIFI_ON ( 1 << 0 )
enum{
WIFI_LED_OFF = 0,
WIFI_LED_ON,
WIFI_LED_TXAUTO,
WIFI_LED_PTN0,
WIFI_LED_PTN1
};
// command2
@ -97,92 +129,93 @@ extern u8 vreg_ctr[];
/*============================================================================*/
enum VREG_C{ // 未定義アドレスへ書き込んだ際の動作は不定
VREG_C_IRQ0,
VREG_C_IRQ1,
VREG_C_IRQ2,
VREG_C_STATUS0,
VREG_C_STATUS1,
VREG_C_IRQ_MASK0,
VREG_C_IRQ_MASK1,
VREG_C_IRQ_MASK2,
VREG_C_TUNE = 0x08,
VREG_C_SND_VOL,
VREG_C_BT_REMAIN,
VREG_C_COMMAND0,
VREG_C_COMMAND1,
VREG_C_LED_BRIGHT,
VREG_C_LED_POW_ILUMI,
VREG_C_WIFI_LED,
VREG_C_CAM_LED,
VREG_C_MCU_VER_MAJOR = 0x11,
VREG_C_MCU_VER_MAJOR = 0x00,
VREG_C_MCU_VER_MINOR,
VREG_C_MCU_STATUS,
VREG_C_VCOM_T,
VREG_C_VCOM_T = 0x03,
VREG_C_VCOM_B,
VREG_C_PM_INFO, // ¢Žg—p
VREG_C_BT_INFO, // ¢Žg—p
VREG_C_DBG1 = 0x05,
VREG_C_DBG2,
VREG_C_DBG3,
VREG_C_TUNE = 0x08,
VREG_C_SND_VOL,
VREG_C_BT_REMAIN,
VREG_C_BT_TEMP,
VREG_C_RESERVED1,
VREG_C_STATUS = 0x0F,
VREG_C_RTC_SEC = 0x1A,
VREG_C_IRQ0 = 0x10,
VREG_C_IRQ1,
VREG_C_IRQ2,
VREG_C_IRQ3,
VREG_C_IRQ_MASK0 = 0x18,
VREG_C_IRQ_MASK1,
VREG_C_IRQ_MASK2,
VREG_C_IRQ_MASK3,
VREG_C_COMMAND0 = 0x20,
VREG_C_COMMAND1,
VREG_C_FREE0 = 0x24,
VREG_C_FREE1,
VREG_C_FREE2,
VREG_C_FREE3,
VREG_C_LED_BRIGHT = 0x28,
VREG_C_LED_POW_ILUMI,
VREG_C_WIFI_LED,
// LED0
VREG_C_CAM_LED,
// LED1
VREG_C_RTC_SEC = 0x30,
VREG_C_RTC_MIN,
VREG_C_RTC_HOUR,
VREG_C_RTC_YOBI,
VREG_C_RTC_DAY,
VREG_C_RTC_MONTH,
VREG_C_RTC_YEAR,
VREG_C_RESERVED2, // ¢Žg—p
VREG_C_RTC_ALARM_MIN,
VREG_C_RTC_COMP,
VREG_C_RTC_ALARM_MIN = 0x38,
VREG_C_RTC_ALARM_HOUR,
VREG_C_RTC_ALARM_DAY,
VREG_C_RTC_ALARM_MONTH,
VREG_C_RTC_ALARM_YEAR,
VREG_C_RTC_COMP,
VREG_C_ACC_CONFIG_HOSU = 0x28,
VREG_C_ACC_CONFIG,
VREG_C_ACC_CONFIG = 0x40,
VREG_C_ACC_R_ADRS,
VREG_C_RESERVED5,
VREG_C_RESERVED5,
VREG_C_ACC_W_ADRS,
VREG_C_ACC_W_BUF,
VREG_C_ACC_XL,
VREG_C_ACC_XL = 0x45,
VREG_C_ACC_XH,
VREG_C_ACC_YL,
VREG_C_ACC_YH,
VREG_C_ACC_ZL,
VREG_C_ACC_ZH,
VREG_C_ACC_HOSU_L = 0x34,
VREG_C_ACC_HOSU_L = 0x4B,
VREG_C_ACC_HOSU_M,
VREG_C_ACC_HOSU_H,
VREG_C_ACC_HOSU_HIST,
VREG_C_DIAG,
VREG_C_FREE0 = 0x39,
VREG_C_FREE1,
VREG_C_FREE2,
VREG_C_FREE3,
VREG_C_DBG0,
VREG_C_DBG1,
VREG_C_DBG2,
VREG_C_DBG3,
VREG_C_ACC_HOSU_HIST = 0x4E,
VREG_C_ENDMARK_
};
/*
VREG_C_PM_INFO, // ¢Žg—p
VREG_C_BT_INFO, // ¢Žg—p
*/
#define VREG_C_ACC_CONFIG_HOSU VREG_C_ACC_CONFIG
#endif
/*============================================================================*/
void vreg_ctr_init();

View File

@ -1,18 +1,6 @@
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" -cF100964 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -qcvjl1wt -sainter_asm -zp -w2 -no rtc.c
user_define.h(13) : CC78K0R warning W0816: Redefined macro name '_debug_'
bsr_system.h(30) : CC78K0R warning W0851: Data aligned in 'struct tag'
renge\renge_defs.h(47) : CC78K0R warning W0851: Data aligned in 'struct tag'
rtc.c(134) : CC78K0R warning W0851: Data aligned in '@@DATA section'
Compilation complete, 0 error(s) and 4 warning(s) found.
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -cF100964 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\rtc.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_k0r.lmf "..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r\s0rm.rel" -go85h,0FC00h,1024 -gi0FFFFFFFFFFFFFFFFFFFFh -pbsr_k0r.map -nkd -kp -gb6EFBFFh -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
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_k0r.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) : 4
Build Total error(s) : 0 Total warning(s) : 0

View File

@ -22,7 +22,7 @@ SubClock=None
[Mapping]
Count=0
[Main]
Geometry=286, 286, 1200, 882
Geometry=242, 242, 1200, 882
Window=Max
MDI_MAX=OFF
Button=ON
@ -78,10 +78,10 @@ Symbol Type=OFF
Language=C
Kanji=SJIS
[Source]
Geometry=441, 2, 691, 1110
Geometry=0, 0, 832, 980
Window=Normal
DispStart=121
CaretPos=161,0
DispStart=120
CaretPos=121,0
Mode=Normal
DispFile=
Address1=
@ -140,25 +140,17 @@ SaveStart=
SaveEnd=
Accumulative=ON
[Source1]
Geometry=75, 75, 691, 1035
Geometry=75, 75, 832, 980
Window=Normal
DispStart=103
CaretPos=104,0
DispStart=170
CaretPos=171,0
Mode=Normal
DispFile=vreg_ctr.c
Accumulative=ON
[Source2]
Geometry=100, 100, 691, 1010
Window=Normal
DispStart=58
CaretPos=59,0
Mode=Normal
DispFile=rtc.c
DispFile=tasks_sys.c
Accumulative=ON
[Assemble]
Geometry=0, 0, 0, 0
Window=Hide
DispStart=864688128
DispStart=864338944
CaretPos=0,0
Address1=
Address2=
@ -201,7 +193,7 @@ SaveRange=Screen
SaveStart=
SaveEnd=
[Memory]
Geometry=0, 0, 550, 400
Geometry=0, 0, 0, 0
Window=Hide
Boundary=0
Format=Hex
@ -266,13 +258,13 @@ Destination=0
[I/O Port]
Line=0
[Stack]
Geometry=50, 50, 400, 300
Window=Normal
Boundary=13762687
Geometry=0, 0, 0, 0
Window=Hide
Boundary=0
Mode=Proper
[Sfr]
Geometry=50, 50, 400, 985
Window=Normal
Geometry=0, 0, 0, 0
Window=Hide
Address1=
Address2=
Address3=
@ -289,13 +281,13 @@ Address13=
Address14=
Address15=
Address16=
Boundary=202, 89
Boundary=0, 0
Mode=Hex
Attribute=Show
Sort=Unsort
Pickup=OFF
SelectSort=Address
Last Name=IICBSY
Last Name=
Line=506
L1=P0
L2=P1
@ -804,9 +796,9 @@ L504=C1EN
L505=C1RVM
L506=C1VRE
[Local Variable]
Geometry=1194, 857, 400, 248
Window=Normal
Boundary=13041851
Geometry=0, 0, 0, 0
Window=Hide
Boundary=0
Mode=Proper
[Trace View]
Geometry=0, 0, 0, 0
@ -856,22 +848,22 @@ SaveRange=Screen
SaveStart=
SaveEnd=
[Register]
Geometry=25, 25, 250, 400
Geometry=0, 0, 0, 0
Window=Hide
Mode=Hex
Boundary=62
Pickup=OFF
Name=Functional
Register Bank=0
RP0=1
RP1=1
RP2=1
RP3=1
PC=1
SP=1
PSW=1
ES=1
CS=1
RP0=3
RP1=3
RP2=3
RP3=3
PC=3
SP=3
PSW=3
ES=3
CS=3
[Event Manager]
Geometry=0, 0, 0, 0
Window=Hide
@ -884,7 +876,17 @@ Manager=ON
Sort by=Unsort
Detail=OFF
Last Name=
Count=0
Name0=syste001
Status0=W
Access Size0=B
Address Range0=EQ
Address0=<system_status.pwr_state> - <>
Mask Address0=00000000
Data Range0=NC
Data0=<00000000> - <00000000>
Mask Data0=FFFFFFFF
Pass0=0001
Count=1
[Event Link]
Geometry=0, 0, 0, 0
Window=Hide
@ -900,7 +902,10 @@ Manager=ON
Sort by=Unsort
Detail=OFF
Last Name=
Count=0
Name0=syste002
Element0=syste001
Set0=ON
Count=1
[Trace]
Geometry=0, 0, 0, 0
Window=Hide
@ -947,121 +952,38 @@ Detail=OFF
Last Name=
Count=0
[Variable]
Geometry=1134, 10, 440, 846
Geometry=1148, 7, 440, 686
Window=Normal
Boundary=13762700
0=.temp,P,N,A,+,1
1=.ALARMWM,P,S,A,+,1
2=.ALARMWH,P,S,A,+,1
3=.ALARMWW,P,S,A,+,1
4=.SEC,P,S,A,+,1
5=.MIN,P,S,A,+,1
6=.HOUR,P,S,A,+,1
7=.DAY,P,S,A,+,1
8=.MONTH,P,S,A,+,1
9=.YEAR,P,S,A,+,1
10=.rtc_lock,P,N,A,+,1
11=.rtc_dirty,P,N,A,+,1
12=.rtcc1,P,S,A,+,1
13=.WAFG,P,S,A,+,1
14=.RIFG,P,S,A,+,1
15=.system_status.poweron_reason,P,N,A,+,1
16=.system_status.pwr_state,P,N,A,+,1
17=.PM15,B,S,A,+,1
18=.PU14,B,S,A,+,1
19=.P15,B,S,A,+,1
20=.PM14,B,S,A,+,1
21=.P14,B,S,A,+,1
22=.PM12,B,S,A,+,1
23=.PU12,B,S,A,+,1
24=.P12,B,S,A,+,1
25=.PM8,B,S,A,+,1
26=.P8,B,S,A,+,1
27=.PM7,B,S,A,+,1
28=.PU7,B,S,A,+,1
29=.P7,B,S,A,+,1
30=.PM6,B,S,A,+,1
31=.P6,B,S,A,+,1
32=.PM5,B,S,A,+,1
33=.PU5,B,S,A,+,1
34=.P5,B,S,A,+,1
35=.PM4,B,S,A,+,1
36=.PU4,B,S,A,+,1
37=.P4,B,S,A,+,1
38=.PM3,B,S,A,+,1
39=.PU3,B,S,A,+,1
40=.P3,B,S,A,+,1
41=.PM2,B,S,A,+,1
42=.P2,B,S,A,+,1
43=.PM1,B,S,A,+,1
44=.PU1,B,S,A,+,1
45=.P1,B,S,A,+,1
46=.PU0,B,S,A,+,1
47=.PM0,B,S,A,+,1
48=.P0,B,S,A,+,1
49=.lock_del,P,N,A,+,1
50=.lock_add,P,N,A,+,1
51=.IICAIF,P,S,A,+,1
52=.vreg_ctr,P,N,A,+,1
53=.SPD,P,S,A,+,1
54=.state,P,N,A,+,1
55=.IICAIF,P,S,A,+,1
56=.tasks_immed,P,N,A,+,1
57=.task_immed_index,P,N,A,+,1
58=.k,P,N,A,+,1
59=.rtc_work,P,N,A,+,1
60=.rtc_dirty,P,N,A,+,1
Line=61
Boundary=16777386
0=.system_status.pwr_state,P,N,A,+,1
1=.SMC,P,S,A,+,1
Line=2
[Quick Watch]
0=SEC,P,A,1
1=MIN,P,A,1
2=HOUR,P,A,1
3=DAY,P,A,1
4=MONTH,P,A,1
5=YEAR,P,A,1
6=ALARMWM,P,A,1
7=ALARMWH,P,A,1
8=ALARMWW,P,A,1
9=vreg_ctr,P,A,1
10=temp,P,A,1
11=IICAIF,P,A,1
12=state,P,A,1
13=SPD,P,A,1
14=rtc_dirty,P,A,1
15=rtc_work,P,A,1
0=SMC,P,A,1
1=system_status.pwr_state,P,A,1
2=
3=
4=
5=
6=
7=
8=
9=
10=
11=
12=
13=
14=
15=
[Software Break]
Geometry=0, 0, 0, 0
Window=Hide
Width=150 30 200 100
Name0=Swb00001
Address0=pm.c#_tski_PM_LCD_on+0x0
Name0=Swb00002
Address0=tasks_sys.c#_tsk_sys+0xce
Window0=ASM
Status0=ON
Name1=Swb00002
Address1=pm.c#_tski_PM_BL_on+0x0
Window1=ASM
Status1=ON
Name2=Swb00003
Address2=pm.c#_tski_PM_BL_off+0x0
Window2=ASM
Status2=ON
Name3=Swb00004
Address3=pm.c#_tski_PM_LCD_off+0x0
Window3=ASM
Status3=ON
Name4=Swb00005
Address4=accero.c#_tsk_cbk_accero+0x7
Window4=ASM
Status4=ON
Name5=Swb00006
Address5=tasks.c#_tsk_soft_int+0x10
Window5=ASM
Status5=ON
Name6=Swb00007
Address6=i2c_ctr.c#_int_iic_ctr+0xa6
Window6=ASM
Status6=ON
Count=7
Count=1
[Reset]
Debugger=ON
Symbol=OFF
@ -1070,7 +992,7 @@ Target CPU=OFF
OnClick Software Break=ON
TraceTimetag=x1
Redraw=500
Break When Access Function=OFF
Break When Access Function=ON
Break When Access Whole=Select
Verify=ON
Break Sound=ON

View File

@ -534,32 +534,6 @@ DefaultMode2=1
DefaultMode3=1
DefaultMode4=1
DefaultMode5=1
[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
[Options.CC78K0R 0]
Version=210
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
@ -1031,3 +1005,30 @@ ToolSetName=(
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|V3.60
[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=vreg_ctr_03.h

View File

@ -6,13 +6,18 @@ FrameCX=1375
FrameCY=1183
OpenFile1=vreg_ctr.c,0,260,12,1504,769,120,228,0,0
OpenFile2=pm.c,0,66,66,1310,823,0,343,0,0
OpenFile3=tasks.c,0,132,132,1376,889,35,147,36,0
OpenFile4=ProjectWindow
PrjPos=0,6,758,2,252
OpenFile3=rtc.c,0,198,198,1442,955,3,130,0,0
OpenFile4=inter_asm\i2c_ctr.asm,0,242,242,1486,999,4,269,8,0
OpenFile5=renge\renge.c,0,176,176,1420,933,7,213,43,0
OpenFile6=OutputWindow
OpenFile6=led.c,0,286,286,1530,1043,30,68,30,0
OpenFile7=i2c_ctr.c,0,154,299,1398,1056,0,72,6,0
OpenFile8=i2c_twl.c,0,483,300,1727,1057,0,72,0,0
OpenFile9=tasks.c,0,132,132,1376,889,47,104,36,0
OpenFile10=i2c_mcu.c,0,330,330,1204,1087,0,331,0,0
OpenFile11=ProjectWindow
PrjPos=0,6,758,2,252
OpenFile12=OutputWindow
OutputPos=0,704,1089,701,1562
OpenFile7=i2c_ctr.c,0,154,299,1398,1056,0,220,0,0
ActivePRJ=yav_mcu_bsr.prj
[ProjectWindow]
ProjectWindowDispType=0

View File

@ -16,7 +16,7 @@ T=4aae01f1
3=led.h
4=pm.h
[i2c_ctr.c]
T=4aae394d
T=4aaf55db
1=incs.h
[main.c]
T=4a9e6e71
@ -31,22 +31,22 @@ T=4aa4d76e
T=4a9e6e71
1=incs_loader.h
[i2c_mcu.c]
T=4aa62b41
T=4aaf5bf7
1=incs.h
2=i2c_mcu.h
[i2c_twl.c]
T=4aa76932
T=4aaf55db
1=incs.h
2=i2c_twl_defs.h
[ini_VECT.c]
T=4aae33c6
1=config.h
[led.c]
T=4aae0405
T=4aaf5378
1=incs.h
2=led.h
[rtc.c]
T=4aaddfa3
T=4aaee84a
1=incs.h
[vreg_ctr.c]
T=4aadf96a
@ -62,7 +62,7 @@ T=4aa8a1dd
2=jhl_defs.h
3=vreg_twl.h
[tasks.c]
T=4aae1647
T=4aaf56f5
1=incs.h
2=renge\renge.h
3=pm.h
@ -73,7 +73,7 @@ T=4aadf487
3=pm.h
4=led.h
[renge\renge.c]
T=4aae35f4
T=4aae3b80
1=renge\renge_defs.h
2=renge\renge_task_intval.h
3=renge\renge_task_immediate.h
@ -112,7 +112,7 @@ T=4a9e6e71
T=4aae0407
1=config.h
[config.h]
T=4aadef58
T=4aaf54ba
[bsr_system.h]
T=4aaddbc7
1=jhl_defs.h
@ -143,7 +143,7 @@ T=4a7c0777
[pm.h]
T=4aa7a30d
[rtc.h]
T=4aadcdb0
T=4aaee839
[adc.h]
T=4aa74fb6
1=jhl_defs.h