diff --git a/trunk/bsr_system.h b/trunk/bsr_system.h index ab74b15..4729061 100644 --- a/trunk/bsr_system.h +++ b/trunk/bsr_system.h @@ -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; diff --git a/trunk/i2c_ctr.c b/trunk/i2c_ctr.c index 7117f3d..22d04cb 100644 --- a/trunk/i2c_ctr.c +++ b/trunk/i2c_ctr.c @@ -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; diff --git a/trunk/i2c_mcu.c b/trunk/i2c_mcu.c index 5ec67cc..ece89de 100644 --- a/trunk/i2c_mcu.c +++ b/trunk/i2c_mcu.c @@ -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 ){ diff --git a/trunk/i2c_twl.c b/trunk/i2c_twl.c index 06b60fd..eb69f74 100644 --- a/trunk/i2c_twl.c +++ b/trunk/i2c_twl.c @@ -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_ diff --git a/trunk/led.c b/trunk/led.c index b343d50..9547680 100644 --- a/trunk/led.c +++ b/trunk/led.c @@ -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 diff --git a/trunk/loader.c b/trunk/loader.c index 46f4c19..746c76d 100644 --- a/trunk/loader.c +++ b/trunk/loader.c @@ -58,7 +58,7 @@ void hdwinit(void); void power_save(); extern void main_loop(); -extern u8 chk_bootCluster(); +extern void chk_bootCluster(); // ======================================================== diff --git a/trunk/pm.c b/trunk/pm.c index 1f12802..e4efc9d 100644 --- a/trunk/pm.c +++ b/trunk/pm.c @@ -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の中でよろしくやってくれている。 diff --git a/trunk/renge/renge.c b/trunk/renge/renge.c index 8cd9519..0d8a2d4 100644 --- a/trunk/renge/renge.c +++ b/trunk/renge/renge.c @@ -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 ){ + // トラップ + 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 ){ diff --git a/trunk/self_flash.c b/trunk/self_flash.c index cd9aa54..2b9fca7 100644 --- a/trunk/self_flash.c +++ b/trunk/self_flash.c @@ -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; diff --git a/trunk/tasks.c b/trunk/tasks.c index b290720..f8e172a 100644 --- a/trunk/tasks.c +++ b/trunk/tasks.c @@ -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 ); } diff --git a/trunk/tasks_sys.c b/trunk/tasks_sys.c index 23baa1e..8f9be18 100644 --- a/trunk/tasks_sys.c +++ b/trunk/tasks_sys.c @@ -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; diff --git a/trunk/vreg_ctr.c b/trunk/vreg_ctr.c index c0cd3a3..b4920b0 100644 --- a/trunk/vreg_ctr.c +++ b/trunk/vreg_ctr.c @@ -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; } diff --git a/trunk/vreg_ctr.h b/trunk/vreg_ctr.h index 970eacc..060a925 100644 --- a/trunk/vreg_ctr.h +++ b/trunk/vreg_ctr.h @@ -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, // 未使用 - VREG_C_BT_INFO, // 未使用 + 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, // 未使用 - 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, // 未使用 + VREG_C_BT_INFO, // 未使用 +*/ +#define VREG_C_ACC_CONFIG_HOSU VREG_C_ACC_CONFIG + +#endif /*============================================================================*/ void vreg_ctr_init(); diff --git a/trunk/yav_mcu_bsr.plg b/trunk/yav_mcu_bsr.plg index 1c11520..b4c1368 100644 --- a/trunk/yav_mcu_bsr.plg +++ b/trunk/yav_mcu_bsr.plg @@ -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 diff --git a/trunk/yav_mcu_bsr.pri b/trunk/yav_mcu_bsr.pri index ec2e592..670cdee 100644 --- a/trunk/yav_mcu_bsr.pri +++ b/trunk/yav_mcu_bsr.pri @@ -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= - <> +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 diff --git a/trunk/yav_mcu_bsr.prj b/trunk/yav_mcu_bsr.prj index 4223edd..5ba5caf 100644 --- a/trunk/yav_mcu_bsr.prj +++ b/trunk/yav_mcu_bsr.prj @@ -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 diff --git a/trunk/yav_mcu_bsr.prk b/trunk/yav_mcu_bsr.prk index 903e1d8..74241b0 100644 --- a/trunk/yav_mcu_bsr.prk +++ b/trunk/yav_mcu_bsr.prk @@ -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 diff --git a/trunk/yav_mcu_bsr.sdb b/trunk/yav_mcu_bsr.sdb index 4e7dc0c..ce31ba1 100644 --- a/trunk/yav_mcu_bsr.sdb +++ b/trunk/yav_mcu_bsr.sdb @@ -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