6 Commits

Author SHA1 Message Date
lmx
b28f1aade7 100_rfid 2025-11-28 09:33:33 +08:00
lmx
09f8e06e09 chore: Remove tracked build artifacts 2025-11-28 09:28:25 +08:00
lmx
60b8520267 feat: Add rfid feature and .gitignore file 2025-11-28 09:27:48 +08:00
lmx
6b8d9ea6a0 cun 2025-11-26 11:25:20 +08:00
lmx
8089cf5b3a cun 2025-11-25 16:40:37 +08:00
lmx
51788e4b88 cun 2025-11-25 16:22:28 +08:00
1176 changed files with 239 additions and 294754 deletions

1
.gitignore vendored
View File

@ -1,6 +1,5 @@
# 编译生成的目标文件
*.o
*.a
*.so
*.d

34
.vscode/settings.json vendored
View File

@ -1,34 +0,0 @@
{
"files.associations": {
"board_config.h": "c",
"board_jl701n_demo_cfg.h": "c",
"colorful_lights.h": "c",
"board_jl701n_anc_cfg.h": "c",
"update_loader_download.h": "c",
"iic_soft.h": "c",
"circle_buffer.h": "c",
"default_event_handler.h": "c",
"ui_manage.h": "c",
"charge.h": "c",
"app_main.h": "c",
"app_config.h": "c",
"app_action.h": "c",
"includes.h": "c",
"key_event_deal.h": "c",
"app_umidigi_chargestore.h": "c",
"hci_lmp.h": "c",
"bluetooth.h": "c",
"SCU722.C": "cpp",
"math.h": "c",
"avctp_user.h": "c",
"string.h": "c",
"dev_manager.h": "c",
"bt_tws.h": "c",
"skiing_tracker.h": "c",
"xtell.h": "c",
"debug.h": "c",
"ano_protocol.h": "c",
"board_jl701n_demo_global_build_cfg.h": "c",
"spi.h": "c"
}
}

View File

@ -70,6 +70,10 @@
#include "bt_background.h"
#include "default_event_handler.h"
#if (JL_EARPHONE_APP_EN)
#include "rcsp_adv_user_update.h"
#endif
#define xlog(format, ...) printf("[%s] " format, __func__, ##__VA_ARGS__)
@ -2471,6 +2475,19 @@ static int event_handler(struct application *app, struct sys_event *event)
} else if ((u32)event->arg == DEVICE_EVENT_FROM_POWER) {
return app_power_event_handler(&event->u.dev);
}
#if (JL_EARPHONE_APP_EN)
// else if ((u32)event->arg == DEVICE_EVENT_FROM_RCSP) {
// log_info("DEVICE_EVENT_FROM_RCSP: %d", event->u.rcsp.event);
// switch (event->u.rcsp.event) {
// case MSG_JL_UPDATE_START:
// log_info(">>> EARPHONE APP: MSG_JL_UPDATE_START\n");
// // You can add UI notifications here, like LED blinking or a tone.
// break;
// default:
// break;
// }
// }
#endif
#if TCFG_CHARGESTORE_ENABLE
else if ((u32)event->arg == DEVICE_EVENT_CHARGE_STORE) {
app_chargestore_event_handler(&event->u.chargestore);
@ -2790,3 +2807,4 @@ static int state_machine(struct application *app, enum app_state state, struct i
// .ops = &app_earphone_ops,
// .state = APP_STA_DESTROY,
// };

View File

@ -612,11 +612,17 @@ unsigned char ReaderV_Inventory(struct picc_v_struct *picc_v)
SetCommand(CMD_TRANSCEIVE);
rfid_delay_ms(10);
GetReg(REG_ERROR, &reg_data);
if ((reg_data & 0x0F) != 0)
if ((reg_data & 0x0F) != 0){
xlog("(reg_data & 0x0F) != 0\n");
return FAIL;
}
GetReg(REG_FIFOLENGTH, &reg_data);
if (reg_data != 10)
if (reg_data != 10){
xlog("reg_data != 10\n");
return FAIL;
}
GetReg(REG_FIFODATA, &picc_v->RESPONSE);
GetReg(REG_FIFODATA, &reg_data); // DSFID
for (i = 0; i < 8; i++)

View File

@ -62,7 +62,7 @@ void TYPE_A_EVENT(void)
result = ReaderA_CardActivate(&PICC_A);
if (result != SUCCESS)
{
// xlog("ReaderA_CardActivate_ERROR\r\n");
xlog("ReaderA_CardActivate_ERROR\r\n");
SetCW(FUN_DISABLE);
return;
}
@ -286,8 +286,11 @@ void rfid_task_fuc(void)
xlog("FM176XX HardReset SUCCESS\r\n");
}
rfid_delay_ms(10); // 复位后延时
}
// 3. 读取芯片版本号,确认通信是否正常
GetReg(REG_VERSION, &reg_data);

