Browse Source

移植RDA5807M的驱动,打通IO输出32.768K频率,需要测试RDA5807M芯片,看收音是否正常

caihoucong 2 months ago
parent
commit
c5455809f8
21 changed files with 1635 additions and 1021 deletions
  1. 3 3
      sdk_560x_01x_s2256_20241227/app/platform/bsp/bsp_audio.c
  2. 1 1
      sdk_560x_01x_s2256_20241227/app/platform/bsp/bsp_audio.h
  3. 36 9
      sdk_560x_01x_s2256_20241227/app/platform/bsp/bsp_fmrx.c
  4. 1 1
      sdk_560x_01x_s2256_20241227/app/platform/bsp/bsp_fmrx.h
  5. 10 6
      sdk_560x_01x_s2256_20241227/app/platform/functions/func_fmrx.c
  6. 522 0
      sdk_560x_01x_s2256_20241227/app/platform/functions/func_rda5807m.c
  7. 22 0
      sdk_560x_01x_s2256_20241227/app/platform/functions/func_rda5807m.h
  8. BIN
      sdk_560x_01x_s2256_20241227/app/projects/standard/Output/bin/AB5602D_YinWo_TD009(ikF-FM听力蓝牙耳机)_CHC_EN_V0.0.4_20250505_RDA5807M(00006BCA_BB895AAC).prd
  9. BIN
      sdk_560x_01x_s2256_20241227/app/projects/standard/Output/bin/app.bin
  10. BIN
      sdk_560x_01x_s2256_20241227/app/projects/standard/Output/bin/app.dcf
  11. BIN
      sdk_560x_01x_s2256_20241227/app/projects/standard/Output/bin/app.rv32
  12. 801 792
      sdk_560x_01x_s2256_20241227/app/projects/standard/Output/bin/map.txt
  13. BIN
      sdk_560x_01x_s2256_20241227/app/projects/standard/Output/obj/platform/bsp/bsp_fmrx.o
  14. BIN
      sdk_560x_01x_s2256_20241227/app/projects/standard/Output/obj/platform/bsp/bsp_sys.o
  15. BIN
      sdk_560x_01x_s2256_20241227/app/projects/standard/Output/obj/platform/functions/func_fmrx.o
  16. BIN
      sdk_560x_01x_s2256_20241227/app/projects/standard/Output/obj/platform/functions/func_qn8035.o
  17. BIN
      sdk_560x_01x_s2256_20241227/app/projects/standard/Output/obj/platform/functions/func_rda5807m.o
  18. 4 0
      sdk_560x_01x_s2256_20241227/app/projects/standard/app.cbp
  19. 13 6
      sdk_560x_01x_s2256_20241227/app/projects/standard/app.depend
  20. 215 200
      sdk_560x_01x_s2256_20241227/app/projects/standard/app.layout
  21. 7 3
      sdk_560x_01x_s2256_20241227/app/projects/standard/config.h

+ 3 - 3
sdk_560x_01x_s2256_20241227/app/platform/bsp/bsp_audio.c

@@ -46,7 +46,7 @@ void tom_cat_sdadc_process(u8 *ptr, u32 samples, int ch_mode);
     #define karaok_sdadc_callback   sdadc_dummy
 #endif
 
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
 #define fmrx_sdadc_callback     fmrx_sdadc_process
 #endif // FMRX_QN8035_EN
 
@@ -63,7 +63,7 @@ const sdadc_cfg_t rec_cfg_tbl[] = {
     {MIC_CHANNEL_CFG,   SPR_44100,  (12 << 6),   ADC2SRC_EN,     0,      256,    karaok_sdadc_callback},         /* KARAOK  */
     {MIC_CHANNEL_CFG,   SPR_44100,  (12 << 6),   ADC2DAC_EN,     0,      128,    mic_trim_sdadc_callback},
     {MIC_CHANNEL_CFG,   SPR_16000,  (12 << 6),   ADC2DAC_EN,     0,      256,    tom_cat_sdadc_callback},
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
     {FMRX_CHANNEL_CFG, SPR_44100,   (2 << 6),    ADC2DAC_EN,     0,      256,    fmrx_sdadc_callback},
 #endif // FMRX_QN8035_EN
 };
