diff --git a/trunk/batt_params.h b/trunk/batt_params.h index e4fd0d0..3b8d542 100644 --- a/trunk/batt_params.h +++ b/trunk/batt_params.h @@ -1,132 +1,94 @@ #ifndef _bt_params_h_ #define _bt_params_h_ +#include "jhl_defs.h" +/* + 電池識別 CTR | SPFL | YBS + 0 ID = 0 maxell ← + 120 1 + 360 2 + 750   3 + 1.3k  4 + 2.7k 5 pana ← + 8.2k  6 +*/ + + +typedef enum +{ + BT_PARAM_CTR_MAXELL = 0, + BT_PARAM_CTR_PANA, + BT_PARAM_SPFL_MAXELL, + BT_PARAM_SPFL_PANA, + BT_PARAM_SHRIMP_MAXELL, + BT_PARAM_SHRIMP_PANA, + _BT_PARAM_NUM_ +} BT_TYPE; + +typedef struct +{ + u8 rcomp; + s16 up,down; +} rcomp_; + +typedef struct +{ + u8 hi,low; +} verify_; + + typedef struct +{ + u8 mg_param[64]; + u8 v_scale; + rcomp_ rcomp; + u16 ocv; + verify_ verify; +} bt_param_; + + + /* ======================================================== 各社バッテリーパラメータ ======================================================== */ -const u8 BT_PARAM[][64] = { - // ID = 0 GND マクセル - { - 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, - 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, - 0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0, - 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10, - 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30, - 0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70, - 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0, - 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 - }, - { // ID = 1 120 ohm (ダミーでマクセル) - 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, - 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, - 0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0, - 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10, - 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30, - 0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70, - 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0, - 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 - }, - { // ID = 2 360 hom (ダミーでマクセル) - 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, - 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, - 0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0, - 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10, - 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30, - 0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70, - 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0, - 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 - }, - { // ID = 3 750 ohm (ダミーでパナ) - 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, - 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, - 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, - 0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20, - 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, - 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, - 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, - 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 - }, - { // ID = 4 1.3kohm (ダミーでパナ) - 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, - 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, - 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, - 0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20, - 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, - 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, - 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, - 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 - }, - { // ID = 5 2.7kohm パナ - 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, - 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, - 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, - 0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20, - 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, - 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, - 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, - 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 - } - /*, - { // ID = 6 8.2kohm (ダミーでパナ) - ROM不足のため、埋蔵金を使うことになりました。 - 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, - 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, - 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, - 0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20, - 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, - 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, - 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, - 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 - } -*/ - // ID = 7 白箱 - /// パラメータ無し -}; - - - - -typedef struct _st_bt_comp +const bt_param_ bt_param[ _BT_PARAM_NUM_ ] = { - unsigned char rcomp; - signed short temp_co_up; // 256倍したものを入れとく - signed short temp_co_dn; // 〃 -} st_bt_comp; + // BT_PARAM_CTR_MAXELL + { + { + 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, + 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, + 0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0, + 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10, + 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30, + 0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70, + 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0, + 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 + }, + 2, + { 92, (u8)(-256* 0.79), (u8)(-256* 4.35) }, + 0xD800, + { 0xEA, 0xE8 } + }, - -// 電池残量補正パラメータ -const st_bt_comp BT_COMP[] = { -// rcomp R_co_up R_co_down - { 92, (u8)(-256* 0.79), (u8)(-256* 4.35) }, // maxell - { 92, (u8)(-256* 0.79), (u8)(-256* 4.35) }, // dummy(M ) - { 92, (u8)(-256* 0.79), (u8)(-256* 4.35) }, // dummy(M ) - { 171, (u8)(-256* 1.00), (u8)(-256* 2.60) }, // dummy( P) - { 171, (u8)(-256* 1.00), (u8)(-256* 2.60) }, // dummy( P) - { 171, (u8)(-256* 1.00), (u8)(-256* 2.60) } // panasonic + // BT_PARAM_CTR_PANA + { + { + 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, + 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, + 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, + 0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, + 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, + 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 + }, + 1, + { 171, (u8)(-256* 1.00), (u8)(-256* 2.60) }, + 0xDA20, + { 0x69, 0x67 }, + } }; -const u16 BT_OCV[] = { - { 0xD800 }, { 0xD800 }, { 0xD800 }, // maxell, dummy, dummy, - { 0xDA20 }, { 0xDA20 }, { 0xDA20 } // dummy, dummy, pana -}; - -const u8 BT_VERIFY_H[] = { - 0xEA, 0xEA, 0xEA, // maxell, dummy, dummy, - 0x69, 0x69, 0x69 // dummy, dummy, pana -}; - -const u8 BT_VERIFY_L[] = { - 0xE8, 0xE8, 0xE8, // maxell, dummy, dummy, - 0x67, 0x67, 0x67 // dummy, dummy, pana -}; - -const u8 BT_RCOMP_SCALE[] = { - 2, 2, 2, // maxell, dummy, dummy, - 1, 1, 1 // dummy, dummy, panaso -}; - - - #endif diff --git a/trunk/bsr.lmf b/trunk/bsr.lmf index 9473723..54ea4c7 100644 Binary files a/trunk/bsr.lmf and b/trunk/bsr.lmf differ diff --git a/trunk/bsr_k0r.map b/trunk/bsr_k0r.map index 95edc6b..0ccbe23 100644 --- a/trunk/bsr_k0r.map +++ b/trunk/bsr_k0r.map @@ -24,8 +24,8 @@ Direc-file:bsr_mcu.dr *** Link information *** 67 output segment(s) - 3DB4H byte(s) real data - 5770 symbol(s) defined + 3DBDH byte(s) real data + 5803 symbol(s) defined *** Memory map *** @@ -156,282 +156,283 @@ Direc-file:bsr_mcu.dr SEGMENT SEGMENT MODULE ADDRESS MGC_MIMI 02000H 0000AH CSEG AT MGC_MIMI magic 02000H 0000AH - @@CNST 0200AH 0027CH CSEG + @@CNST 0200AH 00282H CSEG @@CNST @cstart 0200AH 00000H @@CNST loader 0200AH 00000H - @@CNST pm 0200AH 001CAH - @@CNST i2c_ctr 021D4H 00000H - @@CNST main 021D4H 00000H - @@CNST magic 021D4H 00000H - @@CNST WDT 021D4H 00000H - @@CNST i2c_mcu 021D4H 00000H - @@CNST i2c_twl 021D4H 00000H - @@CNST led 021D4H 00000H - @@CNST rtc 021D4H 00000H - @@CNST vreg_ctr 021D4H 00000H - @@CNST vreg_twl 021D4H 00000H - @@CNST adc 021D4H 00048H - @@CNST renge 0221CH 00000H - @@CNST accero 0221CH 00000H + @@CNST pm 0200AH 001D0H + @@CNST i2c_ctr 021DAH 00000H + @@CNST main 021DAH 00000H + @@CNST magic 021DAH 00000H + @@CNST WDT 021DAH 00000H + @@CNST i2c_mcu 021DAH 00000H + @@CNST i2c_twl 021DAH 00000H + @@CNST led 021DAH 00000H + @@CNST rtc 021DAH 00000H + @@CNST vreg_ctr 021DAH 00000H + @@CNST vreg_twl 021DAH 00000H + @@CNST adc 021DAH 00048H + @@CNST renge 02222H 00000H + @@CNST accero 02222H 00000H @@CNST self_flash - 0221CH 00002H - @@CNST sw 0221EH 00000H + 02222H 00002H + @@CNST sw 02224H 00000H @@CNST task_debug - 0221EH 00000H + 02224H 00000H @@CNST task_misc - 0221EH 00000H - @@CNST task_sys 0221EH 00000H + 02224H 00000H + @@CNST task_sys 02224H 00000H @@CNST pedo_alg_thre_det2 - 0221EH 00048H - @@CNST ini_VECT 02266H 00000H + 02224H 00048H + @@CNST ini_VECT 0226CH 00000H @@CNST task_status - 02266H 00000H - @@CNST led_cam 02266H 00000H - @@CNST led_pow 02266H 00020H - ROM_CODE 02286H 026F8H CSEG - ROM_CODE pm 02286H 00A00H - ROM_CODE i2c_ctr 02C86H 00060H - ROM_CODE i2c_twl 02CE6H 0005EH - ROM_CODE led 02D44H 00265H - ROM_CODE rtc 02FA9H 000E0H - ROM_CODE vreg_ctr 03089H 00486H - ROM_CODE vreg_twl 0350FH 000FAH - ROM_CODE adc 03609H 002E7H - ROM_CODE renge 038F0H 00190H - ROM_CODE accero 03A80H 0013DH - ROM_CODE sw 03BBDH 00178H + 0226CH 00000H + @@CNST led_cam 0226CH 00000H + @@CNST led_pow 0226CH 00020H + ROM_CODE 0228CH 026FBH CSEG + ROM_CODE pm 0228CH 00A03H + ROM_CODE i2c_ctr 02C8FH 00060H + ROM_CODE i2c_twl 02CEFH 0005EH + ROM_CODE led 02D4DH 00265H + ROM_CODE rtc 02FB2H 000E0H + ROM_CODE vreg_ctr 03092H 00486H + ROM_CODE vreg_twl 03518H 000FAH + ROM_CODE adc 03612H 002E7H + ROM_CODE renge 038F9H 00190H + ROM_CODE accero 03A89H 0013DH + ROM_CODE sw 03BC6H 00178H ROM_CODE task_misc - 03D35H 00177H - ROM_CODE task_sys 03EACH 00373H + 03D3EH 00177H + ROM_CODE task_sys 03EB5H 00373H ROM_CODE pedo_alg_thre_det2 - 0421FH 00502H - ROM_CODE led_cam 04721H 000DBH - ROM_CODE led_pow 047FCH 00182H - @@BASE 0497EH 004C6H CSEG BASE - @@BASE loader 0497EH 00000H - @@BASE pm 0497EH 0003FH - @@BASE i2c_ctr 049BDH 0018DH - @@BASE main 04B4AH 00000H - @@BASE magic 04B4AH 00000H - @@BASE WDT 04B4AH 00000H - @@BASE i2c_mcu 04B4AH 0009CH - @@BASE i2c_twl 04BE6H 000CBH - @@BASE led 04CB1H 00000H - @@BASE rtc 04CB1H 0005EH - @@BASE vreg_ctr 04D0FH 00000H - @@BASE vreg_twl 04D0FH 00000H - @@BASE adc 04D0FH 000B3H - @@BASE renge 04DC2H 00000H - @@BASE accero 04DC2H 0004AH + 04228H 00502H + ROM_CODE led_cam 0472AH 000DBH + ROM_CODE led_pow 04805H 00182H + @@BASE 04987H 004C6H CSEG BASE + @@BASE loader 04987H 00000H + @@BASE pm 04987H 0003FH + @@BASE i2c_ctr 049C6H 0018DH + @@BASE main 04B53H 00000H + @@BASE magic 04B53H 00000H + @@BASE WDT 04B53H 00000H + @@BASE i2c_mcu 04B53H 0009CH + @@BASE i2c_twl 04BEFH 000CBH + @@BASE led 04CBAH 00000H + @@BASE rtc 04CBAH 0005EH + @@BASE vreg_ctr 04D18H 00000H + @@BASE vreg_twl 04D18H 00000H + @@BASE adc 04D18H 000B3H + @@BASE renge 04DCBH 00000H + @@BASE accero 04DCBH 0004AH @@BASE self_flash - 04E0CH 00000H - @@BASE sw 04E0CH 00000H + 04E15H 00000H + @@BASE sw 04E15H 00000H @@BASE task_debug - 04E0CH 00000H + 04E15H 00000H @@BASE task_misc - 04E0CH 00000H - @@BASE task_sys 04E0CH 00000H + 04E15H 00000H + @@BASE task_sys 04E15H 00000H @@BASE pedo_alg_thre_det2 - 04E0CH 00000H - @@BASE ini_VECT 04E0CH 00038H + 04E15H 00000H + @@BASE ini_VECT 04E15H 00038H @@BASE task_status - 04E44H 00000H - @@BASE led_cam 04E44H 00000H - @@BASE led_pow 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL @cstart 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL pm 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL i2c_ctr 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL i2c_twl 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL led 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL rtc 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL vreg_ctr 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL vreg_twl 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL adc 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL renge 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL accero 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL sw 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP + 04E4DH 00000H + @@BASE led_cam 04E4DH 00000H + @@BASE led_pow 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL @cstart 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL pm 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL i2c_ctr 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL i2c_twl 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL led 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL rtc 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL vreg_ctr 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL vreg_twl 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL adc 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL renge 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL accero 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL sw 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP @@CNSTL task_misc - 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL task_sys 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP + 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL task_sys 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP @@CNSTL pedo_alg_thre_det2 - 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL ini_VECT 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL led_cam 04E44H 00000H - @@CNSTL 04E44H 00000H CSEG PAGE64KP - @@CNSTL led_pow 04E44H 00000H - @@CNSTL 04E44H 0000AH CSEG PAGE64KP - @@CNSTL @bcdtob 04E44H 0000AH - @@R_INIT 04E4EH 00038H CSEG UNIT64KP - @@R_INIT @cstart 04E4EH 00000H - @@R_INIT loader 04E4EH 00000H - @@R_INIT pm 04E4EH 00002H - @@R_INIT i2c_ctr 04E50H 00002H - @@R_INIT main 04E52H 00000H - @@R_INIT magic 04E52H 00000H - @@R_INIT WDT 04E52H 00000H - @@R_INIT i2c_mcu 04E52H 00000H - @@R_INIT i2c_twl 04E52H 00000H - @@R_INIT led 04E52H 00000H - @@R_INIT rtc 04E52H 00000H - @@R_INIT vreg_ctr 04E52H 00000H - @@R_INIT vreg_twl 04E52H 00000H - @@R_INIT adc 04E52H 0000CH - @@R_INIT renge 04E5EH 00014H - @@R_INIT accero 04E72H 00000H - @@R_INIT self_flash - 04E72H 00000H - @@R_INIT sw 04E72H 00002H - @@R_INIT task_debug - 04E74H 00000H - @@R_INIT task_misc - 04E74H 00000H - @@R_INIT task_sys 04E74H 00002H - @@R_INIT pedo_alg_thre_det2 - 04E76H 00006H - @@R_INIT ini_VECT 04E7CH 00000H - @@R_INIT task_status - 04E7CH 00002H - @@R_INIT led_cam 04E7EH 00002H - @@R_INIT led_pow 04E80H 00006H - @@R_INIT @rom 04E86H 00000H - @@R_INIS 04E86H 00000H CSEG UNIT64KP - @@R_INIS @cstart 04E86H 00000H - @@R_INIS loader 04E86H 00000H - @@R_INIS pm 04E86H 00000H - @@R_INIS i2c_ctr 04E86H 00000H - @@R_INIS main 04E86H 00000H - @@R_INIS magic 04E86H 00000H - @@R_INIS WDT 04E86H 00000H - @@R_INIS i2c_mcu 04E86H 00000H - @@R_INIS i2c_twl 04E86H 00000H - @@R_INIS led 04E86H 00000H - @@R_INIS rtc 04E86H 00000H - @@R_INIS vreg_ctr 04E86H 00000H - @@R_INIS vreg_twl 04E86H 00000H - @@R_INIS adc 04E86H 00000H - @@R_INIS renge 04E86H 00000H - @@R_INIS accero 04E86H 00000H + 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL ini_VECT 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL led_cam 04E4DH 00000H + @@CNSTL 04E4DH 00000H CSEG PAGE64KP + @@CNSTL led_pow 04E4DH 00000H + @@R_INIS 04E4DH 00000H CSEG UNIT64KP + @@R_INIS @cstart 04E4DH 00000H + @@R_INIS loader 04E4DH 00000H + @@R_INIS pm 04E4DH 00000H + @@R_INIS i2c_ctr 04E4DH 00000H + @@R_INIS main 04E4DH 00000H + @@R_INIS magic 04E4DH 00000H + @@R_INIS WDT 04E4DH 00000H + @@R_INIS i2c_mcu 04E4DH 00000H + @@R_INIS i2c_twl 04E4DH 00000H + @@R_INIS led 04E4DH 00000H + @@R_INIS rtc 04E4DH 00000H + @@R_INIS vreg_ctr 04E4DH 00000H + @@R_INIS vreg_twl 04E4DH 00000H + @@R_INIS adc 04E4DH 00000H + @@R_INIS renge 04E4DH 00000H + @@R_INIS accero 04E4DH 00000H @@R_INIS self_flash - 04E86H 00000H - @@R_INIS sw 04E86H 00000H + 04E4DH 00000H + @@R_INIS sw 04E4DH 00000H @@R_INIS task_debug - 04E86H 00000H + 04E4DH 00000H @@R_INIS task_misc - 04E86H 00000H - @@R_INIS task_sys 04E86H 00000H + 04E4DH 00000H + @@R_INIS task_sys 04E4DH 00000H @@R_INIS pedo_alg_thre_det2 - 04E86H 00000H - @@R_INIS ini_VECT 04E86H 00000H + 04E4DH 00000H + @@R_INIS ini_VECT 04E4DH 00000H @@R_INIS task_status - 04E86H 00000H - @@R_INIS led_cam 04E86H 00000H - @@R_INIS led_pow 04E86H 00000H - @@R_INIS @rom 04E86H 00000H - @@CALT 04E86H 00000H CSEG - @@CALT @cstart 04E86H 00000H - @@CALT loader 04E86H 00000H - @@CALT pm 04E86H 00000H - @@CALT i2c_ctr 04E86H 00000H - @@CALT main 04E86H 00000H - @@CALT magic 04E86H 00000H - @@CALT WDT 04E86H 00000H - @@CALT i2c_mcu 04E86H 00000H - @@CALT i2c_twl 04E86H 00000H - @@CALT led 04E86H 00000H - @@CALT rtc 04E86H 00000H - @@CALT vreg_ctr 04E86H 00000H - @@CALT vreg_twl 04E86H 00000H - @@CALT adc 04E86H 00000H - @@CALT renge 04E86H 00000H - @@CALT accero 04E86H 00000H + 04E4DH 00000H + @@R_INIS led_cam 04E4DH 00000H + @@R_INIS led_pow 04E4DH 00000H + @@R_INIS @rom 04E4DH 00000H + @@CALT 04E4DH 00000H CSEG + @@CALT @cstart 04E4DH 00000H + @@CALT loader 04E4DH 00000H + @@CALT pm 04E4DH 00000H + @@CALT i2c_ctr 04E4DH 00000H + @@CALT main 04E4DH 00000H + @@CALT magic 04E4DH 00000H + @@CALT WDT 04E4DH 00000H + @@CALT i2c_mcu 04E4DH 00000H + @@CALT i2c_twl 04E4DH 00000H + @@CALT led 04E4DH 00000H + @@CALT rtc 04E4DH 00000H + @@CALT vreg_ctr 04E4DH 00000H + @@CALT vreg_twl 04E4DH 00000H + @@CALT adc 04E4DH 00000H + @@CALT renge 04E4DH 00000H + @@CALT accero 04E4DH 00000H @@CALT self_flash - 04E86H 00000H - @@CALT sw 04E86H 00000H + 04E4DH 00000H + @@CALT sw 04E4DH 00000H @@CALT task_debug - 04E86H 00000H + 04E4DH 00000H @@CALT task_misc - 04E86H 00000H - @@CALT task_sys 04E86H 00000H + 04E4DH 00000H + @@CALT task_sys 04E4DH 00000H @@CALT pedo_alg_thre_det2 - 04E86H 00000H - @@CALT ini_VECT 04E86H 00000H + 04E4DH 00000H + @@CALT ini_VECT 04E4DH 00000H @@CALT task_status - 04E86H 00000H - @@CALT led_cam 04E86H 00000H - @@CALT led_pow 04E86H 00000H - @@RLINIT 04E86H 00000H CSEG UNIT64KP - @@RLINIT loader 04E86H 00000H - @@RLINIT pm 04E86H 00000H - @@RLINIT i2c_ctr 04E86H 00000H - @@RLINIT main 04E86H 00000H - @@RLINIT magic 04E86H 00000H - @@RLINIT WDT 04E86H 00000H - @@RLINIT i2c_mcu 04E86H 00000H - @@RLINIT i2c_twl 04E86H 00000H - @@RLINIT led 04E86H 00000H - @@RLINIT rtc 04E86H 00000H - @@RLINIT vreg_ctr 04E86H 00000H - @@RLINIT vreg_twl 04E86H 00000H - @@RLINIT adc 04E86H 00000H - @@RLINIT renge 04E86H 00000H - @@RLINIT accero 04E86H 00000H + 04E4DH 00000H + @@CALT led_cam 04E4DH 00000H + @@CALT led_pow 04E4DH 00000H + @@RLINIT 04E4DH 00000H CSEG UNIT64KP + @@RLINIT loader 04E4DH 00000H + @@RLINIT pm 04E4DH 00000H + @@RLINIT i2c_ctr 04E4DH 00000H + @@RLINIT main 04E4DH 00000H + @@RLINIT magic 04E4DH 00000H + @@RLINIT WDT 04E4DH 00000H + @@RLINIT i2c_mcu 04E4DH 00000H + @@RLINIT i2c_twl 04E4DH 00000H + @@RLINIT led 04E4DH 00000H + @@RLINIT rtc 04E4DH 00000H + @@RLINIT vreg_ctr 04E4DH 00000H + @@RLINIT vreg_twl 04E4DH 00000H + @@RLINIT adc 04E4DH 00000H + @@RLINIT renge 04E4DH 00000H + @@RLINIT accero 04E4DH 00000H @@RLINIT self_flash - 04E86H 00000H - @@RLINIT sw 04E86H 00000H + 04E4DH 00000H + @@RLINIT sw 04E4DH 00000H @@RLINIT task_debug - 04E86H 00000H + 04E4DH 00000H @@RLINIT task_misc - 04E86H 00000H - @@RLINIT task_sys 04E86H 00000H + 04E4DH 00000H + @@RLINIT task_sys 04E4DH 00000H @@RLINIT pedo_alg_thre_det2 - 04E86H 00000H - @@RLINIT ini_VECT 04E86H 00000H + 04E4DH 00000H + @@RLINIT ini_VECT 04E4DH 00000H @@RLINIT task_status - 04E86H 00000H - @@RLINIT led_cam 04E86H 00000H - @@RLINIT led_pow 04E86H 00000H - @@RLINIT @rom 04E86H 00000H - @@CODEL 04E86H 00000H CSEG - @@CODEL pm 04E86H 00000H - @@CODEL i2c_ctr 04E86H 00000H - @@CODEL magic 04E86H 00000H - @@CODEL i2c_twl 04E86H 00000H - @@CODEL led 04E86H 00000H - @@CODEL rtc 04E86H 00000H - @@CODEL vreg_ctr 04E86H 00000H - @@CODEL vreg_twl 04E86H 00000H - @@CODEL adc 04E86H 00000H - @@CODEL renge 04E86H 00000H - @@CODEL accero 04E86H 00000H - @@CODEL sw 04E86H 00000H + 04E4DH 00000H + @@RLINIT led_cam 04E4DH 00000H + @@RLINIT led_pow 04E4DH 00000H + @@RLINIT @rom 04E4DH 00000H + @@CODEL 04E4DH 00000H CSEG + @@CODEL pm 04E4DH 00000H + @@CODEL i2c_ctr 04E4DH 00000H + @@CODEL magic 04E4DH 00000H + @@CODEL i2c_twl 04E4DH 00000H + @@CODEL led 04E4DH 00000H + @@CODEL rtc 04E4DH 00000H + @@CODEL vreg_ctr 04E4DH 00000H + @@CODEL vreg_twl 04E4DH 00000H + @@CODEL adc 04E4DH 00000H + @@CODEL renge 04E4DH 00000H + @@CODEL accero 04E4DH 00000H + @@CODEL sw 04E4DH 00000H @@CODEL task_misc - 04E86H 00000H - @@CODEL task_sys 04E86H 00000H + 04E4DH 00000H + @@CODEL task_sys 04E4DH 00000H @@CODEL pedo_alg_thre_det2 - 04E86H 00000H - @@CODEL ini_VECT 04E86H 00000H - @@CODEL led_cam 04E86H 00000H - @@CODEL led_pow 04E86H 00000H - @@LCODEL 04E86H 00008H CSEG - @@LCODEL abs 04E86H 00008H -* gap * 04E8EH 00168H + 04E4DH 00000H + @@CODEL ini_VECT 04E4DH 00000H + @@CODEL led_cam 04E4DH 00000H + @@CODEL led_pow 04E4DH 00000H +* gap * 04E4DH 00001H + @@CNSTL 04E4EH 0000AH CSEG PAGE64KP + @@CNSTL @bcdtob 04E4EH 0000AH + @@R_INIT 04E58H 00038H CSEG UNIT64KP + @@R_INIT @cstart 04E58H 00000H + @@R_INIT loader 04E58H 00000H + @@R_INIT pm 04E58H 00002H + @@R_INIT i2c_ctr 04E5AH 00002H + @@R_INIT main 04E5CH 00000H + @@R_INIT magic 04E5CH 00000H + @@R_INIT WDT 04E5CH 00000H + @@R_INIT i2c_mcu 04E5CH 00000H + @@R_INIT i2c_twl 04E5CH 00000H + @@R_INIT led 04E5CH 00000H + @@R_INIT rtc 04E5CH 00000H + @@R_INIT vreg_ctr 04E5CH 00000H + @@R_INIT vreg_twl 04E5CH 00000H + @@R_INIT adc 04E5CH 0000CH + @@R_INIT renge 04E68H 00014H + @@R_INIT accero 04E7CH 00000H + @@R_INIT self_flash + 04E7CH 00000H + @@R_INIT sw 04E7CH 00002H + @@R_INIT task_debug + 04E7EH 00000H + @@R_INIT task_misc + 04E7EH 00000H + @@R_INIT task_sys 04E7EH 00002H + @@R_INIT pedo_alg_thre_det2 + 04E80H 00006H + @@R_INIT ini_VECT 04E86H 00000H + @@R_INIT task_status + 04E86H 00002H + @@R_INIT led_cam 04E88H 00002H + @@R_INIT led_pow 04E8AH 00006H + @@R_INIT @rom 04E90H 00000H + @@LCODEL 04E90H 00008H CSEG + @@LCODEL abs 04E90H 00008H +* gap * 04E98H 0015EH MGC_TAIL 04FF6H 0000AH CSEG AT MGC_TAIL magic 04FF6H 0000AH @@ -439,206 +440,206 @@ Direc-file:bsr_mcu.dr BASE ADDRESS=FF900H SIZE=00500H OUTPUT INPUT INPUT BASE SIZE SEGMENT SEGMENT MODULE ADDRESS - @@DATA FF900H 00432H DSEG BASEP + @@DATA FF900H 00430H DSEG BASEP @@DATA @cstart FF900H 00002H @@DATA loader FF902H 00000H - @@DATA pm FF902H 0001AH - @@DATA i2c_ctr FF91CH 00006H - @@DATA main FF922H 0021EH - @@DATA magic FFB40H 00000H - @@DATA WDT FFB40H 00000H - @@DATA i2c_mcu FFB40H 0000AH - @@DATA i2c_twl FFB4AH 00000H - @@DATA led FFB4AH 0007CH - @@DATA rtc FFBC6H 00008H - @@DATA vreg_ctr FFBCEH 0005EH - @@DATA vreg_twl FFC2CH 00010H - @@DATA adc FFC3CH 00018H - @@DATA renge FFC54H 00016H - @@DATA accero FFC6AH 00002H + @@DATA pm FF902H 00018H + @@DATA i2c_ctr FF91AH 00006H + @@DATA main FF920H 0021EH + @@DATA magic FFB3EH 00000H + @@DATA WDT FFB3EH 00000H + @@DATA i2c_mcu FFB3EH 0000AH + @@DATA i2c_twl FFB48H 00000H + @@DATA led FFB48H 0007CH + @@DATA rtc FFBC4H 00008H + @@DATA vreg_ctr FFBCCH 0005EH + @@DATA vreg_twl FFC2AH 00010H + @@DATA adc FFC3AH 00018H + @@DATA renge FFC52H 00016H + @@DATA accero FFC68H 00002H @@DATA self_flash - FFC6CH 00002H - @@DATA sw FFC6EH 0000AH + FFC6AH 00002H + @@DATA sw FFC6CH 0000AH @@DATA task_debug - FFC78H 00000H + FFC76H 00000H @@DATA task_misc - FFC78H 00004H - @@DATA task_sys FFC7CH 00002H + FFC76H 00004H + @@DATA task_sys FFC7AH 00002H @@DATA pedo_alg_thre_det2 - FFC7EH 000A6H - @@DATA ini_VECT FFD24H 00000H + FFC7CH 000A6H + @@DATA ini_VECT FFD22H 00000H @@DATA task_status - FFD24H 00002H - @@DATA led_cam FFD26H 00002H - @@DATA led_pow FFD28H 0000AH - @@DATA @rom FFD32H 00000H - @@INIT FFD32H 00038H DSEG BASEP - @@INIT @cstart FFD32H 00000H - @@INIT loader FFD32H 00000H - @@INIT pm FFD32H 00002H - @@INIT i2c_ctr FFD34H 00002H - @@INIT main FFD36H 00000H - @@INIT magic FFD36H 00000H - @@INIT WDT FFD36H 00000H - @@INIT i2c_mcu FFD36H 00000H - @@INIT i2c_twl FFD36H 00000H - @@INIT led FFD36H 00000H - @@INIT rtc FFD36H 00000H - @@INIT vreg_ctr FFD36H 00000H - @@INIT vreg_twl FFD36H 00000H - @@INIT adc FFD36H 0000CH - @@INIT renge FFD42H 00014H - @@INIT accero FFD56H 00000H + FFD22H 00002H + @@DATA led_cam FFD24H 00002H + @@DATA led_pow FFD26H 0000AH + @@DATA @rom FFD30H 00000H + @@INIT FFD30H 00038H DSEG BASEP + @@INIT @cstart FFD30H 00000H + @@INIT loader FFD30H 00000H + @@INIT pm FFD30H 00002H + @@INIT i2c_ctr FFD32H 00002H + @@INIT main FFD34H 00000H + @@INIT magic FFD34H 00000H + @@INIT WDT FFD34H 00000H + @@INIT i2c_mcu FFD34H 00000H + @@INIT i2c_twl FFD34H 00000H + @@INIT led FFD34H 00000H + @@INIT rtc FFD34H 00000H + @@INIT vreg_ctr FFD34H 00000H + @@INIT vreg_twl FFD34H 00000H + @@INIT adc FFD34H 0000CH + @@INIT renge FFD40H 00014H + @@INIT accero FFD54H 00000H @@INIT self_flash - FFD56H 00000H - @@INIT sw FFD56H 00002H + FFD54H 00000H + @@INIT sw FFD54H 00002H @@INIT task_debug - FFD58H 00000H + FFD56H 00000H @@INIT task_misc - FFD58H 00000H - @@INIT task_sys FFD58H 00002H + FFD56H 00000H + @@INIT task_sys FFD56H 00002H @@INIT pedo_alg_thre_det2 - FFD5AH 00006H - @@INIT ini_VECT FFD60H 00000H + FFD58H 00006H + @@INIT ini_VECT FFD5EH 00000H @@INIT task_status - FFD60H 00002H - @@INIT led_cam FFD62H 00002H - @@INIT led_pow FFD64H 00006H - @@INIT @rom FFD6AH 00000H - @@INIS FFD6AH 00000H DSEG UNITP - @@INIS @cstart FFD6AH 00000H - @@INIS loader FFD6AH 00000H - @@INIS pm FFD6AH 00000H - @@INIS i2c_ctr FFD6AH 00000H - @@INIS main FFD6AH 00000H - @@INIS magic FFD6AH 00000H - @@INIS WDT FFD6AH 00000H - @@INIS i2c_mcu FFD6AH 00000H - @@INIS i2c_twl FFD6AH 00000H - @@INIS led FFD6AH 00000H - @@INIS rtc FFD6AH 00000H - @@INIS vreg_ctr FFD6AH 00000H - @@INIS vreg_twl FFD6AH 00000H - @@INIS adc FFD6AH 00000H - @@INIS renge FFD6AH 00000H - @@INIS accero FFD6AH 00000H + FFD5EH 00002H + @@INIT led_cam FFD60H 00002H + @@INIT led_pow FFD62H 00006H + @@INIT @rom FFD68H 00000H + @@INIS FFD68H 00000H DSEG UNITP + @@INIS @cstart FFD68H 00000H + @@INIS loader FFD68H 00000H + @@INIS pm FFD68H 00000H + @@INIS i2c_ctr FFD68H 00000H + @@INIS main FFD68H 00000H + @@INIS magic FFD68H 00000H + @@INIS WDT FFD68H 00000H + @@INIS i2c_mcu FFD68H 00000H + @@INIS i2c_twl FFD68H 00000H + @@INIS led FFD68H 00000H + @@INIS rtc FFD68H 00000H + @@INIS vreg_ctr FFD68H 00000H + @@INIS vreg_twl FFD68H 00000H + @@INIS adc FFD68H 00000H + @@INIS renge FFD68H 00000H + @@INIS accero FFD68H 00000H @@INIS self_flash - FFD6AH 00000H - @@INIS sw FFD6AH 00000H + FFD68H 00000H + @@INIS sw FFD68H 00000H @@INIS task_debug - FFD6AH 00000H + FFD68H 00000H @@INIS task_misc - FFD6AH 00000H - @@INIS task_sys FFD6AH 00000H + FFD68H 00000H + @@INIS task_sys FFD68H 00000H @@INIS pedo_alg_thre_det2 - FFD6AH 00000H - @@INIS ini_VECT FFD6AH 00000H + FFD68H 00000H + @@INIS ini_VECT FFD68H 00000H @@INIS task_status - FFD6AH 00000H - @@INIS led_cam FFD6AH 00000H - @@INIS led_pow FFD6AH 00000H - @@INIS @rom FFD6AH 00000H - @@DATS FFD6AH 00000H DSEG UNITP - @@DATS @cstart FFD6AH 00000H - @@DATS loader FFD6AH 00000H - @@DATS pm FFD6AH 00000H - @@DATS i2c_ctr FFD6AH 00000H - @@DATS main FFD6AH 00000H - @@DATS magic FFD6AH 00000H - @@DATS WDT FFD6AH 00000H - @@DATS i2c_mcu FFD6AH 00000H - @@DATS i2c_twl FFD6AH 00000H - @@DATS led FFD6AH 00000H - @@DATS rtc FFD6AH 00000H - @@DATS vreg_ctr FFD6AH 00000H - @@DATS vreg_twl FFD6AH 00000H - @@DATS adc FFD6AH 00000H - @@DATS renge FFD6AH 00000H - @@DATS accero FFD6AH 00000H + FFD68H 00000H + @@INIS led_cam FFD68H 00000H + @@INIS led_pow FFD68H 00000H + @@INIS @rom FFD68H 00000H + @@DATS FFD68H 00000H DSEG UNITP + @@DATS @cstart FFD68H 00000H + @@DATS loader FFD68H 00000H + @@DATS pm FFD68H 00000H + @@DATS i2c_ctr FFD68H 00000H + @@DATS main FFD68H 00000H + @@DATS magic FFD68H 00000H + @@DATS WDT FFD68H 00000H + @@DATS i2c_mcu FFD68H 00000H + @@DATS i2c_twl FFD68H 00000H + @@DATS led FFD68H 00000H + @@DATS rtc FFD68H 00000H + @@DATS vreg_ctr FFD68H 00000H + @@DATS vreg_twl FFD68H 00000H + @@DATS adc FFD68H 00000H + @@DATS renge FFD68H 00000H + @@DATS accero FFD68H 00000H @@DATS self_flash - FFD6AH 00000H - @@DATS sw FFD6AH 00000H + FFD68H 00000H + @@DATS sw FFD68H 00000H @@DATS task_debug - FFD6AH 00000H + FFD68H 00000H @@DATS task_misc - FFD6AH 00000H - @@DATS task_sys FFD6AH 00000H + FFD68H 00000H + @@DATS task_sys FFD68H 00000H @@DATS pedo_alg_thre_det2 - FFD6AH 00000H - @@DATS ini_VECT FFD6AH 00000H + FFD68H 00000H + @@DATS ini_VECT FFD68H 00000H @@DATS task_status - FFD6AH 00000H - @@DATS led_cam FFD6AH 00000H - @@DATS led_pow FFD6AH 00000H - @@DATS @rom FFD6AH 00000H - FSL_DATA FFD6AH 00010H DSEG UNITP + FFD68H 00000H + @@DATS led_cam FFD68H 00000H + @@DATS led_pow FFD68H 00000H + @@DATS @rom FFD68H 00000H + FSL_DATA FFD68H 00010H DSEG UNITP FSL_DATA fsl_common - FFD6AH 00010H - @@INITL FFD7AH 00000H DSEG UNIT64KP - @@INITL loader FFD7AH 00000H - @@INITL pm FFD7AH 00000H - @@INITL i2c_ctr FFD7AH 00000H - @@INITL main FFD7AH 00000H - @@INITL magic FFD7AH 00000H - @@INITL WDT FFD7AH 00000H - @@INITL i2c_mcu FFD7AH 00000H - @@INITL i2c_twl FFD7AH 00000H - @@INITL led FFD7AH 00000H - @@INITL rtc FFD7AH 00000H - @@INITL vreg_ctr FFD7AH 00000H - @@INITL vreg_twl FFD7AH 00000H - @@INITL adc FFD7AH 00000H - @@INITL renge FFD7AH 00000H - @@INITL accero FFD7AH 00000H + FFD68H 00010H + @@INITL FFD78H 00000H DSEG UNIT64KP + @@INITL loader FFD78H 00000H + @@INITL pm FFD78H 00000H + @@INITL i2c_ctr FFD78H 00000H + @@INITL main FFD78H 00000H + @@INITL magic FFD78H 00000H + @@INITL WDT FFD78H 00000H + @@INITL i2c_mcu FFD78H 00000H + @@INITL i2c_twl FFD78H 00000H + @@INITL led FFD78H 00000H + @@INITL rtc FFD78H 00000H + @@INITL vreg_ctr FFD78H 00000H + @@INITL vreg_twl FFD78H 00000H + @@INITL adc FFD78H 00000H + @@INITL renge FFD78H 00000H + @@INITL accero FFD78H 00000H @@INITL self_flash - FFD7AH 00000H - @@INITL sw FFD7AH 00000H + FFD78H 00000H + @@INITL sw FFD78H 00000H @@INITL task_debug - FFD7AH 00000H + FFD78H 00000H @@INITL task_misc - FFD7AH 00000H - @@INITL task_sys FFD7AH 00000H + FFD78H 00000H + @@INITL task_sys FFD78H 00000H @@INITL pedo_alg_thre_det2 - FFD7AH 00000H - @@INITL ini_VECT FFD7AH 00000H + FFD78H 00000H + @@INITL ini_VECT FFD78H 00000H @@INITL task_status - FFD7AH 00000H - @@INITL led_cam FFD7AH 00000H - @@INITL led_pow FFD7AH 00000H - @@INITL @rom FFD7AH 00000H - @@DATAL FFD7AH 00000H DSEG UNIT64KP - @@DATAL loader FFD7AH 00000H - @@DATAL pm FFD7AH 00000H - @@DATAL i2c_ctr FFD7AH 00000H - @@DATAL main FFD7AH 00000H - @@DATAL magic FFD7AH 00000H - @@DATAL WDT FFD7AH 00000H - @@DATAL i2c_mcu FFD7AH 00000H - @@DATAL i2c_twl FFD7AH 00000H - @@DATAL led FFD7AH 00000H - @@DATAL rtc FFD7AH 00000H - @@DATAL vreg_ctr FFD7AH 00000H - @@DATAL vreg_twl FFD7AH 00000H - @@DATAL adc FFD7AH 00000H - @@DATAL renge FFD7AH 00000H - @@DATAL accero FFD7AH 00000H + FFD78H 00000H + @@INITL led_cam FFD78H 00000H + @@INITL led_pow FFD78H 00000H + @@INITL @rom FFD78H 00000H + @@DATAL FFD78H 00000H DSEG UNIT64KP + @@DATAL loader FFD78H 00000H + @@DATAL pm FFD78H 00000H + @@DATAL i2c_ctr FFD78H 00000H + @@DATAL main FFD78H 00000H + @@DATAL magic FFD78H 00000H + @@DATAL WDT FFD78H 00000H + @@DATAL i2c_mcu FFD78H 00000H + @@DATAL i2c_twl FFD78H 00000H + @@DATAL led FFD78H 00000H + @@DATAL rtc FFD78H 00000H + @@DATAL vreg_ctr FFD78H 00000H + @@DATAL vreg_twl FFD78H 00000H + @@DATAL adc FFD78H 00000H + @@DATAL renge FFD78H 00000H + @@DATAL accero FFD78H 00000H @@DATAL self_flash - FFD7AH 00000H - @@DATAL sw FFD7AH 00000H + FFD78H 00000H + @@DATAL sw FFD78H 00000H @@DATAL task_debug - FFD7AH 00000H + FFD78H 00000H @@DATAL task_misc - FFD7AH 00000H - @@DATAL task_sys FFD7AH 00000H + FFD78H 00000H + @@DATAL task_sys FFD78H 00000H @@DATAL pedo_alg_thre_det2 - FFD7AH 00000H - @@DATAL ini_VECT FFD7AH 00000H + FFD78H 00000H + @@DATAL ini_VECT FFD78H 00000H @@DATAL task_status - FFD7AH 00000H - @@DATAL led_cam FFD7AH 00000H - @@DATAL led_pow FFD7AH 00000H - @@DATAL @rom FFD7AH 00000H -* gap * FFD7AH 00086H + FFD78H 00000H + @@DATAL led_cam FFD78H 00000H + @@DATAL led_pow FFD78H 00000H + @@DATAL @rom FFD78H 00000H +* gap * FFD78H 00088H MEMORY=RAM2 BASE ADDRESS=FFE20H SIZE=000C0H diff --git a/trunk/pm.c b/trunk/pm.c index 9c48f57..cdcdaba 100644 --- a/trunk/pm.c +++ b/trunk/pm.c @@ -22,7 +22,6 @@ // ======================================================== u8 raw_adc_temperature; BT_VENDER battery_manufacturer = BT_VENDER_NOT_CHECKED; -static st_bt_comp bt_comp; // バッテリパラメータ構造体 static u8 reg_shadow; // NTR PMIC レジスタミラー bit bt_authorized; // バッテリパラメータ送信済。充電開始許可 u8 chg_led_override; // アダプタ差したとき、充電するしないに関わらずしばらく点灯させる @@ -38,6 +37,8 @@ bit temp_zone_charge_disable; // u8 pmic_version; u8 mgic_version[2]; +static bt_param_* p_bt_param; + static err send_cmd_mgic_2B( u8 reg, u16 dat ); static err read_mgic_2B( u8 reg, u8* dat ); @@ -48,6 +49,7 @@ static void BT_mgic_quick_start(); static void BT_mgic_init(); static void bt_chk_temparature(); static void bt_get_charge_status(); +static void bt_param_select(); // ======================================================== @@ -293,6 +295,8 @@ void BT_chk() // おしまい } + bt_param_select(); // バッテリ残量補正パラメータなどセット + if(( battery_manufacturer_old != battery_manufacturer ) || bt_force_update ) { @@ -403,7 +407,6 @@ static void BT_mgic_init() { u8 temp; u8 origParam[4]; - bt_comp = BT_COMP[ battery_manufacturer ]; // バッテリパラメータ変更 /* // -1. リセットをかけてみる @@ -435,7 +438,7 @@ static void BT_mgic_init() iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam ); // 3. 一時的にOCVを変更 - send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( BT_OCV[ battery_manufacturer ] )); // マジックナンバー的なもの。メーカー指定 + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv )); // マジックナンバー的なもの。メーカー指定 // 4. 一時的にRCOMPを変更 send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, swap_endian_16( 0xFF00 ) ); @@ -443,34 +446,14 @@ static void BT_mgic_init() // 5.メーカー別パラメータのロード { // 苦肉の策... 誤判定耐性が下がるわけではないし - u8* p_batt_param; BT_VENDER bt_manuf_temp = battery_manufacturer; u8 loop; - /* 埋蔵金をつかってしまったが ↓の苦肉の策でまるめられてしまう - if( battery_manufacturer == 6 ) - { - battery_manufacturer = 5; - } - */ - - if( bt_manuf_temp > BT_VENDER_4 ) - { - bt_manuf_temp = BT_VENDER_3; // 白箱はどうでもよし - } - - if( system_status.family == FAMILY_SPFL ) - { - bt_manuf_temp += 1; - } - - p_batt_param = BT_PARAM[bt_manuf_temp]; - // 16バイトごとに区切れとのこと (ノイズ対策とか言うんだけど、意味あるんか?) for( loop = 0; loop < 4; loop++ ) { iic_mcu_set_wo_dma( ); - iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_BT_PARAM + loop*16, 16, p_batt_param + loop*16 ); + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_BT_PARAM + loop*16, 16, p_bt_param->mg_param + loop*16 ); } } @@ -478,7 +461,7 @@ static void BT_mgic_init() wait_ms( 150 + 15 ); // 7. OCVに「とある値」を書く - send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( BT_OCV[ battery_manufacturer ] ) ); // マジックナンバー的なもの。メーカー指定 + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv ) ); // マジックナンバー的なもの。メーカー指定 // 8. 150〜600ms待つ。600msは厳守 wait_ms( 150 + 15 ); @@ -486,7 +469,7 @@ static void BT_mgic_init() // 9. SOCを読む。ベリファイのため。 temp = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC ); - if(( BT_VERIFY_L[ battery_manufacturer ] <= temp ) && ( temp <= BT_VERIFY_H[ battery_manufacturer ] )) + if(( p_bt_param->verify.low <= temp ) && ( temp <= p_bt_param->verify.hi )) { // カスタムモデル書き込みOK! }else{ @@ -541,13 +524,13 @@ task_status_immed tski_BT_temp_update( ) newrcomp = 0; if( temperature > 20 ) { - newrcomp = ( ( temperature - 20 ) * bt_comp.temp_co_up )/256; + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.up )/256; } else { - newrcomp = ( ( temperature - 20 ) * bt_comp.temp_co_dn )/256; + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.down )/256; } - newrcomp = bt_comp.rcomp + newrcomp; + newrcomp = p_bt_param->rcomp.rcomp + newrcomp; if( newrcomp > 255 ) { @@ -644,7 +627,7 @@ void BT_get_left(){ { // バッテリパラメータの関係でビットシフトが必要 bt_volt16 = temp_fuel[0] * 256 + temp_fuel[1]; - bt_volt16 /= BT_RCOMP_SCALE[ battery_manufacturer ]; + bt_volt16 /= p_bt_param->v_scale; temp_fuel[0] = (u8)(( bt_volt16 >> 8 ) & 0xFF); if( temp_fuel[0] == 0 ) { @@ -1261,8 +1244,11 @@ void codec_reg_init() } - -err send_cmd_mgic_2B( u8 reg, u16 dat ) // 送信バッファは固定 +/* ============================================================ + ヘルパーというかラッパーというか? + ROM節約のため + ============================================================ */ +err send_cmd_mgic_2B( u8 reg, u16 dat ) // 送信バッファ { u16 temp = dat; return iic_mcu_write( IIC_SLA_BT_GAUGE, reg, 2, &temp ); // DMA転送するので送信データバッファのポインタがどうせ必要 @@ -1282,3 +1268,31 @@ u8 read_pmic( u8 reg ) { return iic_mcu_read_a_byte( IIC_SLA_PMIC, reg ); } + + +/* ============================================================ + 電池メーカーとモデルから、使う電池パラメータの決定 + ============================================================ */ +void bt_param_select() +{ + BT_TYPE bt_type_temp; + // 対応が増えてきたら分岐コード書き直すつもりで + if( battery_manufacturer <= BT_VENDER_3 ) + { + bt_type_temp = BT_PARAM_CTR_MAXELL; + } + else + { + bt_type_temp = BT_PARAM_CTR_PANA; + } + + if( system_status.family == FAMILY_SPFL ) + { + bt_type_temp += BT_PARAM_SPFL_MAXELL; // オフセット 残念な実装で…。 + } + else if( system_status.family == FAMILY_SHRIMP ) + { + bt_type_temp += BT_PARAM_SHRIMP_MAXELL; + } + p_bt_param = &bt_param[ bt_type_temp ]; +}