View File

@ -84,6 +84,8 @@ unsigned char FM176XX_SoftReset(void){
unsigned char FM176XX_HardInit(void){
gpio_set_direction(IO_PORTA_05,0); //nss
gpio_set_output_value(IO_PORTA_05, 1); //初始设置为高
spi_open(SPI1); //初始化spi1PC3、PC5
return SUCCESS;
}
@ -105,16 +107,19 @@ unsigned char GetReg(unsigned char address, unsigned char *reg_data){
addr_byte = (address << 1) | 0x01;
// ---- 开始SPI事务 ----
// gpio_set_output_value(FM176XX_CS_PIN, 0); // 拉低CS
gpio_set_output_value(IO_PORTA_05,0);
// 1. 发送地址字节,忽略接收到的数据
spi_send_byte(SPI1, addr_byte);
spi_send_byte(SPI1, addr_byte);
asm("nop");
// 2. 接收数据字节 (通过发送一个Dummy Byte 0xFF 来产生时钟)
*reg_data = spi_recv_byte(SPI1, &err);
asm("nop");
// ---- 结束SPI事务 ----
// gpio_set_output_value(FM176XX_CS_PIN, 1); // 拉高CS
gpio_set_output_value(IO_PORTA_05,1);
os_time_dly(1);
if (err != 0) {
xlog("GetReg error\n");
@ -133,17 +138,26 @@ unsigned char GetReg(unsigned char address, unsigned char *reg_data){
* 接口SPI
*/
unsigned char SetReg(unsigned char address, unsigned char reg_data){
unsigned char spi_data = (address << 1) & 0xFE;
if(spi_send_byte(SPI1, spi_data) != 0){
xlog("SetReg error 0\n");
return FAIL;
}
if(spi_send_byte(SPI1, reg_data) != 0){
xlog("SetReg error 1\n");
return FAIL;
unsigned char addr_byte = (address << 1) & 0xFE; // Bit0=0 for write
int err1, err2;
gpio_set_output_value(IO_PORTA_05,0); // <<-- CS拉低开始事务
err1 = spi_send_byte(SPI1, addr_byte); // 发送地址
asm("nop");
err2 = spi_send_byte(SPI1, reg_data); // 发送数据
asm("nop");
gpio_set_output_value(IO_PORTA_05,1); // <<-- CS拉高结束事务
os_time_dly(1);
if (err1 != 0 || err2 != 0) {
return FAIL;
}
return SUCCESS;
}

View File

@ -0,0 +1,113 @@
#include "system/includes.h"
#include "system/syscfg_id.h"
#include "nvs.h"
// 2. 定义一个唯一的配置项ID (必须在1-49之间)
#define CFG_FACTORY_INFO_ID 10
/**
* @brief 将出厂信息写入Flash
*
* @param info 指向要写入的出厂信息结构体的指针
* @return 实际写入的长度, <0: 失败
*/
int nvs_write_factory_info(const factory_info_t *info)
{
if (!info) {
return -1;
}
printf("--> Writing factory info to flash...\n");
int ret = syscfg_write(CFG_FACTORY_INFO_ID, (void*)info, sizeof(factory_info_t));
if (ret != sizeof(factory_info_t)) {
printf("!!! syscfg_write factory info failed, ret = %d\n", ret);
} else {
printf("--> syscfg_write factory info success.\n");
}
return ret;
}
/**
* @brief 从Flash读取出厂信息
*
* @param info 指向用于存储读取数据的出厂信息结构体的指针
* @return 实际读取的长度, <0: 失败 (例如尚未写入过)
*/
int nvs_read_factory_info(factory_info_t *info)
{
if (!info) {
return -1;
}
printf("--> Reading factory info from flash...\n");
int ret = syscfg_read(CFG_FACTORY_INFO_ID, (void*)info, sizeof(factory_info_t));
if (ret != sizeof(factory_info_t)) {
printf("!!! syscfg_read factory info failed, ret = %d. Maybe not set yet.\n", ret);
// 如果读取失败,清空结构体以避免使用脏数据
memset(info, 0, sizeof(factory_info_t));
} else {
printf("--> syscfg_read factory info success.\n");
// 可以在这里打印读取到的信息以供调试
printf(" Product ID: %s\n", info->product_id);
printf(" Serial No: %s\n", info->serial_number);
printf(" HW Version: 0x%x\n", info->hw_version);
}
return ret;
}
/**
* @brief 清空Flash中的出厂信息
*
* @return 0: 成功, <0: 失败
*/
int nvs_clear_factory_info(void)
{
printf("--> Clearing factory info from flash...\n");
// 写入长度为0的数据即可实现删除效果
int ret = syscfg_write(CFG_FACTORY_INFO_ID, NULL, 0);
if (ret != 0) {
printf("!!! syscfg_write clear factory info failed, ret = %d\n", ret);
} else {
printf("--> syscfg_write clear factory info success.\n");
}
return ret;
}
// 可以在这里添加一个测试函数
void nvs_test_factory_info(void)
{
factory_info_t write_info = {
.product_id = "RC_V2",
.serial_number = "SN202511260002",
.hw_version = 0x0102, // v1.1
.cal_data = 1234,
.manufacture_date = 1764080400, // 2025-11-26
};
factory_info_t read_info;
printf("\n\n--- NVS WRITE TEST ---\n");
nvs_write_factory_info(&write_info);
os_time_dly(10);
printf("\n--- NVS READ TEST ---\n");
nvs_read_factory_info(&read_info);
// ASSERT(memcmp(&write_info, &read_info, sizeof(factory_info_t)) == 0, "NVS Read/Write Check Failed!");
// printf("\n--- NVS CLEAR TEST ---\n");
// nvs_clear_factory_info();
os_time_dly(10);
printf("\n--- NVS READ AFTER CLEAR TEST ---\n");
int ret = nvs_read_factory_info(&read_info);
if(ret < 0){
printf("--- nvs read error ---\n");
}
printf("\n\n--- NVS TEST COMPLETE ---\n\n");
}

View File

@ -0,0 +1,44 @@
#ifndef __NVS_H__
#define __NVS_H__
#include "typedef.h"
// 定义出厂信息数据结构
typedef struct {
char product_id[16]; // 产品ID
char serial_number[32]; // 序列号
u16 hw_version; // 硬件版本
u16 cal_data; // 某个校准数据
u32 manufacture_date; // 生产日期 (Unix时间戳)
} factory_info_t;
/**
* @brief 将出厂信息写入Flash
*
* @param info 指向要写入的出厂信息结构体的指针
* @return 实际写入的长度, <0: 失败
*/
int nvs_write_factory_info(const factory_info_t *info);
/**
* @brief 从Flash读取出厂信息
*
* @param info 指向用于存储读取数据的出厂信息结构体的指针
* @return 实际读取的长度, <0: 失败 (例如尚未写入过)
*/
int nvs_read_factory_info(factory_info_t *info);
/**
* @brief 清空Flash中的出厂信息
*
* @return 0: 成功, <0: 失败
*/
int nvs_clear_factory_info(void);
/**
* @brief 用于测试NVS读写功能的函数
*
*/
void nvs_test_factory_info(void);
#endif // __NVS_H__

View File

@ -45,6 +45,7 @@
#include "default_event_handler.h"
#include "debug.h"
#include "system/event.h"
#include "../remote_control/nvs.h"
///////////////////////////////////////////////////////////////////////////////////////////////////
//宏定义
#define LOG_TAG_CONST EARPHONE
@ -209,11 +210,18 @@ void le_user_app_event_handler(struct sys_event* event){
if (event->u.app.buffer[0] == 0xBE && event->u.app.buffer[1] == 0xBB) {
if(event->u.app.buffer[2] == 0x01){ //后面的数据长度 1
switch (event->u.app.buffer[3]){
case 0x01:
nvs_test_factory_info();
break;
case 0x02:
factory_info_t read_info;;
nvs_read_factory_info(&read_info);
break;
case 0xff: //测试
extern void i2c_scanner_probe(void);
// i2c_scanner_probe();
extern void rfid_task_fuc(void);
create_process(&rfid_fuc_id,"rfid",NULL,rfid_task_fuc,1000);
create_process(&rfid_fuc_id,"rfid",NULL,rfid_task_fuc,4000);
break;
default:
break;

View File

@ -253,6 +253,7 @@
_MASK_MEM_BEGIN = ABSOLUTE(0x19fc00);
_MASK_MEM_SIZE = ABSOLUTE(0x1a4);
EXTERN(
_start
@ -293,6 +294,7 @@ cvsd_encoder
msbc_encoder
audio_dac_driver
);
UPDATA_SIZE = 0x80;
@ -428,7 +430,8 @@ SECTIONS
battery_notify_begin = .;
*(.battery_notify)
battery_notify_end = .;
. = ALIGN(4);
. = ALIGN(4);
__VERSION_BEGIN = .;
KEEP(*(.sys.version))
__VERSION_END = .;
@ -518,6 +521,7 @@ SECTIONS
*(.audio_track_data)
*(.audio_adc_data)
. = ALIGN(4);
*(.data*)
@ -726,6 +730,7 @@ SECTIONS
} > ram0
data_code_pc_limit_end = .;
__report_overlay_end = .;
@ -815,6 +820,7 @@ SECTIONS
}
SECTIONS
{
.data : ALIGN(4)
@ -846,6 +852,7 @@ SECTIONS
UPDATE_CODE_TOTAL_SIZE = update_code_end - update_code_start;
}
SECTIONS
{
.data : ALIGN(4)
@ -948,6 +955,7 @@ BTSTACK_LE_HOST_MESH_RAM_TOTAL = BTSTACK_LE_HOST_MESH_DATA_SIZE + BTSTACK_LE_HOS
BTSTACK_LE_HOST_MESH_FLASH_TOTAL = BTSTACK_LE_HOST_MESH_CODE_SIZE;
BTSTACK_CODE_SIZE = (btstack_code_end - btstack_code_start) + (btstack_data_end - btstack_data_start);
SECTIONS
{
.data : ALIGN(4)
@ -1241,6 +1249,7 @@ SECTIONS
*(.os_code)
} > ram0
}
SECTIONS
{
.data : ALIGN(4)
@ -1450,6 +1459,7 @@ SECTIONS
BTCTLER_RAM_TOTAL = (btctler_data_end - btctler_data_start) + (btctler_bss_end - btctler_bss_start);
BTCTLER_CODE_TOTAL = (btctler_code_end - btctler_code_start);
}
SECTIONS
{
.data : ALIGN(4)
@ -1567,7 +1577,8 @@ SECTIONS
*(.timer.text.cache.L1)
*(.gpio.text.cache.L1)
*(.iic_hw.text.cache.L1)
driver_data_code_end = .;
driver_data_code_end = .;
. = ALIGN(4);
} > ram0
@ -1577,6 +1588,7 @@ SECTIONS
DRIVER_DATA_CODE_TOTAL = (driver_data_code_end - driver_data_code_start);
}
SECTIONS
{
.data : ALIGN(4)
@ -2016,6 +2028,7 @@ SECTIONS
} > ram0
}
text_begin = ADDR(.text);
text_size = SIZEOF(.text);
text_end = text_begin + text_size;

View File

@ -1,54 +0,0 @@
sdfile_vfs_ops
sbc_decoder
msbc_decoder
sbc_hwaccel
cvsd_decoder
pcm_decoder
mp3_decoder
wtgv2_decoder
aac_decoder
cvsd_encoder
msbc_encoder
audio_dac_driver

View File

@ -417,8 +417,8 @@ int spi_open(spi_dev spi)
spi_role_slave(spi_regs[id]);
}
spi_smp_edge_rise(spi_regs[id]); // 采样边沿:上升沿 (Sample edge: Rise) --lmx
// spi_ud_edge_fall(spi_regs[id]); // 更新边沿:下降沿 (Update edge: Fall)
spi_ud_edge_rise(spi_regs[id]); // 更新边沿:上升沿 (Update edge: Fall)
spi_ud_edge_fall(spi_regs[id]); // 更新边沿:下降沿 (Update edge: Fall)
// spi_ud_edge_rise(spi_regs[id]); // 更新边沿:上升沿 (Update edge: Fall)
spi_clk_idle_l(spi_regs[id]); // 时钟空闲:低电平 (Clock idle: Low)
spi_cs_idle_h(spi_regs[id]);
spi_clr_pnd(spi_regs[id]);

View File

View File

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +0,0 @@
64F3350FE2590FAF79755623B7E159CE83FAD97C34014E5EB2B528F6D6C2DABAB3B7C88C

View File

@ -1 +0,0 @@
1cfdc466ec927dbedd4d12447b6bbff1da1bd6ddb6b375ecda1bd6ddb6b375ec950b1206

View File

@ -1 +0,0 @@
39209e0c95b837ce6cd626f6b1d566a6a5fed6fa11cd451ba5fed6fa11cd451b9a3f2514

View File

@ -1,49 +0,0 @@
@echo off
cd %~dp0
copy ..\..\script.ver .
copy ..\..\tone.cfg .
copy ..\..\p11_code.bin .
copy ..\..\br28loader.bin .
copy ..\..\ota.bin .
copy ..\..\anc_coeff.bin .
copy ..\..\anc_gains.bin .
..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br28 -boot 0x120000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin -res ..\..\cfg_tool.bin tone.cfg p11_code.bin ..\..\eq_cfg_hw.bin -uboot_compress -key AC69.key -format all -key 646-AC690X-7603.key
@REM..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br34 -boot 0x20000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin ..\..\cfg_tool.bin -res tone.cfg kws_command.bin p11_code.bin -uboot_compress
:: -format all
::-reboot 2500
@rem ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD>-format all
if exist *.mp3 del *.mp3
if exist *.PIX del *.PIX
if exist *.TAB del *.TAB
if exist *.res del *.res
if exist *.sty del *.sty
..\..\ufw_maker.exe -fw_to_ufw jl_isd.fw
copy jl_isd.ufw update.ufw
del jl_isd.ufw
@REM <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
::ufw_maker.exe -chip AC800X %ADD_KEY% -output config.ufw -res bt_cfg.cfg
::IF EXIST jl_696x.bin del jl_696x.bin
if exist script.ver del script.ver
if exist tone.cfg del tone.cfg
if exist p11_code.bin del p11_code.bin
if exist br28loader.bin del br28loader.bin
if exist anc_coeff.bin del anc_coeff.bin
if exist anc_gains.bin del anc_gains.bin
@rem <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
@rem -format vm //<2F><><EFBFBD><EFBFBD>VM <20><><EFBFBD><EFBFBD>
@rem -format cfg //<2F><><EFBFBD><EFBFBD>BT CFG <20><><EFBFBD><EFBFBD>
@rem -format 0x3f0-2 //<2F><>ʾ<EFBFBD>ӵ<EFBFBD> 0x3f0 <20><> sector <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><> sector(<28><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ16<31><36><EFBFBD>ƻ<EFBFBD>10<31><30><EFBFBD>ƶ<EFBFBD><C6B6>ɣ<EFBFBD><C9A3>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>)
ping /n 2 127.1>null
IF EXIST null del null

View File

@ -1,49 +0,0 @@
@echo off
cd %~dp0
copy ..\..\script.ver .
copy ..\..\tone.cfg .
copy ..\..\p11_code.bin .
copy ..\..\br28loader.bin .
copy ..\..\ota.bin .
copy ..\..\anc_coeff.bin .
copy ..\..\anc_gains.bin .
..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br28 -boot 0x120000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin -res ..\..\cfg_tool.bin tone.cfg p11_code.bin ..\..\eq_cfg_hw.bin -uboot_compress -key 646-AC690X-7603.key
@REM..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br34 -boot 0x20000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin ..\..\cfg_tool.bin -res tone.cfg kws_command.bin p11_code.bin -uboot_compress
:: -format all
::-reboot 2500
@rem ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD>-format all
if exist *.mp3 del *.mp3
if exist *.PIX del *.PIX
if exist *.TAB del *.TAB
if exist *.res del *.res
if exist *.sty del *.sty
..\..\ufw_maker.exe -fw_to_ufw jl_isd.fw
copy jl_isd.ufw update.ufw
del jl_isd.ufw
@REM <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
::ufw_maker.exe -chip AC800X %ADD_KEY% -output config.ufw -res bt_cfg.cfg
::IF EXIST jl_696x.bin del jl_696x.bin
if exist script.ver del script.ver
if exist tone.cfg del tone.cfg
if exist p11_code.bin del p11_code.bin
if exist br28loader.bin del br28loader.bin
if exist anc_coeff.bin del anc_coeff.bin
if exist anc_gains.bin del anc_gains.bin
@rem <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
@rem -format vm //<2F><><EFBFBD><EFBFBD>VM <20><><EFBFBD><EFBFBD>
@rem -format cfg //<2F><><EFBFBD><EFBFBD>BT CFG <20><><EFBFBD><EFBFBD>
@rem -format 0x3f0-2 //<2F><>ʾ<EFBFBD>ӵ<EFBFBD> 0x3f0 <20><> sector <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><> sector(<28><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ16<31><36><EFBFBD>ƻ<EFBFBD>10<31><30><EFBFBD>ƶ<EFBFBD><C6B6>ɣ<EFBFBD><C9A3>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>)
ping /n 2 127.1>null
IF EXIST null del null

View File

@ -1,49 +0,0 @@
@echo off
cd %~dp0
copy ..\..\script.ver .
copy ..\..\tone.cfg .
copy ..\..\p11_code.bin .
copy ..\..\br28loader.bin .
copy ..\..\ota.bin .
copy ..\..\anc_coeff.bin .
copy ..\..\anc_gains.bin .
:: -format all -key AC690X-8029.key
..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br28 -boot 0x120000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin -res ..\..\cfg_tool.bin tone.cfg p11_code.bin ..\..\eq_cfg_hw.bin -uboot_compress
@REM..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br34 -boot 0x20000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin ..\..\cfg_tool.bin -res tone.cfg kws_command.bin p11_code.bin -uboot_compress
:: -format all
::-reboot 2500
@rem ɾ ʱ ļ -format all
if exist *.mp3 del *.mp3
if exist *.PIX del *.PIX
if exist *.TAB del *.TAB
if exist *.res del *.res
if exist *.sty del *.sty
..\..\ufw_maker.exe -fw_to_ufw jl_isd.fw
copy jl_isd.ufw update.ufw
del jl_isd.ufw
@REM ļ ļ
::ufw_maker.exe -chip AC800X %ADD_KEY% -output config.ufw -res bt_cfg.cfg
::IF EXIST jl_696x.bin del jl_696x.bin
if exist script.ver del script.ver
if exist tone.cfg del tone.cfg
if exist p11_code.bin del p11_code.bin
if exist br28loader.bin del br28loader.bin
if exist anc_coeff.bin del anc_coeff.bin
if exist anc_gains.bin del anc_gains.bin
@rem ˵
@rem -format vm // VM
@rem -format cfg // BT CFG
@rem -format 0x3f0-2 // ʾ ӵ 0x3f0 sector ʼ 2 sector( һ Ϊ16 ƻ 10 ƶ ɣ ڶ 10 )
ping /n 2 127.1>null
IF EXIST null del null

View File

@ -1,50 +0,0 @@
@echo off
cd %~dp0
copy ..\..\script.ver .
copy ..\..\tone.cfg .
copy ..\..\p11_code.bin .
copy ..\..\br28loader.bin .
copy ..\..\ota.bin .
copy ..\..\anc_coeff.bin .
copy ..\..\anc_gains.bin .
:: -format all -key AC690X-8029.key
..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br28 -boot 0x120000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin -res ..\..\cfg_tool.bin tone.cfg p11_code.bin ..\..\eq_cfg_hw.bin -uboot_compress -key AC690X-8029.key
@REM..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br34 -boot 0x20000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin ..\..\cfg_tool.bin -res tone.cfg kws_command.bin p11_code.bin -uboot_compress
:: -format all
::-reboot 2500
@rem ɾ ʱ ļ -format all
if exist *.mp3 del *.mp3
if exist *.PIX del *.PIX
if exist *.TAB del *.TAB
if exist *.res del *.res
if exist *.sty del *.sty
..\..\ufw_maker.exe -fw_to_ufw jl_isd.fw
copy jl_isd.ufw update.ufw
del jl_isd.ufw
@REM ļ ļ
::ufw_maker.exe -chip AC800X %ADD_KEY% -output config.ufw -res bt_cfg.cfg
::IF EXIST jl_696x.bin del jl_696x.bin
if exist script.ver del script.ver
if exist tone.cfg del tone.cfg
if exist p11_code.bin del p11_code.bin
if exist br28loader.bin del br28loader.bin
if exist anc_coeff.bin del anc_coeff.bin
if exist anc_gains.bin del anc_gains.bin
@rem ˵
@rem -format vm // VM
@rem -format cfg // BT CFG
@rem -format 0x3f0-2 // ʾ ӵ 0x3f0 sector ʼ 2 sector( һ Ϊ16 ƻ 10 ƶ ɣ ڶ 10 )
ping /n 2 127.1>null
IF EXIST null del null

View File

@ -1,47 +0,0 @@
@echo off
cd %~dp0
copy ..\..\script.ver .
copy ..\..\tone.cfg .
copy ..\..\p11_code.bin .
copy ..\..\br28loader.bin .
..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br28 -boot 0x120000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin -res tone.cfg ..\..\cfg_tool.bin ..\..\eq_cfg_hw.bin p11_code.bin -uboot_compress
:: -format all
::-reboot 2500
@rem ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD>-format all
if exist *.mp3 del *.mp3
if exist *.PIX del *.PIX
if exist *.TAB del *.TAB
if exist *.res del *.res
if exist *.sty del *.sty
@rem <20><><EFBFBD>ɹ̼<C9B9><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
..\..\fw_add.exe -noenc -fw jl_isd.fw -add ..\..\ota.bin -type 100 -out jl_isd.fw
@rem <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ýű<C3BD><C5B1>İ汾<C4B0><E6B1BE>Ϣ<EFBFBD><CFA2> FW <20>ļ<EFBFBD><C4BC><EFBFBD>
..\..\fw_add.exe -noenc -fw jl_isd.fw -add script.ver -out jl_isd.fw
..\..\ufw_maker.exe -fw_to_ufw jl_isd.fw
copy jl_isd.ufw update.ufw
del jl_isd.ufw
@REM <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
::ufw_maker.exe -chip AC800X %ADD_KEY% -output config.ufw -res bt_cfg.cfg
::IF EXIST jl_696x.bin del jl_696x.bin
if exist script.ver del script.ver
if exist tone.cfg del tone.cfg
if exist p11_code.bin del p11_code.bin
if exist br28loader.bin del br28loader.bin
@rem <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
@rem -format vm //<2F><><EFBFBD><EFBFBD>VM <20><><EFBFBD><EFBFBD>
@rem -format cfg //<2F><><EFBFBD><EFBFBD>BT CFG <20><><EFBFBD><EFBFBD>
@rem -format 0x3f0-2 //<2F><>ʾ<EFBFBD>ӵ<EFBFBD> 0x3f0 <20><> sector <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><> sector(<28><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ16<31><36><EFBFBD>ƻ<EFBFBD>10<31><30><EFBFBD>ƶ<EFBFBD><C6B6>ɣ<EFBFBD><C9A3>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>)
ping /n 2 127.1>null
IF EXIST null del null

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,82 +0,0 @@
[EXTRA_CFG_PARAM]
NEW_FLASH_FS = YES;
CHIP_NAME = AC701N;
ENTRY = 0x6000100;
PID = AC701N;
VID = 0.01;
SDK_VERSION = JL701N_V1.6.1;
RESERVED_OPT = 0;
UFW_ELEMENT = 0x10 - 0x0, 0x1 - 0x0;
DOWNLOAD_MODEL = USB;
SERIAL_DEVICE_NAME = JlVirtualJtagSerial;
SERIAL_BARD_RATE = 1000000;
SERIAL_CMD_OPT = 2;
SERIAL_CMD_RATE = 100;
SERIAL_CMD_RES = 0;
SERIAL_INIT_BAUD_RATE = 9600;
LOADER_BAUD_RATE = 1000000;
LOADER_ASK_BAUD_RATE = 1000000;
BEFORE_LOADER_WAIT_TIME = 150;
SERIAL_SEND_KEY = YES;
[CHIP_VERSION]
SUPPORTED_LIST = P, B;
[SYS_CFG_PARAM]
SPI = 2_3_0_0;
UTTX = PB02;
UTBD = 1000000;
UTRX = PP00;
[FW_ADDITIONAL]
FILE_LIST = (file = ota.bin: type = 100);
[RESERVED_CONFIG]
BTIF_ADR = AUTO;
BTIF_LEN = 0x1000;
BTIF_OPT = 1;
PRCT_ADR = 0;
PRCT_LEN = CODE_LEN;
PRCT_OPT = 2;
VM_ADR = 0;
VM_LEN = 8K;
VM_OPT = 1;
[BURNER_CONFIG]
SIZE = 32;

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More