@@ -83,7 +83,7 @@ void audio_path_init(u8 path_idx)
     }
 #endif // FUNC_AUX_EN
 
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
     if (path_idx == AUDIO_PATH_FM)
     {
         memcpy(&cfg, &rec_cfg_tbl[AUDIO_PATH_FM], sizeof(sdadc_cfg_t));

+ 1 - 1
sdk_560x_01x_s2256_20241227/app/platform/bsp/bsp_audio.h

@@ -8,7 +8,7 @@
 #define AUDIO_PATH_KARAOK          4
 #define AUDIO_PATH_MICTRIM         5
 #define AUDIO_PATH_TOM_CAT         6
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
 #define AUDIO_PATH_FM              7
 #endif // FMRX_QN8035_EN
 

+ 36 - 9
sdk_560x_01x_s2256_20241227/app/platform/bsp/bsp_fmrx.c

@@ -4,7 +4,7 @@
 AT(.com_text.fmrx.isr)
 void fmrx_tmr1ms_isr(void)
 {
-#if !FMRX_QN8035_EN
+#if ((!FMRX_QN8035_EN) && (!FMRX_RDA5807M_EN))
     if (func_cb.sta == FUNC_FMRX) {
         fmrx_dac_sync();
     }
@@ -175,7 +175,7 @@ u8 fmrx_auto_narrow_filter(void)
 AT(.text.bsp.fmrx)
 void fmrx_threshold_init(void)
 {
-#if !FMRX_QN8035_EN
+#if ((!FMRX_QN8035_EN) && (!FMRX_RDA5807M_EN))
     fmrx_thd.r_val = FMRX_THRESHOLD_VAL;
     fmrx_thd.z_val = FMRX_THRESHOLD_Z;
     fmrx_thd.fz_val = FMRX_THRESHOLD_FZ;
@@ -189,7 +189,14 @@ void bsp_fmrx_init(void)
     printf("%s\n", __func__);
 #if FMRX_QN8035_EN
     qn8035_init();
-#else
+    return;
+#endif // FMRX_QN8035_EN
+
+#if FMRX_RDA5807M_EN
+    rda5807_init();
+    return;
+#endif // FMRX_RDA5807M_EN
+
     fmrx_power_on(FMRX_THRESHOLD_VAL);
 #if FMRX_REC_EN
     rec_src.spr = SPR_44100;
@@ -204,18 +211,22 @@ void bsp_fmrx_init(void)
     rec_src.source_start = fmrx_rec_start;
     rec_src.source_stop  = fmrx_rec_stop;
 #endif
-#endif // FMRX_QN8035_EN
 }
 
 
 AT(.text.bsp.fmrx)
 void bsp_fmrx_exit(void)
 {
+#if FMRX_RDA5807M_EN
+    rda5807_powerdown();
+    return;
+#endif // FMRX_RDA5807M_EN
 #if FMRX_QN8035_EN
     qn8035_off();
-#else
-    fmrx_power_off();
+    return;
 #endif // FMRX_QN8035_EN
+
+    fmrx_power_off();
 }
 
 AT(.text.bsp.fmrx)
@@ -223,29 +234,45 @@ void bsp_fmrx_set_volume(u8 vol)
 {
 #if FMRX_QN8035_EN
     qn8035_set_vol(vol);
+    return;
 #endif
+
+#if FMRX_RDA5807M_EN
+    rda5807_set_vol(vol);
+    return;
+#endif // FMRX_RDA5807M_EN
 }
 
 
 AT(.text.bsp.fmrx)
 void bsp_fmrx_set_freq(u16 freq)
 {
+#if FMRX_RDA5807M_EN
+    rda5807m_set_frequency(freq);
+    return;
+#endif // FMRX_RDA5807M_EN
+
 #if FMRX_QN8035_EN
     qnd8035_set_freq(freq);
-#else
+    return;
+#endif // FMRX_QN8035_EN
+
     fmrx_set_freq(freq);
     fmrx_set_audio_channel_dual(FMRX_AUDIO_CHANNEL);  //FFM输出声道选则,一般单声道比双声道噪音会小些  //0 Mono  //1 Dual
     if (xcfg_cb.fmrx_cs_filter_fixed) {
         //若指标测试时发射机调制深度加大,FM收到后有失真,可以继续加大cs_filter值即可减少失真, 但也要留意,cs_filter值越大,理论上引入的噪声越多。
         fmrx_set_cs_filter(xcfg_cb.fmrx_cs_filter_sel);
     }
-#endif // FMRX_QN8035_EN
 }
 
 
 AT(.text.bsp.fmrx)
 u8 bsp_fmrx_check_freq(u16 freq)
 {
+#if FMRX_RDA5807M_EN
+    //不需要,单独写了一套搜台
+    return;
+#endif // FMRX_RDA5807M_EN
 #if FMRX_QN8035_EN
     return qn8035_seek(freq);
 #else
@@ -263,7 +290,7 @@ void bsp_fmrx_logger_out(void)
     fmrx_logger_out();
 }
 
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
 AT(.text.bsp.fmrx)
 void fmrx_sdadc_process(u8 *ptr, u32 samples, int ch_mode)
 {

+ 1 - 1
sdk_560x_01x_s2256_20241227/app/platform/bsp/bsp_fmrx.h

@@ -21,7 +21,7 @@ void fmrx_test_channel_switch(u8 dir);
 #endif
 
 
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
 void fmrx_sdadc_process(u8 *ptr, u32 samples, int ch_mode);
 #endif // FMRX_QN8035_EN
 

+ 10 - 6
sdk_560x_01x_s2256_20241227/app/platform/functions/func_fmrx.c

@@ -41,7 +41,7 @@ void func_fmrx_mp3_res_play(u32 addr, u32 len)
     if (fmrx_cb.sta == FMRX_PAUSE) {
         mp3_res_play(addr, len);
     } else {
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
         bsp_aux_stop(FMRX_CHANNEL_CFG, ((u8)FMRX_2_SDADC_EN << 7) | AUDIO_PATH_FM);
 #else
         dac_fade_out();
@@ -49,7 +49,7 @@ void func_fmrx_mp3_res_play(u32 addr, u32 len)
         fmrx_digital_stop();
 #endif // FMRX_QN8035_EN
         mp3_res_play(addr, len);
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
         bsp_aux_start(FMRX_CHANNEL_CFG, FMRX_AUX_ANL_GAIN, ((u8)FMRX_2_SDADC_EN << 7) | AUDIO_PATH_FM);
 #else
         fmrx_digital_start();
@@ -63,7 +63,7 @@ AT(.text.func.fmrx)
 void func_fmrx_pause_play(void)
 {
     if (fmrx_cb.sta == FMRX_PLAY) {
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
         bsp_aux_stop(FMRX_CHANNEL_CFG, ((u8)FMRX_2_SDADC_EN << 7) | AUDIO_PATH_FM);
 #else
         dac_fade_out();
@@ -73,7 +73,7 @@ void func_fmrx_pause_play(void)
         fmrx_cb.sta = FMRX_PAUSE;
         led_idle();
     } else if (fmrx_cb.sta == FMRX_PAUSE) {
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
         bsp_aux_start(FMRX_CHANNEL_CFG, FMRX_AUX_ANL_GAIN, ((u8)FMRX_2_SDADC_EN << 7) | AUDIO_PATH_FM);
 #else
         fmrx_digital_start();
@@ -284,6 +284,9 @@ void func_fmrx_process(void)
 
     func_process();
     func_fmrx_box_event();
+#if FMRX_RDA5807M_EN
+    rda5807m_seek_all();
+#else
     switch (fmrx_cb.sta) {
         case FMRX_PLAY:
             break;
@@ -370,6 +373,7 @@ void func_fmrx_process(void)
             fmrx_seek_stop();
             break;
     }
+#endif // FMRX_RDA5807M_EN
 }
 
 
@@ -418,7 +422,7 @@ void func_fmrx_enter(void)
 
     MEMCON &= ~0x3ff;                   // ram & rom memory always work
 
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
     WDT_CLR();
     #if (FMRX_CLOCK == FM_USE_IO_32KHZ_CLK)
     printf("fang bo\n");
@@ -449,7 +453,7 @@ void func_fmrx_enter(void)
 AT(.text.func.fmrx)
 void func_fmrx_exit(void)
 {
-#if FMRX_QN8035_EN
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
     bsp_aux_stop(FMRX_CHANNEL_CFG, ((u8)FMRX_2_SDADC_EN << 7) | AUDIO_PATH_FM);
 #endif
     dac_fade_out();

+ 522 - 0
sdk_560x_01x_s2256_20241227/app/platform/functions/func_rda5807m.c

@@ -0,0 +1,522 @@
+#include "include.h"
+#include "func_rda5807m.h"
+#include "func_hlw.h"
+
+#if HLW_UI
+
+
+
+
+#define HLW_FUNC_TRACE_EN                1
+
+#if HLW_FUNC_TRACE_EN
+#define TRACE(...)              printf(__VA_ARGS__)
+#define TRACE_R(...)            print_r(__VA_ARGS__)
+#else
+#define TRACE(...)
+#define TRACE_R(...)
+#endif
+
+
+#if FMRX_RDA5807M_EN
+
+#define RDA5807_WR_ADDRESS  0x20       ///<RDA5807 写地址
+#define RDA5807_RD_ADDRESS  0x21       ///<RDA5807 读地址
+#define RDA5807M_ID     0x58
+u8 rda5807_dat[12]; //02H 0+1 03H 2+3 ~~
+u8 read_dat[10];
+u8 g_iic_busy;
+u8 rda5807_init_dat[12]={
+    //02H 15:Audio Output 14:Mute 13:Mono Select 12:Bass Boost
+    //    11:RCLK always  10:RCLK DIRECT INPUT 9:0=Seek down;1=Seek up 8:Seek
+    //    7:Seek Mode     6~4:CLK 000=32.768kHz  3:RDS/RBDS enable 1:SOFT_RESET 0:Power Up Enable
+    0xC2,0x05,
+    //03H 15~6:CHAN  ChannelSelect=Channel Spacing (kHz) x CHAN+ 87.0 MHz 87.5=0.1x5+87.0
+    //    4:TUNE  3~2:Band 00=87–108MHz 1~0: Channel Spacing 00=100kHz=0.1MHz
+    //    0000 0000 00|00 0000      5(101) 0000 0001 0101 0000
+    0x01,0x50,
+    //04H 8:AFC 6:I2S_ENABLE
+    0x05,0x00,
+    //05H 11~8:Seek SNR threshold value 3~0:VOLUME 0000=min;1111=max //1000 1000 0000 1111
+    0xC3,0xAB, //1010 1011
+    //06H
+    0x60,0x00,
+    //07H 14~10:TH_SOFRBLEND 7~2:SEEK_TH_OLD
+    0x0A,0x0A,//0|100 00|10 0|000 10|10
+};
+
+//5807M,5807FP,5807NN,5807NP
+uint8_t RDA5807N_initialization_reg[]={
+    0xC2, 0x05,
+    0x01, 0x50,
+    0x05, 0x00,
+    0xC3, 0xAB,  //05h
+    0x60, 0x00,
+    0x0A, 0x0A,
+    0x00, 0x00,
+    0x00, 0x00,
+    0x00, 0x00,  //0x0ah
+    0x00, 0x00,
+    0x00, 0x00,
+    0x00, 0x00,
+    0x00, 0x00,
+    0x00, 0x00,
+    0x00, 0x00,  //0x10h
+    0x00, 0x19,
+    0x2a, 0x11,
+    0xB0, 0x42,
+    0x2A, 0x11,  //
+    0xb8, 0x31,  //0x15h
+    0xc0, 0x00,
+    0x2a, 0x91,
+    0x94, 0x00,
+    0x00, 0xa8,
+    0xc4, 0x00,  //0x1ah
+    0xF7, 0xcF,
+    0x12, 0x14,  //0x1ch   如果客户反映芯片高温会时断时续 改成0x12,0x14
+    0x80, 0x6F,
+    0x46, 0x08,
+    0x00, 0x86,  //10000110
+    0x06, 0x61,  //0x20H
+    0x00, 0x00,  //某些方案上TUNE以后出来声音慢,可以将这个寄存器修改成0x00,0x03
+    0x10, 0x9E,
+    0x23, 0xC8,
+    0x04, 0x06,
+    0x0E, 0x1C,  //0x25H     //0x04 0x08
+};
+
+AT(.text.rda5807m)
+void iic_sendbyte(uint8_t byte)
+{
+    bsp_i2c_tx_byte(byte);
+    bsp_i2c_rx_ack();
+    delay_us(1);
+}
+
+AT(.text.rda5807m)
+uint8_t iic_revbyte(uint8_t para)
+{
+    u8 tbyte;
+    tbyte = bsp_i2c_rx_byte();
+    if(para) bsp_i2c_tx_nack();
+    else bsp_i2c_tx_ack();
+    delay_us(1);
+    return tbyte;
+}
+
+AT(.text.rda5807m)
+void iic_writen(u8 chip_id, u8 iic_addr, u8 *iic_dat, u8 n)
+{
+    g_iic_busy  = 1;
+    bsp_i2c_start();                //I2C启动
+    iic_sendbyte(chip_id);         //写命令
+
+    if (0xff != iic_addr) {
+        iic_sendbyte(iic_addr);   //写地址
+    }
+    for (; n > 0; n--) {
+        iic_sendbyte(*iic_dat++);      //写数据
+    }
+
+    bsp_i2c_stop();                 //I2C停止时序
+    g_iic_busy = 0;
+}
+
+AT(.text.rda5807m)
+void iic_readn(u8 chip_id, u8 iic_addr, u8 *iic_dat, u8 n)
+{
+    g_iic_busy = 1;
+    bsp_i2c_start();                //I2C启动
+    iic_sendbyte(chip_id);         //写命令
+
+    if (0xff != iic_addr) {
+        iic_sendbyte(iic_addr);   //写地址
+    }
+    for (; n > 1; n--) {
+        *iic_dat++ = iic_revbyte(0);      //读数据
+    }
+    *iic_dat++ = iic_revbyte(1);
+
+    bsp_i2c_stop();                 //I2C停止时序
+    g_iic_busy = 0;
+}
+
+AT(.text.rda5807m)
+void rda5807_write(u8 num)
+{
+    iic_writen(RDA5807_WR_ADDRESS, 0xff, (u8 *)rda5807_dat, num);
+}
+
+AT(.text.rda5807m)
+void rda5807_read(u8 num)
+{
+    iic_readn(RDA5807_RD_ADDRESS, 0xff, read_dat, num);
+}
+
+AT(.text.rda5807m)
+uint8_t rda5807_read_id(void)
+{
+    /*bsp_i2c_start();
+    delay_5ms(20);
+    bsp_i2c_stop();
+    return 0;*/
+
+    printf("rda5807_read_id\n");
+    rda5807_dat[0] = 0x00;//high 8byte
+    rda5807_dat[1] = 0x02;//low 8byte
+    rda5807_write(2);
+    delay_5ms(2);
+
+    rda5807_read(10);
+    //app_IIC_readn(RDA5807_RD_ADDRESS, 0xff, (u8 *)rda5807_dat, 10);
+    //printf("rda5807_read_id\n");
+    for(u8 i=0;i<10;i++){
+        printf(" %02x ",read_dat[i]);
+    }
+    printf("\n");
+    //printf("test1\n");
+    //bsp_i2c_delay(1000);
+    //printf("test2\n");
+
+    return read_dat[8];
+}
+
+AT(.text.rda5807m)
+bool rda5807_init(void)
+{
+	bsp_i2c_init();
+	u8 SNR_threshold=3;//11:8  0x0f 0~15
+	u8 SEEK_TH_OLD=2; //7:2 <<2 0x3f 0~63
+
+	if(rda5807_read_id() != RDA5807M_ID)//检查系统是否正常,初始化失败
+		return 0;
+	else                            //初始化成功
+        {
+            rda5807_init_dat[6] = (SNR_threshold&0x0f) | (rda5807_init_dat[6]&0xf0);
+            rda5807_init_dat[11] = ((SEEK_TH_OLD&0x3f)<<2) | (rda5807_init_dat[11]&0x03);
+            printf("init_threshold:%02x  %02x\n",rda5807_init_dat[6],rda5807_init_dat[11]);
+            RDA5807N_initialization_reg[6]=rda5807_init_dat[6];
+            RDA5807N_initialization_reg[11]=rda5807_init_dat[11];
+            for(u8 i=0;i<12;i++){
+                rda5807_dat[i]=rda5807_init_dat[i];
+            }
+            rda5807_write(12);
+            delay_5ms(40);
+            iic_writen(RDA5807_WR_ADDRESS, 0xff, (uint8_t *)&RDA5807N_initialization_reg[0], sizeof(RDA5807N_initialization_reg));
+            return 1;
+		}
+}
+
+AT(.text.rda5807m)
+u8 rda5807m_set_frequency(u16 freq)
+{
+    u8 cnt=0;
+    u16 rssi=0;
+    u16 freq_temp=(freq-8700)/10;//8750~10800
+    printf("set freq:%d\n",freq_temp);
+
+    rda5807_dat[0] |= BIT(1);//9位seek up
+    rda5807_dat[0] &= ~BIT(0);//8位seek 1111 1110
+    rda5807_dat[2] = (freq_temp>>2);//
+    rda5807_dat[3] = ((freq_temp&0x0003)<<6)|(0x10);// 00|01 0000表示开始调谐
+    rda5807_write(4);
+    printf("02H:%02x %02x   ",rda5807_dat[0],rda5807_dat[1]);
+    printf("03H:%02x %02x\n",rda5807_dat[2],rda5807_dat[3]);
+
+    delay_5ms(10);
+
+    fm_set:
+    cnt++;
+
+    delay_ms(1);
+    rda5807_read(4);
+
+    if(cnt>=20) return 0;
+    if(!read_dat[2]&BIT(0) && cnt<20){
+        rda5807_write(4);delay_5ms(1);
+        goto fm_set;
+    }
+
+    freq_temp=0;
+    freq_temp=read_dat[1]|((read_dat[0]&0x03)<<8);
+    freq_temp=freq_temp*10+8700;
+    rssi=read_dat[2]>>1;
+    printf("0AH:%02x %02x ,freq:%d   ",read_dat[0],read_dat[1],freq_temp);
+    printf("0BH:%02x %02x ,rssi:%d\n",read_dat[2],read_dat[3],rssi);
+
+    //return 1;
+    return read_dat[2]&BIT(0);
+}
+
+AT(.text.rda5807m)
+bool rda5807_seek(void)
+{
+    u8 cnt=0;
+    u16 rssi=0;
+    u16 freq_temp=(fmrx_cb.freq-8700)/10;//8750~10800
+
+    rda5807_dat[0] |= BIT(1);//9位seek up
+    rda5807_dat[0] |= BIT(0);//8位seek
+    rda5807_dat[2] = (freq_temp>>2);//
+    rda5807_dat[3] = ((freq_temp&0x0003)<<6)|(0x00);// 00|01 0000表示开始调谐
+    rda5807_write(4);
+    printf("set freq:%d\n",freq_temp);
+    printf("02H:%02x %02x   ",rda5807_dat[0],rda5807_dat[1]);
+    printf("03H:%02x %02x\n",rda5807_dat[2],rda5807_dat[3]);
+
+    delay_5ms(10);
+
+    fm_all:
+    cnt++;
+
+    delay_ms(1);
+    rda5807_read(4);
+
+    freq_temp=0;
+    freq_temp=read_dat[1]|((read_dat[0]&0x03)<<8);
+    freq_temp=freq_temp*10+8700;
+    fmrx_cb.freq=freq_temp;
+    rssi=read_dat[2]>>1;
+
+    if(cnt>=10) return 0;
+    if(!read_dat[2]&BIT(0) && cnt<10) goto fm_all;
+
+    printf("0AH:%02x %02x ,freq:%d   ",read_dat[0],read_dat[1],freq_temp);
+    printf("0BH:%02x %02x ,rssi:%d\n",read_dat[2],read_dat[3],rssi);
+
+    //return 1;
+    return read_dat[2]&BIT(0);
+}
+
+
+
+AT(.text.rda5807m)
+void rda5807m_seek_all(void)
+{
+    static u8 flag=0;
+    static u16 freq_flag=FM_FREQ_MIN;
+
+    if(fmrx_cb.sta>=FMRX_PLAY) return;
+    else if(fmrx_cb.sta==FMRX_SEEK_START){
+        printf("fmrx seek start\n");
+        reset_fm_cb();
+        //fmrx_cb.freq=FM_FREQ_MIN;
+        rda5807m_set_frequency(fmrx_cb.freq);delay_5ms(2);
+        fmrx_cb.seek_start = 1;
+        //sys_cb.seek_flag=0;
+        fmrx_cb.sta=FMRX_SEEKING;
+        dac_fade_out();
+        flag=0;
+        freq_flag=FM_FREQ_MIN;
+        //sys_cb.fm_flag=0;
+    }
+    else if(fmrx_cb.sta==FMRX_SEEKING){
+        //printf("ch freq: %d\n", fmrx_cb.freq);
+        if (rda5807m_set_frequency(fmrx_cb.freq)) {
+        /*u16 msg_val=msg_dequeue();
+        if(msg_val!=0){
+            printf("msg_val:%d\n",msg_val);
+        }*/
+        /*if (rda5807_seek()) {
+            if(freq_flag>=fmrx_cb.freq){
+                fmrx_cb.sta = FMRX_SEEK_STOP;
+                if (fmrx_cb.ch_cnt > 0) fmrx_cb.freq=FM_FREQ_MAX;
+                else fmrx_cb.freq=FM_FREQ_MIN;
+                return;
+            }*/
+            fmrx_cb.ch_cnt++;
+            save_ch_buf(fmrx_cb.freq / 10);
+            printf("ch freq: %d , %d\n", fmrx_cb.freq,fmrx_cb.ch_cnt);
+            fmrx_cb.ch_cur = fmrx_cb.ch_cnt;
+            //gui_display(DISP_FQ_CHAN);
+            dac_fade_in();
+            delay_5ms(200);
+            //gui_display(DISP_FREQ);
+            //delay_5ms(200);
+            dac_fade_out();
+        }
+        delay_5ms(20);
+        if(hlw_cb.search_freq_type == FM_SEARCH_MIN_MAX)
+        {
+            fmrx_cb.freq += 10;
+            if (fmrx_cb.freq >= FM_FREQ_MAX) {
+            //if(freq_flag>=fmrx_cb.freq && flag){
+                fmrx_cb.sta = FMRX_SEEK_STOP;
+                if (fmrx_cb.ch_cnt > 0) fmrx_cb.freq=FM_FREQ_MIN;
+                else fmrx_cb.freq=FM_FREQ_MIN;
+            }
+        }
+        else if(hlw_cb.search_freq_type == FM_SEARCH_MAX_MIN)
+        {
+            fmrx_cb.freq -= 10;
+            if (fmrx_cb.freq >= FM_FREQ_MIN) {
+            //if(freq_flag>=fmrx_cb.freq && flag){
+                fmrx_cb.sta = FMRX_SEEK_STOP;
+                if (fmrx_cb.ch_cnt > 0) fmrx_cb.freq=FM_FREQ_MIN;
+                else fmrx_cb.freq=FM_FREQ_MIN;
+            }
+        }
+        freq_flag=fmrx_cb.freq;//printf("freq_flag: %d\n", freq_flag);
+    }
+    else if(fmrx_cb.sta==FMRX_SEEK_STOP){
+        printf("fmrx seek stop\n");
+        if (fmrx_cb.ch_cnt > 0) {
+            fmrx_cb.ch_cur = 1;
+            //sys_cb.seek_flag=1;
+            fmrx_cb.freq = get_ch_freq(fmrx_cb.ch_cur);
+            //gui_box_show_chan();
+        }//else fmrx_cb.freq=FM_FREQ_MIN;
+
+        param_fmrx_chcur_write();
+        param_fmrx_chcnt_write();
+        param_fmrx_chbuf_write();
+        param_sync();
+
+        delay_5ms(30);
+        //sys_cb.fm_flag=0;
+        rda5807m_set_frequency(fmrx_cb.freq);
+        fmrx_cb.sta=FMRX_PLAY;
+        dac_fade_in();
+    }
+}
+
+
+AT(.text.rda5807m)
+void rda5807_mute(u8 mute)
+{
+    if (mute) {
+        rda5807_dat[0] &= ~BIT(6);// mute on
+    } else {
+        rda5807_dat[0] |= BIT(6);// mute off
+    }
+    printf("mute:%d-%02x\n",mute,rda5807_dat[0]);
+    rda5807_write(2);
+
+    delay_5ms(20);
+    rda5807_read(4);
+    printf("0AH:%02x %02x\n",read_dat[0],read_dat[1]);
+    printf("0BH:%02x %02x\n",read_dat[2],read_dat[3]);
+}
+
+AT(.text.rda5807m)
+void rda5807_powerdown(void)
+{
+    rda5807_mute(1);
+    rda5807_dat[1] &= ~rda5807_init_dat[1];
+    rda5807_write(2);
+
+    delay_5ms(20);
+}
+
+
+AT(.text.rda5807m)
+void rda5807_mono(u8 mute)
+{
+    if (mute) {
+        rda5807_dat[0] &= ~BIT(5);// mute on
+    } else {
+        rda5807_dat[0] |= BIT(5);// mute off
+    }
+    rda5807_write(12);
+
+    /*delay_5ms(20);
+    rda5807_read(4);
+    printf("0AH:%02x %02x\n",read_dat[0],read_dat[1]);
+    printf("0BH:%02x %02x\n",read_dat[2],read_dat[3]);*/
+}
+
+AT(.text.rda5807m)
+void rda5807_set_vol(u8 vol) //0~16
+{
+    if(vol>16) vol=16;
+    rda5807_dat[7] = (vol&0x0f)|(rda5807_dat[7]&0xf0);
+    printf("rda5807_dat[7]:%02x  %02x\n",rda5807_dat[7],vol);
+    rda5807_write(12);
+
+    /*delay_5ms(20);
+    rda5807_read(4);
+    printf("0AH:%02x %02x\n",read_dat[0],read_dat[1]);
+    printf("0BH:%02x %02x\n",read_dat[2],read_dat[3]);*/
+}
+
+
+// 设置频率(单位:MHz)
+AT(.text.rda5807m)
+u8 rda5807m_set_frequency_up(u16 freq)
+{
+
+    u8 cnt=0;
+    u16 rssi=0;
+    u16 freq_temp=(freq-8700)/10;//8750~10800
+    printf("set freq:%d\n",freq_temp);
+
+    rda5807_dat[0] &= ~BIT(1);//9位seek up
+    rda5807_dat[0] |= BIT(0);//8位seek
+    rda5807_dat[2] = (freq_temp>>2);//
+    rda5807_dat[3] = ((freq_temp&0x0003)<<6)|(0x00);// 00|01 0000表示开始调谐
+    rda5807_write(4);
+    printf("set freq:%d\n",freq_temp);
+    printf("02H:%02x %02x   ",rda5807_dat[0],rda5807_dat[1]);
+    printf("03H:%02x %02x\n",rda5807_dat[2],rda5807_dat[3]);
+
+    fm_up:
+    delay_5ms(5);
+    rda5807_read(6);
+
+    freq_temp=0;
+    freq_temp=read_dat[1]|((read_dat[0]&0x03)<<8);
+    freq_temp=freq_temp*10+8700;
+    fmrx_cb.freq=freq_temp;
+    rssi=read_dat[2]>>1;
+    printf("0AH:%02x %02x ,freq:%d   ",read_dat[0],read_dat[1],freq_temp);
+    printf("0BH:%02x %02x ,rssi:%d   ",read_dat[2],read_dat[3],rssi);
+    printf("0CH:%02x %02x\n",read_dat[4],read_dat[5]);
+
+    if(cnt>=100) return 0;
+    if(!read_dat[2]&BIT(0) && cnt<100) goto fm_up;
+
+    return 1;
+}
+
+
+// 设置频率(单位:MHz)
+AT(.text.rda5807m)
+u8 rda5807m_set_frequency_down(u16 freq)
+{
+
+    u8 cnt=0;
+    u16 rssi=0;
+    u16 freq_temp=(freq-8700)/10;//8750~10800
+    printf("set freq:%d\n",freq_temp);
+
+    rda5807_dat[0] |= BIT(1);//9位seek up
+    rda5807_dat[0] |= BIT(0);//8位seek
+    rda5807_dat[2] = (freq_temp>>2);//
+    rda5807_dat[3] = ((freq_temp&0x0003)<<6)|(0x00);// 00|01 0000表示开始调谐
+    rda5807_write(4);
+    printf("set freq:%d\n",freq_temp);
+    printf("02H:%02x %02x   ",rda5807_dat[0],rda5807_dat[1]);
+    printf("03H:%02x %02x\n",rda5807_dat[2],rda5807_dat[3]);
+
+    fm_down:
+    delay_5ms(5);
+    rda5807_read(6);
+
+    freq_temp=0;
+    freq_temp=read_dat[1]|((read_dat[0]&0x03)<<8);
+    freq_temp=freq_temp*10+8700;
+    fmrx_cb.freq=freq_temp;
+    rssi=read_dat[2]>>1;
+    printf("0AH:%02x %02x ,freq:%d   ",read_dat[0],read_dat[1],freq_temp);
+    printf("0BH:%02x %02x ,rssi:%d   ",read_dat[2],read_dat[3],rssi);
+    printf("0CH:%02x %02x\n",read_dat[4],read_dat[5]);
+
+    if(cnt>=100) return 0;
+    if(!read_dat[2]&BIT(0) && cnt<100) goto fm_down;
+
+    return 1;
+}
+#endif // FMRX_RDA5807M_EN
+
+
+#endif // HLW_UI

+ 22 - 0
sdk_560x_01x_s2256_20241227/app/platform/functions/func_rda5807m.h

@@ -0,0 +1,22 @@
+#ifndef _FUNC_RDA5807M_H
+#define _FUNC_RDA5807M_H
+
+#if HLW_UI
+#if FMRX_RDA5807M_EN
+
+
+uint8_t rda5807_read_id(void);
+bool rda5807_init(void);
+u8 rda5807m_set_frequency(u16 freq);
+void rda5807m_seek_all(void);
+
+void rda5807_mute(u8 mute);
+void rda5807_powerdown(void);
+bool rda5807_seek(void);
+u8 rda5807m_set_frequency_up(u16 freq);
+u8 rda5807m_set_frequency_down(u16 freq);
+
+
+#endif // FMRX_RDA5807M_EN
+#endif // HLW_UI
+#endif // _FUNC_RDA5807M_H

BIN
sdk_560x_01x_s2256_20241227/app/projects/standard/Output/bin/AB5602D_YinWo_TD009(ikF-FM听力蓝牙耳机)_CHC_EN_V0.0.4_20250505_RDA5807M(00006BCA_BB895AAC).prd


BIN
sdk_560x_01x_s2256_20241227/app/projects/standard/Output/bin/app.bin


BIN
sdk_560x_01x_s2256_20241227/app/projects/standard/Output/bin/app.dcf


BIN
sdk_560x_01x_s2256_20241227/app/projects/standard/Output/bin/app.rv32


File diff suppressed because it is too large
+ 801 - 792
sdk_560x_01x_s2256_20241227/app/projects/standard/Output/bin/map.txt


BIN
sdk_560x_01x_s2256_20241227/app/projects/standard/Output/obj/platform/bsp/bsp_fmrx.o


BIN
sdk_560x_01x_s2256_20241227/app/projects/standard/Output/obj/platform/bsp/bsp_sys.o


BIN
sdk_560x_01x_s2256_20241227/app/projects/standard/Output/obj/platform/functions/func_fmrx.o


BIN
sdk_560x_01x_s2256_20241227/app/projects/standard/Output/obj/platform/functions/func_qn8035.o


BIN
sdk_560x_01x_s2256_20241227/app/projects/standard/Output/obj/platform/functions/func_rda5807m.o


+ 4 - 0
sdk_560x_01x_s2256_20241227/app/projects/standard/app.cbp

@@ -271,6 +271,10 @@
 			<Option compilerVar="CC" />
 		</Unit>
 		<Unit filename="../../platform/functions/func_qn8035.h" />
+		<Unit filename="../../platform/functions/func_rda5807m.c">
+			<Option compilerVar="CC" />
+		</Unit>
+		<Unit filename="../../platform/functions/func_rda5807m.h" />
 		<Unit filename="../../platform/functions/func_spdif.c">
 			<Option compilerVar="CC" />
 		</Unit>

+ 13 - 6
sdk_560x_01x_s2256_20241227/app/projects/standard/app.depend

@@ -863,7 +863,7 @@
 1727164580 source:e:\svn_custom\sdk_560x_01x_s2256_20241226\app\projects\standard\ram.ld
 	"config.h"
 
-1745725439 source:d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_audio.c
+1746433547 source:d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_audio.c
 	"include.h"
 
 1732083165 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\header\include.h
@@ -902,7 +902,7 @@
 
 1745726189 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\projects\standard\xcfg.h
 
-1746417244 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\projects\standard\config.h
+1746435439 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\projects\standard\config.h
 	"config_define.h"
 	"config_extra.h"
 
@@ -1084,7 +1084,7 @@
 
 1700560006 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_dac.h
 
-1745725439 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_fmrx.h
+1746433899 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_fmrx.h
 
 1617675127 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_fmtx.h
 
@@ -1092,7 +1092,7 @@
 
 1617675127 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_ir.h
 
-1745725439 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_audio.h
+1746433564 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_audio.h
 
 1704371874 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_music.h
 
@@ -1229,7 +1229,7 @@
 1703507721 source:d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_eq_table.c
 	"include.h"
 
-1745821127 source:d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_fmrx.c
+1746434392 source:d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_fmrx.c
 	"include.h"
 
 1720595971 source:d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\bsp\bsp_fmtx.c
@@ -1379,7 +1379,7 @@
 	"func_exspiflash_music.h"
 	"api_spiflash_ex.h"
 
-1745917759 source:d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\functions\func_fmrx.c
+1746434171 source:d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\functions\func_fmrx.c
 	"include.h"
 	"func.h"
 	"func_fmrx.h"
@@ -1754,3 +1754,10 @@
 
 1746417006 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\functions\func_qn8035.h
 
+1746435032 source:d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\functions\func_rda5807m.c
+	"include.h"
+	"func_rda5807m.h"
+	"func_hlw.h"
+
+1746432025 d:\bluetrum\project\y_yinwo\td009\code\20250418\sdk_560x_01x_s2256_20241227\app\platform\functions\func_rda5807m.h
+

+ 215 - 200
sdk_560x_01x_s2256_20241227/app/projects/standard/app.layout

@@ -2,34 +2,39 @@
 <CodeBlocks_layout_file>
 	<FileVersion major="1" minor="0" />
 	<ActiveTarget name="Debug" />
-	<File name="..\..\platform\functions\func_clock.c" open="1" top="0" tabpos="80" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
+	<File name="..\..\platform\functions\func_qn8035.c" open="1" top="0" tabpos="84" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="7311" topLine="159" />
+			<Cursor1 position="3943" topLine="139" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_fmrx.c" open="1" top="0" tabpos="77" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
+	<File name="..\..\platform\functions\func_idle.c" open="1" top="0" tabpos="95" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="6427" topLine="228" />
+			<Cursor1 position="2032" topLine="73" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_param.c" open="1" top="0" tabpos="75" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\functions\func_huart.h" open="1" top="0" tabpos="35" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1325" topLine="23" />
+			<Cursor1 position="85" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_bt.h" open="1" top="0" tabpos="28" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\libs\api.h" open="1" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="2237" topLine="34" />
+			<Cursor1 position="0" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="message\msg_usbdev.c" open="1" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_tkey.c" open="1" top="0" tabpos="31" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="772" topLine="0" />
+			<Cursor1 position="6015" topLine="180" />
 		</Cursor>
 	</File>
-	<File name="display\ledseg\display_ledseg.h" open="1" top="0" tabpos="49" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\hlw_bt.c" open="1" top="0" tabpos="21" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="2639" topLine="133" />
+		</Cursor>
+	</File>
+	<File name="message\msg_music.c" open="1" top="0" tabpos="82" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="999" topLine="9" />
+			<Cursor1 position="4060" topLine="99" />
 		</Cursor>
 	</File>
 	<File name="..\..\platform\bsp\bsp_hdmi.c" open="1" top="0" tabpos="104" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -37,24 +42,24 @@
 			<Cursor1 position="315" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="port\port_pwm.c" open="1" top="0" tabpos="58" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="display\display_clock.c" open="1" top="0" tabpos="45" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="7528" topLine="237" />
+			<Cursor1 position="574" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_hlw.h" open="1" top="0" tabpos="26" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_bt.c" open="1" top="0" tabpos="17" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="307" topLine="0" />
+			<Cursor1 position="1776" topLine="53" />
 		</Cursor>
 	</File>
-	<File name="plugin\plugin.h" open="1" top="0" tabpos="74" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_qn8035.h" open="1" top="0" tabpos="85" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1091" topLine="0" />
+			<Cursor1 position="58" topLine="2" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\libs\api_btstack.h" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\libs\api_pwr.h" open="1" top="0" tabpos="99" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="109" topLine="0" />
+			<Cursor1 position="49" topLine="0" />
 		</Cursor>
 	</File>
 	<File name="..\..\platform\header\sfr.h" open="1" top="0" tabpos="81" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -62,84 +67,84 @@
 			<Cursor1 position="150" topLine="4" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_music.c" open="1" top="0" tabpos="70" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_bt.c" open="1" top="0" tabpos="20" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="6780" topLine="217" />
+			<Cursor1 position="9746" topLine="393" />
 		</Cursor>
 	</File>
-	<File name="config.h" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
+	<File name="..\..\platform\functions\func_aux.h" open="1" top="0" tabpos="32" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="49258" topLine="633" />
+			<Cursor1 position="897" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="display\display_clock.c" open="1" top="0" tabpos="45" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="port\port_key.c" open="1" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="574" topLine="0" />
+			<Cursor1 position="6142" topLine="132" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\hlw_bt.h" open="1" top="0" tabpos="22" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
+	<File name="message\msg_usbdev.c" open="1" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="210" topLine="0" />
+			<Cursor1 position="772" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\libs\api_sys.h" open="1" top="0" tabpos="96" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\gui\ledseg\ledseg_common.h" open="1" top="0" tabpos="50" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1995" topLine="7" />
+			<Cursor1 position="663" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_i2c.h" open="1" top="0" tabpos="102" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_charge.h" open="1" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="73" topLine="0" />
+			<Cursor1 position="376" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_speaker.h" open="1" top="0" tabpos="39" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_param.h" open="1" top="0" tabpos="68" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="395" topLine="0" />
+			<Cursor1 position="2859" topLine="21" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_qn8035.h" open="1" top="0" tabpos="85" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\functions\func_aux.c" open="1" top="0" tabpos="87" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1558" topLine="19" />
+			<Cursor1 position="3693" topLine="126" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_idle.c" open="1" top="0" tabpos="95" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
+	<File name="..\..\platform\functions\func_bt_hid.c" open="1" top="0" tabpos="48" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="2032" topLine="73" />
+			<Cursor1 position="2367" topLine="74" />
 		</Cursor>
 	</File>
-	<File name="res.h" open="1" top="0" tabpos="93" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="port\port_pwm.c" open="1" top="0" tabpos="58" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1517" topLine="6" />
+			<Cursor1 position="7528" topLine="237" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_audio.h" open="1" top="0" tabpos="88" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="display\display_aux.c" open="1" top="0" tabpos="43" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="363" topLine="0" />
+			<Cursor1 position="43" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_dac.c" open="1" top="0" tabpos="67" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="display\display_bt.c" open="1" top="0" tabpos="44" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="7909" topLine="232" />
+			<Cursor1 position="403" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_sys.h" open="1" top="0" tabpos="89" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_i2s_wm8978.c" open="1" top="0" tabpos="66" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="3863" topLine="60" />
+			<Cursor1 position="5917" topLine="180" />
 		</Cursor>
 	</File>
-	<File name="message\msg_bt.c" open="1" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_aux.h" open="1" top="0" tabpos="106" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1883" topLine="116" />
+			<Cursor1 position="2754" topLine="14" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_i2s_wm8978.c" open="1" top="0" tabpos="66" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\gui\ledseg\ledseg_7p7s.c" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="5917" topLine="180" />
+			<Cursor1 position="727" topLine="15" />
 		</Cursor>
 	</File>
-	<File name="xcfg.h" open="1" top="0" tabpos="78" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_fmrx.c" open="1" top="0" tabpos="77" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="24750" topLine="130" />
+			<Cursor1 position="6292" topLine="217" />
 		</Cursor>
 	</File>
 	<File name="..\..\platform\functions\func_lowpwr.h" open="1" top="0" tabpos="83" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -147,114 +152,119 @@
 			<Cursor1 position="488" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_music.h" open="1" top="0" tabpos="37" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_music.c" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="2496" topLine="47" />
+			<Cursor1 position="1330" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_bt.c" open="1" top="0" tabpos="17" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_spiflash1.c" open="1" top="0" tabpos="56" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="4937" topLine="167" />
+			<Cursor1 position="18826" topLine="700" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\header\config_define.h" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_hlw.h" open="1" top="0" tabpos="26" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="12798" topLine="187" />
+			<Cursor1 position="392" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\gui\ledseg\ledseg_common.h" open="1" top="0" tabpos="50" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_key.c" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="663" topLine="0" />
+			<Cursor1 position="23642" topLine="884" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_key.c" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
+	<File name="..\..\platform\libs\api_sys.h" open="1" top="0" tabpos="96" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="23642" topLine="884" />
+			<Cursor1 position="1873" topLine="13" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_spiflash1.c" open="1" top="0" tabpos="56" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_bt_dut.c" open="1" top="0" tabpos="47" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="18826" topLine="700" />
+			<Cursor1 position="61" topLine="1" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\modules\bt\bt.c" open="1" top="0" tabpos="24" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_fmrx.c" open="1" top="0" tabpos="73" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1191" topLine="0" />
+			<Cursor1 position="11043" topLine="400" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_aux.h" open="1" top="0" tabpos="32" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="plugin\multi_lang.h" open="1" top="0" tabpos="92" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="897" topLine="0" />
+			<Cursor1 position="14728" topLine="199" />
 		</Cursor>
 	</File>
-	<File name="message\msg_clock.c" open="1" top="0" tabpos="79" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="res.h" open="1" top="0" tabpos="93" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1250" topLine="7" />
+			<Cursor1 position="1517" topLine="6" />
 		</Cursor>
 	</File>
-	<File name="message\msg_record.c" open="1" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="Output\bin\xcfg.xm" open="1" top="0" tabpos="60" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="962" topLine="0" />
+			<Cursor1 position="42621" topLine="214" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_iis_ext.c" open="1" top="0" tabpos="55" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="message\msg_fmrx.c" open="1" top="0" tabpos="72" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="4966" topLine="95" />
+			<Cursor1 position="1718" topLine="42" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_qn8035.c" open="1" top="0" tabpos="84" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\header\io_def.h" open="1" top="0" tabpos="64" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="9374" topLine="298" />
+			<Cursor1 position="5242" topLine="89" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\gui\ledseg\ledseg_7p7s.c" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\libs\strong_symbol.c" open="1" top="0" tabpos="30" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="727" topLine="15" />
+			<Cursor1 position="3529" topLine="104" />
 		</Cursor>
 	</File>
-	<File name="port\port_key.c" open="1" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\modules\bt\tws.c" open="1" top="0" tabpos="105" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="6142" topLine="132" />
+			<Cursor1 position="2508" topLine="59" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_huart.h" open="1" top="0" tabpos="35" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_dac.c" open="1" top="0" tabpos="67" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="85" topLine="0" />
+			<Cursor1 position="7909" topLine="232" />
 		</Cursor>
 	</File>
-	<File name="port\port_ledseg.c" open="1" top="0" tabpos="52" split="0" active="1" splitpos="0" zoom_1="1" zoom_2="0">
+	<File name="..\..\platform\functions\func_music.h" open="1" top="0" tabpos="37" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="10834" topLine="257" />
+			<Cursor1 position="2496" topLine="47" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\header\macro.h" open="1" top="0" tabpos="97" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_uart_upd.c" open="1" top="0" tabpos="63" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="177" topLine="0" />
+			<Cursor1 position="811" topLine="6" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\header\config_extra.h" open="1" top="0" tabpos="23" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_led.c" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="11934" topLine="444" />
+			<Cursor1 position="3129" topLine="149" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_charge.c" open="1" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_sys.c" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1368" topLine="45" />
+			<Cursor1 position="34517" topLine="1384" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_param.h" open="1" top="0" tabpos="68" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\hlw_bt.h" open="1" top="0" tabpos="22" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="2895" topLine="21" />
+			<Cursor1 position="210" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="display\display_bt.c" open="1" top="0" tabpos="44" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="message\msg_idle.c" open="1" top="0" tabpos="98" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="403" topLine="0" />
+			<Cursor1 position="258" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_uart.c" open="1" top="0" tabpos="57" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="display\display_fmam_freq.c" open="1" top="0" tabpos="46" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1106" topLine="45" />
+			<Cursor1 position="294" topLine="0" />
+		</Cursor>
+	</File>
+	<File name="..\..\platform\bsp\bsp_i2c.c" open="1" top="0" tabpos="103" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="1317" topLine="101" />
 		</Cursor>
 	</File>
 	<File name="..\..\platform\functions\sfunc_bt_call.c" open="1" top="0" tabpos="29" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -262,144 +272,149 @@
 			<Cursor1 position="16224" topLine="491" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\sfunc_bt_ring.c" open="1" top="0" tabpos="27" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_charge.c" open="1" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="7210" topLine="222" />
+			<Cursor1 position="1368" topLine="45" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_fmrx.h" open="1" top="0" tabpos="34" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_i2s.h" open="1" top="0" tabpos="36" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="617" topLine="3" />
+			<Cursor1 position="263" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_clock.h" open="1" top="0" tabpos="33" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_key.h" open="1" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="461" topLine="0" />
+			<Cursor1 position="13225" topLine="258" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_audio.c" open="1" top="0" tabpos="91" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\functions\func_clock.c" open="1" top="0" tabpos="80" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="3334" topLine="60" />
+			<Cursor1 position="7311" topLine="159" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\libs\api.h" open="1" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func.h" open="1" top="0" tabpos="71" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="0" topLine="0" />
+			<Cursor1 position="900" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_sys.c" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="xcfg.h" open="1" top="0" tabpos="78" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="17329" topLine="766" />
+			<Cursor1 position="24750" topLine="130" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_key.h" open="1" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\functions\func_rda5807m.h" open="1" top="0" tabpos="108" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="13225" topLine="258" />
+			<Cursor1 position="62" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="message\msg_music.c" open="1" top="0" tabpos="82" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_fmtx.c" open="1" top="0" tabpos="90" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="4060" topLine="99" />
+			<Cursor1 position="3818" topLine="84" />
 		</Cursor>
 	</File>
-	<File name="display\ledseg\display_ledseg.c" open="1" top="0" tabpos="51" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_aux.c" open="1" top="0" tabpos="86" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="5434" topLine="184" />
+			<Cursor1 position="1070" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\libs\strong_symbol.c" open="1" top="0" tabpos="30" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\gui\gui.h" open="1" top="0" tabpos="41" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="3529" topLine="104" />
+			<Cursor1 position="1637" topLine="15" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_music.c" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\gui\gui.c" open="1" top="0" tabpos="40" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1330" topLine="0" />
+			<Cursor1 position="1083" topLine="17" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_bt.h" open="1" top="0" tabpos="69" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_hlw.c" open="1" top="0" tabpos="25" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1307" topLine="4" />
+			<Cursor1 position="639" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func.h" open="1" top="0" tabpos="71" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_led.h" open="1" top="0" tabpos="59" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="900" topLine="0" />
+			<Cursor1 position="2179" topLine="41" />
 		</Cursor>
 	</File>
-	<File name="plugin\plugin.c" open="1" top="0" tabpos="61" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\header\typedef.h" open="1" top="0" tabpos="109" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="2754" topLine="86" />
+			<Cursor1 position="68" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="message\msg_idle.c" open="1" top="0" tabpos="98" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func.c" open="1" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="1" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="258" topLine="0" />
+			<Cursor1 position="4987" topLine="127" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_huart_audio.c" open="1" top="0" tabpos="65" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="message\msg_record.c" open="1" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="4224" topLine="132" />
+			<Cursor1 position="962" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\gui\gui.c" open="1" top="0" tabpos="40" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="port\port_ledseg.c" open="1" top="0" tabpos="52" split="0" active="1" splitpos="0" zoom_1="1" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1083" topLine="17" />
+			<Cursor1 position="10834" topLine="257" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_bt_dut.c" open="1" top="0" tabpos="47" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
+	<File name="message\msg_clock.c" open="1" top="0" tabpos="79" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="61" topLine="1" />
+			<Cursor1 position="1250" topLine="7" />
 		</Cursor>
 	</File>
-	<File name="port\port_led.c" open="1" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\sfunc_bt_ring.c" open="1" top="0" tabpos="27" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="3255" topLine="92" />
+			<Cursor1 position="7210" topLine="222" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_aux.h" open="1" top="0" tabpos="106" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\modules\bt\bt.c" open="1" top="0" tabpos="24" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="2754" topLine="14" />
+			<Cursor1 position="1191" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\gui\ledseg\ledseg_common.c" open="1" top="0" tabpos="42" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_bt.h" open="1" top="0" tabpos="69" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="968" topLine="2" />
+			<Cursor1 position="1307" topLine="4" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_fmrx.h" open="1" top="0" tabpos="76" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\libs\api_fmrx.h" open="1" top="0" tabpos="94" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="690" topLine="0" />
+			<Cursor1 position="63" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_led.c" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\functions\func_clock.h" open="1" top="0" tabpos="33" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="3129" topLine="149" />
+			<Cursor1 position="461" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="display\display_fmam_freq.c" open="1" top="0" tabpos="46" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="plugin\plugin.h" open="1" top="0" tabpos="74" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="294" topLine="0" />
+			<Cursor1 position="1091" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="display\display_aux.c" open="1" top="0" tabpos="43" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_i2c.h" open="1" top="0" tabpos="102" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="43" topLine="0" />
+			<Cursor1 position="73" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_bt.c" open="1" top="0" tabpos="20" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_fmrx.h" open="1" top="0" tabpos="76" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="9746" topLine="393" />
+			<Cursor1 position="690" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_fmtx.c" open="1" top="0" tabpos="90" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\header\config_extra.h" open="1" top="0" tabpos="23" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="3818" topLine="84" />
+			<Cursor1 position="11892" topLine="441" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_hlw.c" open="1" top="0" tabpos="25" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\libs\api_btstack.h" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="639" topLine="0" />
+			<Cursor1 position="109" topLine="0" />
+		</Cursor>
+	</File>
+	<File name="..\..\platform\bsp\bsp_sys.h" open="1" top="0" tabpos="89" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="3863" topLine="60" />
 		</Cursor>
 	</File>
 	<File name="port\port_linein.c" open="1" top="0" tabpos="100" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -407,29 +422,29 @@
 			<Cursor1 position="2207" topLine="53" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_charge.h" open="1" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="message\msg_bt.c" open="1" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="376" topLine="0" />
+			<Cursor1 position="1883" topLine="116" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\modules\bt\tws.c" open="1" top="0" tabpos="105" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_iis_ext.c" open="1" top="0" tabpos="55" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="2508" topLine="59" />
+			<Cursor1 position="4966" topLine="95" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_tkey.c" open="1" top="0" tabpos="31" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_audio.h" open="1" top="0" tabpos="88" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="6015" topLine="180" />
+			<Cursor1 position="308" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_uart_upd.c" open="1" top="0" tabpos="63" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\gui\ledseg\ledseg_common.c" open="1" top="0" tabpos="42" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="811" topLine="6" />
+			<Cursor1 position="968" topLine="2" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_i2s.h" open="1" top="0" tabpos="36" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_spdif.h" open="1" top="0" tabpos="38" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="263" topLine="0" />
+			<Cursor1 position="1297" topLine="0" />
 		</Cursor>
 	</File>
 	<File name="..\..\platform\functions\func_lowpwr.c" open="1" top="0" tabpos="62" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@@ -437,99 +452,99 @@
 			<Cursor1 position="5648" topLine="183" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\gui\ledseg\ledseg_7p7s.h" open="1" top="0" tabpos="53" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_music.c" open="1" top="0" tabpos="70" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="536" topLine="0" />
+			<Cursor1 position="2398" topLine="100" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_dump_buf_huart.c" open="1" top="0" tabpos="54" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_fmrx.h" open="1" top="0" tabpos="34" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1458" topLine="1" />
+			<Cursor1 position="58" topLine="2" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_aux.c" open="1" top="0" tabpos="87" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="port\port_led.c" open="1" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="3693" topLine="126" />
+			<Cursor1 position="3255" topLine="98" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func.c" open="1" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="1" zoom_2="0">
+	<File name="plugin\plugin.c" open="1" top="0" tabpos="61" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="4987" topLine="127" />
+			<Cursor1 position="2754" topLine="86" />
 		</Cursor>
 	</File>
-	<File name="message\msg_fmrx.c" open="1" top="0" tabpos="72" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_huart_audio.c" open="1" top="0" tabpos="65" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1343" topLine="22" />
+			<Cursor1 position="4224" topLine="132" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\libs\api_pwr.h" open="1" top="0" tabpos="99" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="display\ledseg\display_ledseg.c" open="1" top="0" tabpos="51" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="49" topLine="0" />
+			<Cursor1 position="5434" topLine="184" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_i2c.c" open="1" top="0" tabpos="103" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\gui\ledseg\ledseg_7p7s.h" open="1" top="0" tabpos="53" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1177" topLine="44" />
+			<Cursor1 position="536" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_fmrx.c" open="1" top="0" tabpos="73" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_audio.c" open="1" top="0" tabpos="91" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="4277" topLine="165" />
+			<Cursor1 position="1439" topLine="46" />
 		</Cursor>
 	</File>
-	<File name="port\port_sd.c" open="1" top="0" tabpos="101" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\header\macro.h" open="1" top="0" tabpos="97" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1656" topLine="34" />
+			<Cursor1 position="177" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_bt_hid.c" open="1" top="0" tabpos="48" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_dump_buf_huart.c" open="1" top="0" tabpos="54" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="2367" topLine="74" />
+			<Cursor1 position="1458" topLine="1" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_aux.c" open="1" top="0" tabpos="86" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_speaker.h" open="1" top="0" tabpos="39" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1070" topLine="0" />
+			<Cursor1 position="395" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\libs\api_fmrx.h" open="1" top="0" tabpos="94" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_param.c" open="1" top="0" tabpos="75" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="63" topLine="0" />
+			<Cursor1 position="1325" topLine="23" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\header\io_def.h" open="1" top="0" tabpos="64" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\bsp\bsp_uart.c" open="1" top="0" tabpos="57" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="5242" topLine="89" />
+			<Cursor1 position="1106" topLine="45" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\bsp_led.h" open="1" top="0" tabpos="59" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\functions\func_bt.h" open="1" top="0" tabpos="28" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="2208" topLine="41" />
+			<Cursor1 position="2237" topLine="34" />
 		</Cursor>
 	</File>
-	<File name="Output\bin\xcfg.xm" open="1" top="0" tabpos="60" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="port\port_sd.c" open="1" top="0" tabpos="101" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="42621" topLine="214" />
+			<Cursor1 position="1656" topLine="34" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\bsp\hlw_bt.c" open="1" top="0" tabpos="21" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+	<File name="..\..\platform\functions\func_rda5807m.c" open="1" top="0" tabpos="107" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="2639" topLine="133" />
+			<Cursor1 position="312" topLine="0" />
 		</Cursor>
 	</File>
-	<File name="plugin\multi_lang.h" open="1" top="0" tabpos="92" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="display\ledseg\display_ledseg.h" open="1" top="0" tabpos="49" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="14728" topLine="199" />
+			<Cursor1 position="750" topLine="9" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\gui\gui.h" open="1" top="0" tabpos="41" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="config.h" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="3" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1637" topLine="15" />
+			<Cursor1 position="49345" topLine="655" />
 		</Cursor>
 	</File>
-	<File name="..\..\platform\functions\func_spdif.h" open="1" top="0" tabpos="38" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+	<File name="..\..\platform\header\config_define.h" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
 		<Cursor>
-			<Cursor1 position="1297" topLine="0" />
+			<Cursor1 position="14023" topLine="226" />
 		</Cursor>
 	</File>
 </CodeBlocks_layout_file>

+ 7 - 3
sdk_560x_01x_s2256_20241227/app/projects/standard/config.h

@@ -669,17 +669,21 @@
 #define HLW_UI                          1
 
 #if HLW_UI
-#define FMRX_QN8035_EN                  1
 
-#if FMRX_QN8035_EN
+#define FMRX_QN8035_EN                  0
+#define FMRX_RDA5807M_EN                1
+
+#if FMRX_QN8035_EN || FMRX_RDA5807M_EN
 ///外接收音芯片相关配置
 #define FMRX_2_SDADC_EN                 1                               //外接收音是否进SDADC,否则直通DAC。进SDADC可以调EQ,FMRX录音等功能。
 #define FMRX_CHANNEL_CFG                (CH_AUXL_PF0 | CH_AUXR_PF1)      //选择FMRX的通路
 #define FMRX_AUX_ANL_GAIN               AUX_N0DB                        //AUX输入的模拟增益
-#define FMRX_CLOCK                      FM_SHARE_CRYSTAL_32KHz //FM_USE_IO_12MHZ_CLK //FM_USE_IO_32KHZ_CLK //FM_USE_CRYSTAL_32K //FM_SHARE_CRYSTAL_32KHz //FM_USE_CRYSTAL_32K //FM_USE_CRYSTAL_32K
+#define FMRX_CLOCK                      FM_USE_IO_32KHZ_CLK //FM_SHARE_CRYSTAL_32KHz //FM_USE_IO_12MHZ_CLK //FM_USE_IO_32KHZ_CLK //FM_USE_CRYSTAL_32K //FM_SHARE_CRYSTAL_32KHz //FM_USE_CRYSTAL_32K //FM_USE_CRYSTAL_32K
 #define FMRX_CLKOMAP                    CLKOMAP_PE5
 #endif // FMRX_QN8035_EN
 
+
+
 #endif // HLW_UI
 
 

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