修复全部循环问题
This commit is contained in:
parent
9b11b859c2
commit
e8c743b7fa
BIN
FW/KT25-0822/KT25-0822_82A-SD_97ED.fw
Normal file
BIN
FW/KT25-0822/KT25-0822_82A-SD_97ED.fw
Normal file
Binary file not shown.
BIN
FW/KT25-0822/jl_isd.fw
Normal file
BIN
FW/KT25-0822/jl_isd.fw
Normal file
Binary file not shown.
BIN
FW/KT25-0822/update.ufw
Normal file
BIN
FW/KT25-0822/update.ufw
Normal file
Binary file not shown.
BIN
KT6002_SD.pdf
Normal file
BIN
KT6002_SD.pdf
Normal file
Binary file not shown.
65
README.html
65
README.html
@ -367,6 +367,12 @@ code {
|
||||
</script>
|
||||
<h1 id="%E5%BC%95%E8%84%9A%E6%8E%92%E5%88%97">引脚排列</h1>
|
||||
<p><img src="./pin" alt="引脚定义"></p>
|
||||
<h1 id="%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F">使用注意:</h1>
|
||||
<pre><code>1. TF卡和SPI Flash只支持一个,下单请注意备注。
|
||||
2. 开机有提示音“咚”。
|
||||
3. 默认循环方式为不循环,播放一次后结束。
|
||||
4. BUSY引脚指示当前播放状态,低电平为正在播放,高电平为未播放,也可使用此引脚控制功放的MUTE,但需实测是否有呑字现象。
|
||||
</code></pre>
|
||||
<h2 id="uart-%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE-115200-n-8-1">UART 通讯协议 115200 N 8 1</h2>
|
||||
<ul>
|
||||
<li>发送
|
||||
@ -443,12 +449,18 @@ code {
|
||||
<li>0xAB 播放指定曲目(通配符)</li>
|
||||
<li>0xAC 播放指定曲目(带扩展名)</li>
|
||||
<li>0xAD 播放指定曲目(数字)</li>
|
||||
<li>0xAE 播放循环</li>
|
||||
<li>0xB0 获取当前磁盘文件总数</li>
|
||||
<li>0xB1 获取当前磁盘文件夹数量</li>
|
||||
<li>0xB2 获取当前播放文件夹内文件数量</li>
|
||||
<li>0xB3 获取当前播放曲目总时间</li>
|
||||
<li>0xB4 获取当前播放曲目时间</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="%E6%8C%87%E4%BB%A4%E8%AF%A6%E8%BF%B0">指令详述</h2>
|
||||
<ul>
|
||||
<li>系统复位:0xA0/A1/A2/A3/A4/A5/A6/A7/A9/AA
|
||||
<li>播放控制指令:0xA0/A1/A2/A3/A4/A5/A6/A7/A9/AA
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -470,13 +482,14 @@ code {
|
||||
</tbody>
|
||||
</table>
|
||||
</li>
|
||||
<li>播放/暂停:0xC2
|
||||
<li>播放循环:0xAE
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>HEAD</th>
|
||||
<th>LENGTH</th>
|
||||
<th>CMD</th>
|
||||
<th>CYCLE</th>
|
||||
<th>CHK</th>
|
||||
<th>TAIL</th>
|
||||
</tr>
|
||||
@ -485,12 +498,16 @@ code {
|
||||
<tr>
|
||||
<td>0x02</td>
|
||||
<td>1Byte</td>
|
||||
<td>0xC2</td>
|
||||
<td>0xAE</td>
|
||||
<td>1Byte</td>
|
||||
<td>1Byte</td>
|
||||
<td>0x03</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<ul>
|
||||
<li>CYCLE :0-不循环,1-全部循环 2-单曲循环,3-文件夹循环,4-随机</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>设置音量:0xA8
|
||||
<table>
|
||||
@ -583,7 +600,7 @@ code {
|
||||
<ul>
|
||||
<li>STA :名字起始,字符'$'(0x24)。</li>
|
||||
<li>END : 名字结束,字符'$'(0x24)。</li>
|
||||
<li>NAME :名字字符串,必须写全文件名,例如:文件名采用8+3格式,只识别文件名的前2个字符,例如:01.mp3和010.mp3是不同的</li>
|
||||
<li>NAME :名字字符串,必须写全文件名,例如:文件名采用8+3格式,例如:01.mp3和001.mp3是不同的</li>
|
||||
<li>文件必须存在否则播放失败</li>
|
||||
</ul>
|
||||
</li>
|
||||
@ -613,19 +630,17 @@ code {
|
||||
</tbody>
|
||||
</table>
|
||||
<ul>
|
||||
<li>FH,FL:组合成以恶搞16bit的整形,例如 FH=0x00 FL=0x02 实际上是播放0x0002曲目,曲目的顺序号是拷贝进磁盘的顺序</li>
|
||||
<li>FH,FL:组合成一个16bit的整形,例如 FH=0x00 FL=0x02 实际上是播放0x0002曲目,曲目的顺序号是拷贝进磁盘的顺序</li>
|
||||
<li>文件必须存在否则播放失败</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>指定文件号播放:0xC8
|
||||
<li>播放信息:B0/B1/B2/B3/B4
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>HEAD</th>
|
||||
<th>LENGTH</th>
|
||||
<th>CMD</th>
|
||||
<th>NUM</th>
|
||||
<th>LOOP</th>
|
||||
<th>CHK</th>
|
||||
<th>TAIL</th>
|
||||
</tr>
|
||||
@ -634,8 +649,34 @@ code {
|
||||
<tr>
|
||||
<td>0x02</td>
|
||||
<td>1Byte</td>
|
||||
<td>0xC8</td>
|
||||
<td>1-99</td>
|
||||
<td>0xB0</td>
|
||||
<td>1Byte</td>
|
||||
<td>0x03</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</li>
|
||||
<li>ACK:
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>HEAD</th>
|
||||
<th>LENGTH</th>
|
||||
<th>CMD</th>
|
||||
<th>ERR</th>
|
||||
<th>DH</th>
|
||||
<th>DL</th>
|
||||
<th>CHK</th>
|
||||
<th>TAIL</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>0x02</td>
|
||||
<td>1Byte</td>
|
||||
<td>0xB0</td>
|
||||
<td>1Byte</td>
|
||||
<td>1Byte</td>
|
||||
<td>1Byte</td>
|
||||
<td>1Byte</td>
|
||||
<td>0x03</td>
|
||||
@ -643,9 +684,7 @@ code {
|
||||
</tbody>
|
||||
</table>
|
||||
<ul>
|
||||
<li>NUM : 文件名号码。注:文件名采用8+3格式,只识别文件名的前2个字符,例如:01.mp3和01月光小夜曲.mp3是相同的,月光小夜曲可有可无,但前面序号必须有,存放文件时需注意。</li>
|
||||
<li>LOOP: 循环次数,0为单曲无限循环</li>
|
||||
<li>文件必须存在否则播放失败</li>
|
||||
<li>DH,DL: 回复数据,组合成一个16bit的整形,例如 DH=0x00 DL=0x02 则值是0x0002</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
BIN
README.jpeg
BIN
README.jpeg
Binary file not shown.
Before Width: | Height: | Size: 662 KiB After Width: | Height: | Size: 719 KiB |
47
README.md
47
README.md
@ -2,6 +2,12 @@
|
||||
|
||||

|
||||
|
||||
# 使用注意:
|
||||
1. TF卡和SPI Flash只支持一个,下单请注意备注。
|
||||
2. 开机有提示音“咚”。
|
||||
3. 默认循环方式为不循环,播放一次后结束。
|
||||
4. BUSY引脚指示当前播放状态,低电平为正在播放,高电平为未播放,也可使用此引脚控制功放的MUTE,但需实测是否有呑字现象。
|
||||
|
||||
## UART 通讯协议 115200 N 8 1
|
||||
- 发送
|
||||
| head | length | CMD | DATA | XOR | tail |
|
||||
@ -33,15 +39,22 @@
|
||||
- 0xAB 播放指定曲目(通配符)
|
||||
- 0xAC 播放指定曲目(带扩展名)
|
||||
- 0xAD 播放指定曲目(数字)
|
||||
- 0xAE 播放循环
|
||||
- 0xB0 获取当前磁盘文件总数
|
||||
- 0xB1 获取当前磁盘文件夹数量
|
||||
- 0xB2 获取当前播放文件夹内文件数量
|
||||
- 0xB3 获取当前播放曲目总时间
|
||||
- 0xB4 获取当前播放曲目时间
|
||||
## 指令详述
|
||||
- 系统复位:0xA0/A1/A2/A3/A4/A5/A6/A7/A9/AA
|
||||
- 播放控制指令:0xA0/A1/A2/A3/A4/A5/A6/A7/A9/AA
|
||||
| HEAD | LENGTH | CMD | CHK | TAIL |
|
||||
|------|--------|--------|-------|------|
|
||||
| 0x02 | 1Byte | 0xA0 | 1Byte | 0x03 |
|
||||
- 播放/暂停:0xC2
|
||||
| HEAD | LENGTH | CMD | CHK | TAIL |
|
||||
|------|--------|--------|-------|------|
|
||||
| 0x02 | 1Byte | 0xC2 | 1Byte | 0x03 |
|
||||
| 0x02 | 1Byte | 0xA0 | 1Byte | 0x03 |
|
||||
- 播放循环:0xAE
|
||||
| HEAD | LENGTH | CMD | CYCLE | CHK | TAIL |
|
||||
|------|--------|--------|--------|------|------|
|
||||
| 0x02 | 1Byte | 0xAE | 1Byte |1Byte | 0x03 |
|
||||
- CYCLE :0-不循环,1-全部循环 2-单曲循环,3-文件夹循环,4-随机
|
||||
- 设置音量:0xA8
|
||||
| HEAD | LENGTH | CMD | VOLUME | CHK | TAIL |
|
||||
|------|--------|--------|---------------|------|------|
|
||||
@ -61,21 +74,23 @@
|
||||
| 0x02 | 1Byte | 0xAC | '$' | 'abc.mp3' | '$' | 1Byte| 0x03 |
|
||||
- STA :名字起始,字符'$'(0x24)。
|
||||
- END : 名字结束,字符'$'(0x24)。
|
||||
- NAME :名字字符串,必须写全文件名,例如:文件名采用8+3格式,只识别文件名的前2个字符,例如:01.mp3和010.mp3是不同的
|
||||
- NAME :名字字符串,必须写全文件名,例如:文件名采用8+3格式,例如:01.mp3和001.mp3是不同的
|
||||
- 文件必须存在否则播放失败
|
||||
- 播放指定曲目(文件号):AD
|
||||
| HEAD | LENGTH | CMD | FH | FL | CHK | TAIL |
|
||||
|------|--------|--------|----------|------------|-------|------|
|
||||
| 0x02 | 1Byte | 0xAD | 1Byte | 1Byte | 1Byte | 0x03 |
|
||||
- FH,FL:组合成以恶搞16bit的整形,例如 FH=0x00 FL=0x02 实际上是播放0x0002曲目,曲目的顺序号是拷贝进磁盘的顺序
|
||||
- 文件必须存在否则播放失败
|
||||
- 指定文件号播放:0xC8
|
||||
| HEAD | LENGTH | CMD | NUM | LOOP | CHK | TAIL |
|
||||
|------|--------|--------|-----------|-----------|------|------|
|
||||
| 0x02 | 1Byte | 0xC8 | 1-99 | 1Byte | 1Byte| 0x03 |
|
||||
- NUM : 文件名号码。注:文件名采用8+3格式,只识别文件名的前2个字符,例如:01.mp3和01月光小夜曲.mp3是相同的,月光小夜曲可有可无,但前面序号必须有,存放文件时需注意。
|
||||
- LOOP: 循环次数,0为单曲无限循环
|
||||
- 文件必须存在否则播放失败
|
||||
- FH,FL:组合成一个16bit的整形,例如 FH=0x00 FL=0x02 实际上是播放0x0002曲目,曲目的顺序号是拷贝进磁盘的顺序
|
||||
- 文件必须存在否则播放失败
|
||||
- 播放信息:B0/B1/B2/B3/B4
|
||||
| HEAD | LENGTH | CMD | CHK | TAIL |
|
||||
|------|--------|--------|-------|------|
|
||||
| 0x02 | 1Byte | 0xB0 | 1Byte | 0x03 |
|
||||
- ACK:
|
||||
| HEAD | LENGTH | CMD | ERR | DH | DL | CHK | TAIL |
|
||||
|------|--------|--------|-------|-------|------|-------|------|
|
||||
| 0x02 | 1Byte | 0xB0 | 1Byte | 1Byte | 1Byte| 1Byte | 0x03 |
|
||||
- DH,DL: 回复数据,组合成一个16bit的整形,例如 DH=0x00 DL=0x02 则值是0x0002
|
||||
## 附录1:校验
|
||||
- 校验方式为校验和,计算方式为数据累计和取反加1的方式
|
||||
- 举例发送系统复位指令A0:0x02 0x02 0xA0 CheckSum 0x03
|
||||
|
BIN
README.png
BIN
README.png
Binary file not shown.
Before Width: | Height: | Size: 305 KiB After Width: | Height: | Size: 329 KiB |
@ -3,6 +3,7 @@
|
||||
#include "app_config.h"
|
||||
#include "audio_enc.h"
|
||||
#include "app_main.h"
|
||||
#include "kt.h"
|
||||
|
||||
#define LOG_TAG_CONST APP_MUSIC
|
||||
#define LOG_TAG "[APP_MUSIC]"
|
||||
@ -169,20 +170,30 @@ int music_player_end_deal(int parm)
|
||||
else
|
||||
{
|
||||
/// 正常结束,自动下一曲
|
||||
printf("......app_var.cycle_mode : %d \n", app_var.cycle_mode);
|
||||
#if (MUSIC_PLAYER_CYCLE_ALL_DEV_EN)
|
||||
u32 cur_file = music_player_get_file_cur();
|
||||
if ((music_player_get_record_play_status() == false) && (app_var.cycle_mode == FCYCLE_ALL) && (cur_file >= music_player_get_file_total()) && (dev_manager_get_total(1) > 1))
|
||||
{
|
||||
printf("......music_player_play_first_file 1 \n");
|
||||
char *logo = music_player_get_dev_flit("_rec", 1);
|
||||
if (logo)
|
||||
{
|
||||
printf("......music_player_play_first_file 2 \n");
|
||||
err = music_player_play_first_file(logo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf("......music_player_play_auto_next 1 \n");
|
||||
#endif /*MUSIC_PLAYER_CYCLE_ALL_DEV_EN*/
|
||||
//err = music_player_play_auto_next();
|
||||
printf("......kt_get_cycle() : %d \n", kt_get_cycle());
|
||||
if (kt_get_cycle() != FCYCLE_ONE && kt_get_cycle() != FCYCLE_LIST)
|
||||
{
|
||||
printf("......music_player_play_auto_next 2\n");
|
||||
err = music_player_play_auto_next();
|
||||
}
|
||||
}
|
||||
printf("......music_player_end_deal 1 \n");
|
||||
break;
|
||||
/// 解码器产生的错误, 文件损坏等
|
||||
case AUDIO_PLAY_EVENT_ERR:
|
||||
@ -985,6 +996,7 @@ int music_player_play_next(void)
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
static u8 first_start = 0;
|
||||
int music_player_play_first_file(char *logo)
|
||||
{
|
||||
if (logo == NULL)
|
||||
@ -1016,6 +1028,14 @@ int music_player_play_first_file(char *logo)
|
||||
{
|
||||
return MUSIC_PLAYER_ERR_FILE_NOFOUND;
|
||||
}
|
||||
if (first_start == 0)
|
||||
{
|
||||
first_start = 1;
|
||||
dev_manager_set_active(__this->dev);
|
||||
return MUSIC_PLAYER_SUCC;
|
||||
//return MUSIC_PLAYER_ERR_FILE_NOFOUND;
|
||||
}
|
||||
|
||||
/// start decoder
|
||||
int err = music_player_decode_start(__this->file, 0);
|
||||
if (err == MUSIC_PLAYER_SUCC)
|
||||
@ -1083,32 +1103,38 @@ int music_player_play_last_file(char *logo)
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int music_player_play_auto_next(void)
|
||||
{
|
||||
printf("......cycle : %d ,music_player_play_auto_next 1 \n", kt_get_cycle());
|
||||
/// close player first
|
||||
music_player_stop(0);
|
||||
/// get dev, 检查设备是否有掉线
|
||||
if (dev_manager_online_check(__this->dev, 1) == 0)
|
||||
{
|
||||
printf("......music_player_play_auto_next 2 \n");
|
||||
return MUSIC_PLAYER_ERR_DEV_OFFLINE;
|
||||
}
|
||||
/// 不需要重新找设备、扫盘
|
||||
if (__this->fsn == NULL)
|
||||
{
|
||||
printf("......music_player_play_auto_next 3 \n");
|
||||
return MUSIC_PLAYER_ERR_FSCAN;
|
||||
}
|
||||
/// get file
|
||||
__this->file = file_manager_select(__this->dev, __this->fsn, FSEL_AUTO_FILE, 0, __this->parm.scan_cb); /// 选择自动下一曲
|
||||
if (__this->file == NULL)
|
||||
{
|
||||
printf("......music_player_play_auto_next 4 \n");
|
||||
return MUSIC_PLAYER_ERR_FILE_NOFOUND;
|
||||
}
|
||||
/// start decoder
|
||||
int err = music_player_decode_start(__this->file, 0);
|
||||
if (err == MUSIC_PLAYER_SUCC)
|
||||
{
|
||||
printf("......music_player_play_auto_next 5 \n");
|
||||
/// 选定新设备播放成功后,需要激活当前设备
|
||||
dev_manager_set_active(__this->dev);
|
||||
log_i("[%s %d] ok\n", __FUNCTION__, __LINE__);
|
||||
}
|
||||
printf("......music_player_play_auto_next 6 \n");
|
||||
return err;
|
||||
}
|
||||
//*----------------------------------------------------------------------------*/
|
||||
|
@ -2,19 +2,31 @@
|
||||
#include "app_task.h"
|
||||
#include "music_player.h"
|
||||
|
||||
typedef struct _kt_var_
|
||||
{
|
||||
int tid;
|
||||
struct
|
||||
{
|
||||
u8 play_mode; //0:none,1:num,2:name,3:fullname
|
||||
u8 play_num;
|
||||
char play_name[32];
|
||||
u8 cycle_mode;
|
||||
}play_status;
|
||||
|
||||
} _kt_var;
|
||||
|
||||
u16 tid;
|
||||
|
||||
static _kt_var kt_var;
|
||||
#define __this (&kt_var)
|
||||
|
||||
void kt_busy_ctl_init(void)
|
||||
{
|
||||
/* pa ctl-mute*/
|
||||
//gpio_set_direction(KT_PAMUTE_PORT, 0);
|
||||
//gpio_set_pull_up(KT_PAMUTE_PORT, 0);
|
||||
//gpio_set_pull_down(KT_PAMUTE_PORT, 0);
|
||||
//gpio_set_hd(KT_PAMUTE_PORT, 1);
|
||||
/* pa ctl-mute*/
|
||||
// gpio_set_direction(KT_PAMUTE_PORT, 0);
|
||||
// gpio_set_pull_up(KT_PAMUTE_PORT, 0);
|
||||
// gpio_set_pull_down(KT_PAMUTE_PORT, 0);
|
||||
// gpio_set_hd(KT_PAMUTE_PORT, 1);
|
||||
|
||||
//gpio_set_output_value(KT_PAMUTE_PORT, 1);
|
||||
// gpio_set_output_value(KT_PAMUTE_PORT, 1);
|
||||
|
||||
gpio_set_direction(KT_BUSY_PORT, 0);
|
||||
gpio_set_pull_up(KT_BUSY_PORT, 0);
|
||||
@ -26,6 +38,7 @@ void kt_busy_ctl_init(void)
|
||||
|
||||
void timer_cb(void *arg)
|
||||
{
|
||||
#if 0
|
||||
if (app_get_curr_task() == APP_MUSIC_TASK)
|
||||
{
|
||||
if (music_player_get_play_status() == FILE_DEC_STATUS_PLAY)
|
||||
@ -35,27 +48,76 @@ void timer_cb(void *arg)
|
||||
else
|
||||
{
|
||||
gpio_set_output_value(KT_BUSY_PORT, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gpio_set_output_value(KT_BUSY_PORT, 1);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void start_timer(void)
|
||||
{
|
||||
if (tid)
|
||||
if (__this->tid)
|
||||
{
|
||||
sys_timer_del(tid);
|
||||
sys_timer_del(__this->tid);
|
||||
}
|
||||
tid = sys_timer_add(NULL,timer_cb, 50);
|
||||
__this->tid = sys_timer_add(NULL, timer_cb, 50);
|
||||
}
|
||||
|
||||
u8 kt_get_cycle(void)
|
||||
{
|
||||
return __this->play_status.cycle_mode;
|
||||
}
|
||||
|
||||
void kt_change_cycle(u8 cycle)
|
||||
{
|
||||
__this->play_status.cycle_mode = cycle;
|
||||
if (cycle != FCYCLE_ONE)
|
||||
{
|
||||
memset(&__this->play_status, 0, sizeof(__this->play_status));
|
||||
}
|
||||
}
|
||||
|
||||
void kt_set_last_play(u8 mode, u8 num, char *name)
|
||||
{
|
||||
printf("kt_set_last_play mode = %d, num = %d, name = %s\n", mode, num, name);
|
||||
__this->play_status.play_mode = mode;
|
||||
if (mode == 1)
|
||||
{
|
||||
printf("kt_set_last_play num = %d\n", num);
|
||||
__this->play_status.play_num = num;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("kt_set_last_play name = %s\n", name);
|
||||
memset(__this->play_status.play_name, 0, sizeof(__this->play_status.play_name));
|
||||
strcpy(__this->play_status.play_name, name);
|
||||
printf("kt_set_last_play play_name = %s\n", __this->play_status.play_name);
|
||||
}
|
||||
}
|
||||
|
||||
void kt_get_last_play(u8 *mode, u8 *num, char *name)
|
||||
{
|
||||
*mode = __this->play_status.play_mode;
|
||||
printf("kt_get_last_play mode = %d\n", *mode);
|
||||
if (__this->play_status.play_mode == 1)
|
||||
{
|
||||
*num = __this->play_status.play_num;
|
||||
printf("kt_get_last_play num = %d\n", *num);
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(name, __this->play_status.play_name);
|
||||
printf("kt_get_last_play name = %s\n", name);
|
||||
}
|
||||
}
|
||||
|
||||
void kt_init(void)
|
||||
{
|
||||
kt_busy_ctl_init();
|
||||
memset(&__this->play_status, 0, sizeof(__this->play_status));
|
||||
//kt_busy_ctl_init();
|
||||
kt_uart_init();
|
||||
start_timer();
|
||||
}
|
@ -9,6 +9,8 @@
|
||||
#define KT_UART_RX_PORT IO_PORTB_07
|
||||
|
||||
#define KT_BUSY_PORT IO_PORTA_04
|
||||
#define PA_MUTE() (gpio_set_output_value(IO_PORTA_04,1))
|
||||
#define PA_UNMUTE() (gpio_set_output_value(IO_PORTA_04,0))
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@ -41,13 +43,25 @@ typedef struct
|
||||
#define KT_CMD_VOL_SET 0xA8
|
||||
#define KT_CMD_VOL_MUTE 0xA9
|
||||
#define KT_CMD_VOL_UNMUTE 0xAA
|
||||
#define KT_CMD_CYCLE 0xAE
|
||||
|
||||
#define KT_CMD_PLAY_NAME 0xAB
|
||||
#define KT_CMD_PLAY_FULL_NAME 0xAC
|
||||
#define KT_CMD_PLAY_NUM 0xAD
|
||||
#define KT_CMD_GET_FILE_NUM 0xB0
|
||||
#define KT_CMD_GET_DIR_NUM 0xB1
|
||||
#define KT_CMD_GET_DIR_FILE_NUM 0xB2
|
||||
#define KT_CMD_GET_PLAY_TOTAL_TIME 0xB3
|
||||
#define KT_CMD_GET_PLAY_CUR_TIME 0xB4
|
||||
|
||||
void kt_uart_init(void);
|
||||
void kt_uart_event(void);
|
||||
void kt_init(void);
|
||||
void kt_change_cycle(u8 cycle);
|
||||
u8 kt_get_cycle(void);
|
||||
void kt_set_last_play(u8 mode, u8 num, char *name);
|
||||
void kt_get_last_play(u8 *mode, u8 *num, char *name);
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -87,25 +87,58 @@ static void uart_ack(u8 cmd, u8 err)
|
||||
uart_bus->write(tx_buf,index);
|
||||
}
|
||||
|
||||
static void uart_ack_d16(u8 cmd, u8 err,u16 data)
|
||||
{
|
||||
if (uart_bus == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
printf("tx_data cmd:%x err:%d \r\n", cmd, err);
|
||||
u8 tx_buf[32] = {0};
|
||||
int index = 0;
|
||||
|
||||
tx_buf[index++] = 0x02;
|
||||
tx_buf[index++] = 0x04;
|
||||
tx_buf[index++] = cmd;
|
||||
tx_buf[index++] = err;
|
||||
tx_buf[index++] = (u8)(data >> 8);
|
||||
tx_buf[index++] = (u8)(data & 0xFF);
|
||||
|
||||
u8 x = tx_buf[1];
|
||||
|
||||
x = x ^ tx_buf[2];
|
||||
x = x ^ tx_buf[3];
|
||||
|
||||
tx_buf[index++] = x;
|
||||
tx_buf[index++] = 0x03;
|
||||
|
||||
uart_bus->write(tx_buf,index);
|
||||
}
|
||||
|
||||
char str_play_name[32];
|
||||
char str_play_name_full[32];
|
||||
static void uart_process(tRxPacket *pack)
|
||||
{
|
||||
if ((pack->buf[0] != 0x02) || (pack->buf[pack->leng - 1] != 0x03))
|
||||
{
|
||||
printf("data err head = %d tail = %d \n", pack->buf[0], pack->buf[pack->leng - 1]);
|
||||
return;
|
||||
}
|
||||
|
||||
if (pack->buf[1] != pack->leng - 2)
|
||||
{
|
||||
printf("data err length = %d \n", pack->buf[1]);
|
||||
uart_ack(pack->buf[2], KT_ERR_LENGTH);
|
||||
return;
|
||||
}
|
||||
|
||||
u8 xor = pack->buf[1];
|
||||
|
||||
|
||||
if (pack->buf[pack->leng - 2] != 0xFF)
|
||||
{
|
||||
printf("need xor check \n");
|
||||
for (int i = 0; i < pack->buf[1] - 2; i++)
|
||||
{
|
||||
xor = xor ^ pack->buf[2 + i];
|
||||
@ -120,6 +153,7 @@ static void uart_process(tRxPacket *pack)
|
||||
|
||||
if (pack->buf[2] == KT_CMD_PLAY)
|
||||
{
|
||||
printf("KT_CMD_PLAY \n");
|
||||
int sta = music_player_get_play_status();
|
||||
if (sta == FILE_DEC_STATUS_STOP)
|
||||
{
|
||||
@ -137,6 +171,7 @@ static void uart_process(tRxPacket *pack)
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_PAUSE)
|
||||
{
|
||||
printf("KT_CMD_PAUSE \n");
|
||||
int sta = music_player_get_play_status();
|
||||
if ((sta == FILE_DEC_STATUS_PLAY) || (sta == FILE_DEC_STATUS_WAIT_PLAY))
|
||||
{
|
||||
@ -147,6 +182,7 @@ static void uart_process(tRxPacket *pack)
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_PP)
|
||||
{
|
||||
printf("KT_CMD_PP \n");
|
||||
int sta = music_player_get_play_status();
|
||||
if (sta == FILE_DEC_STATUS_STOP)
|
||||
{
|
||||
@ -161,31 +197,37 @@ static void uart_process(tRxPacket *pack)
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_NEXT)
|
||||
{
|
||||
printf("KT_CMD_NEXT \n");
|
||||
app_task_put_key_msg(KEY_MUSIC_NEXT,0);
|
||||
uart_ack(pack->buf[2], KT_OK);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_PREV)
|
||||
{
|
||||
printf("KT_CMD_PREV \n");
|
||||
app_task_put_key_msg(KEY_MUSIC_PREV,0);
|
||||
uart_ack(pack->buf[2], KT_OK);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_STOP)
|
||||
{
|
||||
app_task_put_key_msg(KEY_MUSIC_PLAYER_END,0);
|
||||
printf("KT_CMD_STOP \n");
|
||||
app_task_put_key_msg(KEY_USER_PLAY_STOP,0);
|
||||
uart_ack(pack->buf[2], KT_OK);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_VOL_UP)
|
||||
{
|
||||
printf("KT_CMD_VOL_UP \n");
|
||||
app_task_put_key_msg(KEY_VOL_UP,0);
|
||||
uart_ack(pack->buf[2], KT_OK);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_VOL_DOWN)
|
||||
{
|
||||
printf("KT_CMD_VOL_DOWN \n");
|
||||
app_task_put_key_msg(KEY_VOL_DOWN,0);
|
||||
uart_ack(pack->buf[2], KT_OK);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_VOL_SET)
|
||||
{
|
||||
printf("KT_CMD_VOL_SET \n");
|
||||
app_audio_set_volume(APP_AUDIO_STATE_MUSIC, (s8)(pack->buf[3]), 1);
|
||||
uart_ack(pack->buf[2], KT_OK);
|
||||
}
|
||||
@ -195,6 +237,7 @@ static void uart_process(tRxPacket *pack)
|
||||
//KT_PA_MUTE();
|
||||
kt_sys_mute = 1;
|
||||
//KT_PA_MUTE();
|
||||
app_audio_mute(0);
|
||||
uart_ack(pack->buf[2], KT_OK);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_VOL_UNMUTE)
|
||||
@ -202,10 +245,12 @@ static void uart_process(tRxPacket *pack)
|
||||
printf("KT_CMD_VOL_UNMUTE \n");
|
||||
kt_sys_mute = 0;
|
||||
//KT_PA_UNMUTE();
|
||||
app_audio_mute(1);
|
||||
uart_ack(pack->buf[2], KT_OK);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_PLAY_NAME) //0xAB
|
||||
{
|
||||
printf("KT_CMD_PLAY_NAME \n");
|
||||
if (pack->buf[3] == '$')
|
||||
{
|
||||
//char temp[32];
|
||||
@ -244,6 +289,7 @@ static void uart_process(tRxPacket *pack)
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_PLAY_FULL_NAME) //0xAC
|
||||
{
|
||||
printf("KT_CMD_PLAY_FULL_NAME \n");
|
||||
if (pack->buf[3] == '$')
|
||||
{
|
||||
//char temp[32];
|
||||
@ -282,6 +328,7 @@ static void uart_process(tRxPacket *pack)
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_PLAY_NUM) //0xAD
|
||||
{
|
||||
printf("KT_CMD_PLAY_NUM \n");
|
||||
u16 num = 0;
|
||||
num = pack->buf[3];
|
||||
num = num << 8;
|
||||
@ -290,8 +337,55 @@ static void uart_process(tRxPacket *pack)
|
||||
app_task_put_key_msg(KEY_USER_PLAY_NUM, num); //test demo
|
||||
uart_ack(pack->buf[2], KT_OK);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_CYCLE)
|
||||
{
|
||||
printf("KT_CMD_CYCLE \n");
|
||||
app_task_put_key_msg(KEY_USER_PLAY_CYCLE, pack->buf[3]);
|
||||
uart_ack(pack->buf[2], KT_OK);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_GET_FILE_NUM) //文件数量
|
||||
{
|
||||
printf("KT_CMD_GET_FILE_NUM \n");
|
||||
u16 num = 0;
|
||||
num = music_player_get_file_total();
|
||||
printf("num = %d\n", num);
|
||||
uart_ack_d16(pack->buf[2], KT_OK, num);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_GET_DIR_NUM) //文件夹数量
|
||||
{
|
||||
printf("KT_CMD_GET_DIR_NUM \n");
|
||||
u16 num = 0;
|
||||
num = music_player_get_dir_total();
|
||||
printf("num = %d\n", num);
|
||||
uart_ack_d16(pack->buf[2], KT_OK, num);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_GET_DIR_FILE_NUM) //当前文件夹文件数量
|
||||
{
|
||||
printf("KT_CMD_GET_DIR_FILE_NUM \n");
|
||||
u16 num = 0;
|
||||
num = music_player_get_fileindir_number();
|
||||
printf("num = %d\n", num);
|
||||
uart_ack_d16(pack->buf[2], KT_OK, num);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_GET_PLAY_TOTAL_TIME) //播放总时间
|
||||
{
|
||||
printf("KT_CMD_GET_PLAY_TOTAL_TIME \n");
|
||||
u16 num = 0;
|
||||
num = music_player_get_dec_total_time();
|
||||
printf("num = %d\n", num);
|
||||
uart_ack_d16(pack->buf[2], KT_OK, num);
|
||||
}
|
||||
else if (pack->buf[2] == KT_CMD_GET_PLAY_CUR_TIME) //播放当前时间
|
||||
{
|
||||
printf("KT_CMD_GET_PLAY_CUR_TIME \n");
|
||||
u16 num = 0;
|
||||
num = music_player_get_dec_cur_time();
|
||||
printf("num = %d\n", num);
|
||||
uart_ack_d16(pack->buf[2], KT_OK, num);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("KT_CMD_UNCMD \n");
|
||||
uart_ack(pack->buf[2], KT_ERR_UNCMD);
|
||||
}
|
||||
}
|
||||
|
@ -46,7 +46,7 @@
|
||||
#define TCFG_UART0_RX_PORT NO_CONFIG_PORT //串口接收脚配置(用于打印可以选择NO_CONFIG_PORT)
|
||||
|
||||
#if 1
|
||||
#define TCFG_UART0_TX_PORT IO_PORTA_05 //串口发送脚配置
|
||||
#define TCFG_UART0_TX_PORT IO_PORT_DP //串口发送脚配置
|
||||
#define TCFG_UART0_BAUDRATE 115200 //串口波特率配置
|
||||
#else
|
||||
#define TCFG_UART0_TX_PORT IO_PORTA_05 //串口发送脚配置
|
||||
@ -74,7 +74,7 @@
|
||||
//*********************************************************************************//
|
||||
// 硬件SPI 配置 //
|
||||
//*********************************************************************************//
|
||||
#define TCFG_HW_SPI1_ENABLE ENABLE_THIS_MOUDLE
|
||||
#define TCFG_HW_SPI1_ENABLE DISABLE_THIS_MOUDLE
|
||||
//A组IO: DI: PB2 DO: PB1 CLK: PB0
|
||||
//B组IO: DI: PC3 DO: PC5 CLK: PC4
|
||||
#define TCFG_HW_SPI1_PORT 'B'
|
||||
@ -93,7 +93,7 @@
|
||||
//*********************************************************************************//
|
||||
// FLASH 配置 //
|
||||
//*********************************************************************************//
|
||||
#define TCFG_NORFLASH_DEV_ENABLE ENABLE_THIS_MOUDLE //需要关闭SD0
|
||||
#define TCFG_NORFLASH_DEV_ENABLE DISABLE_THIS_MOUDLE //需要关闭SD0
|
||||
#define TCFG_FLASH_DEV_SPI_HW_NUM 1// 1: SPI1 2: SPI2
|
||||
#define TCFG_FLASH_DEV_SPI_CS_PORT IO_PORTC_03
|
||||
|
||||
@ -126,7 +126,7 @@
|
||||
//A组IO: CMD:PC4 CLK:PC5 DAT0:PC3 //D组IO: CMD:PB2 CLK:PB0 DAT0:PB3
|
||||
//B组IO: CMD:PB6 CLK:PB7 DAT0:PB5 //E组IO: CMD:PA4 CLK:PC5 DAT0:DM
|
||||
//C组IO: CMD:PA4 CLK:PA2 DAT0:PA3 //F组IO: CMD:PB6 CLK:PB7 DAT0:PB4
|
||||
#define TCFG_SD0_ENABLE DISABLE_THIS_MOUDLE
|
||||
#define TCFG_SD0_ENABLE ENABLE_THIS_MOUDLE
|
||||
#define TCFG_SD0_PORTS 'A'
|
||||
#define TCFG_SD0_DAT_MODE 1//AC696x不支持4线模式
|
||||
#define TCFG_SD0_DET_MODE SD_CLK_DECT
|
||||
@ -249,13 +249,13 @@
|
||||
|
||||
//必须从小到大填电阻,没有则同VDDIO,填0x3ffL
|
||||
#define TCFG_ADKEY_AD0 (0) //0R
|
||||
#define TCFG_ADKEY_AD1 (0x3ffL * 10 / (10 + R_UP)) //3k
|
||||
#define TCFG_ADKEY_AD2 (0x3ffL * 22 / (22 + R_UP)) //6.2k
|
||||
#define TCFG_ADKEY_AD3 (0x3ffL * 47 / (47 + R_UP)) //9.1k
|
||||
#define TCFG_ADKEY_AD4 (0x3ffL * 68 / (68 + R_UP)) //15k
|
||||
#define TCFG_ADKEY_AD5 (0x3ffL * 100 / (100 + R_UP)) //24k
|
||||
#define TCFG_ADKEY_AD6 (0x3ffL * 150 / (150 + R_UP)) //33k
|
||||
#define TCFG_ADKEY_AD7 (0x3ffL * 240 / (240 + R_UP)) //51k
|
||||
#define TCFG_ADKEY_AD1 (0x3ffL * 47 / (47 + R_UP)) //3k
|
||||
#define TCFG_ADKEY_AD2 (0x3ffL * 100 / (100 + R_UP)) //6.2k
|
||||
#define TCFG_ADKEY_AD3 (0x3ffL * 220 / (220 + R_UP)) //9.1k
|
||||
#define TCFG_ADKEY_AD4 (0x3ffL * 470 / (470 + R_UP)) //15k
|
||||
#define TCFG_ADKEY_AD5 (0x3ffL) //24k
|
||||
#define TCFG_ADKEY_AD6 (0x3ffL) //33k
|
||||
#define TCFG_ADKEY_AD7 (0x3ffL) //51k
|
||||
#define TCFG_ADKEY_AD8 (0x3ffL) //100k
|
||||
#define TCFG_ADKEY_AD9 (0x3ffL)
|
||||
#define TCFG_ADKEY_VDDIO (0x3ffL)
|
||||
@ -419,7 +419,7 @@ DAC硬件上的连接方式,可选的配置:
|
||||
#define AUDIO_OUTPUT_WAY AUDIO_OUTPUT_WAY_DAC
|
||||
#define LINEIN_INPUT_WAY LINEIN_INPUT_WAY_ANALOG
|
||||
|
||||
#define AUDIO_OUTPUT_AUTOMUTE 0//ENABLE
|
||||
#define AUDIO_OUTPUT_AUTOMUTE 1//ENABLE
|
||||
/*
|
||||
*系统音量类型选择
|
||||
*软件数字音量是指纯软件对声音进行运算后得到的
|
||||
|
@ -133,28 +133,28 @@ const u16 linein_key_ad_table[KEY_AD_NUM_MAX][KEY_EVENT_MAX] = {
|
||||
const u16 music_key_ad_table[KEY_AD_NUM_MAX][KEY_EVENT_MAX] = {
|
||||
//单击 //长按 //hold //抬起 //双击 //三击
|
||||
[0] = {
|
||||
KEY_CHANGE_MODE, KEY_POWEROFF, KEY_POWEROFF_HOLD, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
KEY_MUSIC_PP, KEY_POWEROFF, KEY_POWEROFF_HOLD, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
},
|
||||
[1] = {
|
||||
KEY_MUSIC_CHANGE_REPEAT, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
KEY_VOL_DOWN, KEY_VOL_DOWN, KEY_VOL_DOWN, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
},
|
||||
[2] = {
|
||||
KEY_MUSIC_PP, KEY_MUSIC_CHANGE_DEV, KEY_NULL, KEY_NULL, KEY_EQ_MODE, KEY_NULL
|
||||
KEY_VOL_UP, KEY_VOL_UP, KEY_VOL_UP, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
},
|
||||
[3] = {
|
||||
KEY_MUSIC_PLAYE_NEXT_FOLDER, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
KEY_MUSIC_PREV, KEY_VOL_DOWN, KEY_VOL_DOWN, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
},
|
||||
[4] = {
|
||||
KEY_MUSIC_PREV, KEY_VOL_DOWN, KEY_VOL_DOWN, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
KEY_MUSIC_NEXT, KEY_VOL_UP, KEY_VOL_UP, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
},
|
||||
[5] = {
|
||||
KEY_MUSIC_PLAYE_PREV_FOLDER, KEY_NULL, KEY_MUSIC_FR, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
},
|
||||
[6] = {
|
||||
KEY_MUSIC_NEXT, KEY_VOL_UP, KEY_VOL_UP, KEY_NULL, KEY_REVERB_OPEN, KEY_NULL
|
||||
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
},
|
||||
[7] = {
|
||||
KEY_MUSIC_PLAYE_REC_FOLDER_SWITCH, KEY_NULL, KEY_MUSIC_FF, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
},
|
||||
[8] = {
|
||||
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL
|
||||
|
@ -96,16 +96,28 @@ static void app_init()
|
||||
do_platform_initcall();
|
||||
|
||||
board_init();
|
||||
//mute/busy HiZ
|
||||
gpio_set_pull_down(IO_PORTA_02,0);
|
||||
gpio_set_pull_up(IO_PORTA_02,0);
|
||||
gpio_set_die(IO_PORTA_02,1);
|
||||
gpio_set_direction(IO_PORTA_02,1);
|
||||
//mute
|
||||
gpio_set_pull_down(IO_PORTA_04,0);
|
||||
gpio_set_pull_up(IO_PORTA_04,0);
|
||||
gpio_set_direction(IO_PORTA_04,0);
|
||||
gpio_set_output_value(IO_PORTA_04,1);
|
||||
|
||||
gpio_set_pull_down(IO_PORTC_02,0);
|
||||
gpio_set_pull_up(IO_PORTC_02,0);
|
||||
gpio_set_die(IO_PORTC_02,1);
|
||||
gpio_set_direction(IO_PORTC_02,1);
|
||||
|
||||
gpio_set_pull_down(IO_PORTA_02,0);
|
||||
gpio_set_pull_up(IO_PORTA_02,0);
|
||||
gpio_set_die(IO_PORTA_02,1);
|
||||
gpio_set_direction(IO_PORTA_02,1);
|
||||
|
||||
|
||||
gpio_set_pull_down(IO_PORTA_01,0);
|
||||
gpio_set_pull_up(IO_PORTA_01,0);
|
||||
gpio_set_die(IO_PORTA_01,1);
|
||||
gpio_set_direction(IO_PORTA_01,1);
|
||||
|
||||
do_initcall();
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
#define CONFIG_DEBUG_LIB(x) (x & LIB_DEBUG)
|
||||
|
||||
#define CONFIG_DEBUG_ENABLE
|
||||
//#define CONFIG_DEBUG_ENABLE
|
||||
|
||||
#ifndef CONFIG_DEBUG_ENABLE
|
||||
//#define CONFIG_DEBUG_LITE_ENABLE //轻量级打印开关, 默认关闭
|
||||
|
@ -178,6 +178,8 @@ enum {
|
||||
KEY_USER_PLAY_NUM,
|
||||
KEY_USER_PLAY_NAME,
|
||||
KEY_USER_PLAY_FULL_NAME,
|
||||
KEY_USER_PLAY_CYCLE,
|
||||
KEY_USER_PLAY_STOP,
|
||||
|
||||
KEY_IR_NUM_0, //中间不允许插入
|
||||
KEY_IR_NUM_1,
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include "common/dev_status.h"
|
||||
#include "clock_cfg.h"
|
||||
#include "system/fs/fs.h"
|
||||
#include "kt.h"
|
||||
|
||||
/*************************************************************
|
||||
此文件函数主要是music模式按键处理和事件处理
|
||||
@ -430,7 +431,7 @@ void music_player_err_deal(int err)
|
||||
}
|
||||
else
|
||||
{
|
||||
//msg = KEY_MUSIC_AUTO_NEXT_DEV; /// 所有文件都是错误的, 切换到下一个设备
|
||||
// msg = KEY_MUSIC_AUTO_NEXT_DEV; /// 所有文件都是错误的, 切换到下一个设备
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -438,11 +439,11 @@ void music_player_err_deal(int err)
|
||||
__this->file_err_counter++;
|
||||
if (__this->file_play_direct == 0)
|
||||
{
|
||||
//msg = KEY_MUSIC_NEXT; // 播放下一曲
|
||||
// msg = KEY_MUSIC_NEXT; // 播放下一曲
|
||||
}
|
||||
else
|
||||
{
|
||||
//msg = KEY_MUSIC_PREV; // 播放上一曲
|
||||
// msg = KEY_MUSIC_PREV; // 播放上一曲
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -454,7 +455,7 @@ void music_player_err_deal(int err)
|
||||
}
|
||||
else
|
||||
{
|
||||
//msg = KEY_MUSIC_PLAYER_START; /// 没有找到指定设备, 播放之前的活动设备
|
||||
// msg = KEY_MUSIC_PLAYER_START; /// 没有找到指定设备, 播放之前的活动设备
|
||||
}
|
||||
break;
|
||||
|
||||
@ -493,7 +494,7 @@ void music_player_err_deal(int err)
|
||||
}
|
||||
else
|
||||
{
|
||||
//msg = KEY_MUSIC_AUTO_NEXT_DEV; /// 切换设备
|
||||
// msg = KEY_MUSIC_AUTO_NEXT_DEV; /// 切换设备
|
||||
}
|
||||
break;
|
||||
case MUSIC_PLAYER_ERR_FILE_NOFOUND:
|
||||
@ -510,7 +511,7 @@ void music_player_err_deal(int err)
|
||||
{
|
||||
if (music_player_get_file_total())
|
||||
{
|
||||
//msg = KEY_MUSIC_PLAYER_PLAY_FIRST; /// 有文件,播放第一个文件
|
||||
// msg = KEY_MUSIC_PLAYER_PLAY_FIRST; /// 有文件,播放第一个文件
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -521,7 +522,7 @@ void music_player_err_deal(int err)
|
||||
}
|
||||
else
|
||||
{
|
||||
//msg = KEY_MUSIC_AUTO_NEXT_DEV;
|
||||
// msg = KEY_MUSIC_AUTO_NEXT_DEV;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -595,14 +596,14 @@ static int music_key_event_opr(struct sys_event *event)
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
if (true == breakpoint_vm_read(breakpoint, logo))
|
||||
{
|
||||
err = music_player_play_by_breakpoint(logo, breakpoint);
|
||||
}
|
||||
else
|
||||
{
|
||||
//if (true == breakpoint_vm_read(breakpoint, logo))
|
||||
//{
|
||||
// err = music_player_play_by_breakpoint(logo, breakpoint);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
err = music_player_play_first_file(logo);
|
||||
}
|
||||
//}
|
||||
break;
|
||||
case KEY_USER_PLAY_NUM:
|
||||
printf("KEY_USER_PLAY_NUM = %d !!\n", msg[1]);
|
||||
@ -610,8 +611,12 @@ static int music_key_event_opr(struct sys_event *event)
|
||||
// sprintf(str, "/%03d.*", msg[1]);
|
||||
// printf("%s \n", str);
|
||||
// err = music_player_play_by_path((char *)"fat_nor", str);
|
||||
err = music_player_play_by_number((char *)"fat_nor", msg[1]);
|
||||
err = music_player_play_by_number((char *)"sd0", msg[1]);
|
||||
printf("err = %d\n", err);
|
||||
if (kt_get_cycle() == FCYCLE_ONE)
|
||||
{
|
||||
kt_set_last_play(1, msg[1], NULL);
|
||||
}
|
||||
break;
|
||||
case KEY_USER_PLAY_NAME:
|
||||
printf("KEY_USER_PLAY_NAME !!\n");
|
||||
@ -624,16 +629,37 @@ static int music_key_event_opr(struct sys_event *event)
|
||||
strcat(str, ".*");
|
||||
// strcat(play_name,".*")
|
||||
printf("%s \n", str);
|
||||
err = music_player_play_by_path((char *)"fat_nor", str);
|
||||
err = music_player_play_by_path((char *)"sd0", str);
|
||||
printf("err = %d\n", err);
|
||||
if (kt_get_cycle() == FCYCLE_ONE)
|
||||
{
|
||||
kt_set_last_play(2, 0, str);
|
||||
}
|
||||
break;
|
||||
case KEY_USER_PLAY_FULL_NAME:
|
||||
printf("KEY_USER_PLAY_FULL_NAME !!\n");
|
||||
play_name = (char *)msg[1];
|
||||
printf("%s \n", play_name);
|
||||
|
||||
err = music_player_play_by_path((char *)"fat_nor", play_name);
|
||||
err = music_player_play_by_path((char *)"sd0", play_name);
|
||||
printf("err = %d\n", err);
|
||||
if (kt_get_cycle() == FCYCLE_ONE)
|
||||
{
|
||||
kt_set_last_play(3, 0, play_name);
|
||||
}
|
||||
break;
|
||||
case KEY_USER_PLAY_CYCLE:
|
||||
printf("KEY_USER_PLAY_CYCLE !!\n");
|
||||
if (msg[1] < FCYCLE_MAX)
|
||||
{
|
||||
kt_change_cycle(msg[1]);
|
||||
music_player_set_repeat_mode(msg[1]);
|
||||
}
|
||||
break;
|
||||
case KEY_USER_PLAY_STOP:
|
||||
printf("KEY_USER_PLAY_STOP !!\n");
|
||||
//err = music_player_end_deal(msg[1]);
|
||||
music_player_stop(0);
|
||||
break;
|
||||
/// 播放器退出处理
|
||||
case KEY_MUSIC_PLAYER_QUIT:
|
||||
@ -644,6 +670,29 @@ static int music_key_event_opr(struct sys_event *event)
|
||||
case KEY_MUSIC_PLAYER_END:
|
||||
printf("KEY_MUSIC_PLAYER_END\n");
|
||||
err = music_player_end_deal(msg[1]);
|
||||
if (kt_get_cycle() == FCYCLE_ONE)
|
||||
{
|
||||
u8 mode, num;
|
||||
char name[32];
|
||||
kt_get_last_play(&mode, &num, name);
|
||||
printf("mode = %d, num = %d, name = %s\n", mode, num, name);
|
||||
if (mode == 0)
|
||||
{
|
||||
printf("noting to do\n");
|
||||
}
|
||||
else if (mode == 1)
|
||||
{
|
||||
printf("play by number\n");
|
||||
err = music_player_play_by_number((char *)"sd0", num);
|
||||
printf("err = %d\n", err);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("play by path\n");
|
||||
err = music_player_play_by_path((char *)"sd0", name);
|
||||
printf("err = %d\n", err);
|
||||
}
|
||||
}
|
||||
break;
|
||||
/// 播放执行类消息
|
||||
case KEY_MUSIC_PP:
|
||||
@ -986,18 +1035,29 @@ int music_app_check(void)
|
||||
@note
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
//static u8 first_start = 0;
|
||||
void app_music_task()
|
||||
{
|
||||
int res;
|
||||
int msg[32];
|
||||
|
||||
music_task_start();
|
||||
|
||||
//first_start = 1;
|
||||
|
||||
#if (MUSIC_DEVICE_TONE_EN)
|
||||
music_player_play_start();
|
||||
#else
|
||||
// tone_play_with_callback_by_name(tone_table[IDEX_TONE_MUSIC], 1, music_tone_play_end_callback, (void *)IDEX_TONE_MUSIC);
|
||||
#endif
|
||||
music_player_set_repeat_mode(FCYCLE_ONE);
|
||||
//music_player_set_repeat_mode(FCYCLE_ONE);
|
||||
kt_change_cycle(FCYCLE_LIST);
|
||||
|
||||
//dev_manager_set_active_by_logo("sd0");
|
||||
//dev_manager_set_valid_by_logo("sd0", 1);
|
||||
|
||||
app_task_put_key_msg(KEY_MUSIC_PLAYER_START, 0);
|
||||
|
||||
|
||||
while (1)
|
||||
{
|
||||
|
@ -55,20 +55,20 @@ extern void mix_out_automute_open();
|
||||
extern void mix_out_automute_close();
|
||||
#endif
|
||||
|
||||
#define AUDIO_CODEC_SUPPORT_SYNC 1 // 同步
|
||||
#define AUDIO_CODEC_SUPPORT_SYNC 1 // 同步
|
||||
|
||||
#if (RECORDER_MIX_EN)
|
||||
#define MAX_SRC_NUMBER 4 // 最大支持src个数
|
||||
#define MAX_SRC_NUMBER 4 // 最大支持src个数
|
||||
#else
|
||||
#define MAX_SRC_NUMBER 3 // 最大支持src个数
|
||||
#endif/*RECORDER_MIX_EN*/
|
||||
#define MAX_SRC_NUMBER 3 // 最大支持src个数
|
||||
#endif /*RECORDER_MIX_EN*/
|
||||
|
||||
#define AUDIO_DECODE_TASK_WAKEUP_TIME 0 // 解码定时唤醒 // ms
|
||||
#define AUDIO_DECODE_TASK_WAKEUP_TIME 0 // 解码定时唤醒 // ms
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct audio_decoder_task decode_task = {0};
|
||||
struct audio_mixer mixer = {0};
|
||||
struct audio_decoder_task decode_task = {0};
|
||||
struct audio_mixer mixer = {0};
|
||||
/*struct audio_stream_dac_out *dac_last = NULL;*/
|
||||
|
||||
static u8 audio_dec_inited = 0;
|
||||
@ -79,12 +79,12 @@ struct audio_eq_drc *mix_eq_drc = NULL;
|
||||
struct prevent_task_fill *prevent_fill = NULL;
|
||||
#endif
|
||||
|
||||
u8 audio_src_hw_filt[SRC_FILT_POINTS * SRC_CHI * 2 * MAX_SRC_NUMBER];
|
||||
u8 audio_src_hw_filt[SRC_FILT_POINTS * SRC_CHI * 2 * MAX_SRC_NUMBER];
|
||||
s16 mix_buff[AUDIO_MIXER_LEN / 2] SEC(.dec_mix_buff);
|
||||
#if (RECORDER_MIX_EN)
|
||||
struct audio_mixer recorder_mixer = {0};
|
||||
s16 recorder_mix_buff[AUDIO_MIXER_LEN / 2] SEC(.dec_mix_buff);
|
||||
#endif/*RECORDER_MIX_EN*/
|
||||
#endif /*RECORDER_MIX_EN*/
|
||||
|
||||
#if (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_DAC)
|
||||
#if AUDIO_CODEC_SUPPORT_SYNC
|
||||
@ -97,11 +97,9 @@ vocal_remove_hdl *mix_vocal_remove_hdl = NULL;
|
||||
void *vocal_remove_open(u8 ch_num);
|
||||
#endif
|
||||
|
||||
|
||||
extern const int config_mixer_en;
|
||||
|
||||
#define AUDIO_DEC_MIXER_EN config_mixer_en
|
||||
|
||||
#define AUDIO_DEC_MIXER_EN config_mixer_en
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
void *mix_out_eq_drc_open(u16 sample_rate, u8 ch_num);
|
||||
@ -123,7 +121,8 @@ int audio_dac_energy_get(void)
|
||||
{
|
||||
#if AUDIO_OUTPUT_AUTOMUTE
|
||||
int audio_energy_detect_energy_get(void *_hdl, u8 ch);
|
||||
if (mix_out_automute_hdl) {
|
||||
if (mix_out_automute_hdl)
|
||||
{
|
||||
return audio_energy_detect_energy_get(mix_out_automute_hdl, BIT(0));
|
||||
}
|
||||
|
||||
@ -193,7 +192,7 @@ void audio_dac_sync_src_deal(int in_rate, int out_rate)
|
||||
/*----------------------------------------------------------------------------*/
|
||||
static void audio_decoder_wakeup_timer(void *priv)
|
||||
{
|
||||
//putchar('k');
|
||||
// putchar('k');
|
||||
audio_resume_all_decoder();
|
||||
}
|
||||
/*----------------------------------------------------------------------------*/
|
||||
@ -205,7 +204,8 @@ static void audio_decoder_wakeup_timer(void *priv)
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int audio_decoder_task_add_probe(struct audio_decoder_task *task)
|
||||
{
|
||||
if (task->wakeup_timer == 0) {
|
||||
if (task->wakeup_timer == 0)
|
||||
{
|
||||
task->wakeup_timer = sys_hi_timer_add(NULL, audio_decoder_wakeup_timer, AUDIO_DECODE_TASK_WAKEUP_TIME);
|
||||
log_i("audio_decoder_task_add_probe:%d\n", task->wakeup_timer);
|
||||
}
|
||||
@ -221,11 +221,13 @@ int audio_decoder_task_add_probe(struct audio_decoder_task *task)
|
||||
int audio_decoder_task_del_probe(struct audio_decoder_task *task)
|
||||
{
|
||||
log_i("audio_decoder_task_del_probe\n");
|
||||
if (audio_decoder_task_wait_state(task) > 0) {
|
||||
if (audio_decoder_task_wait_state(task) > 0)
|
||||
{
|
||||
/*解码任务列表还有任务*/
|
||||
return 0;
|
||||
}
|
||||
if (task->wakeup_timer) {
|
||||
if (task->wakeup_timer)
|
||||
{
|
||||
log_i("audio_decoder_task_del_probe:%d\n", task->wakeup_timer);
|
||||
sys_hi_timer_del(task->wakeup_timer);
|
||||
task->wakeup_timer = 0;
|
||||
@ -241,13 +243,14 @@ int audio_decoder_task_del_probe(struct audio_decoder_task *task)
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int audio_decoder_wakeup_modify(int msecs)
|
||||
{
|
||||
if (decode_task.wakeup_timer) {
|
||||
if (decode_task.wakeup_timer)
|
||||
{
|
||||
sys_hi_timer_modify(decode_task.wakeup_timer, msecs);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif/*AUDIO_DECODE_TASK_WAKEUP_TIME*/
|
||||
#endif /*AUDIO_DECODE_TASK_WAKEUP_TIME*/
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 各模式主解码open
|
||||
@ -266,7 +269,6 @@ void audio_mode_main_dec_open(u32 state)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 获取输出默认采样率
|
||||
@param
|
||||
@ -309,12 +311,14 @@ u32 audio_output_nor_rate(void)
|
||||
u32 audio_output_rate(int input_rate)
|
||||
{
|
||||
u32 out_rate = audio_output_nor_rate();
|
||||
if (out_rate) {
|
||||
if (out_rate)
|
||||
{
|
||||
return out_rate;
|
||||
}
|
||||
|
||||
#if (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_BT)
|
||||
if (bt_user_priv_var.emitter_or_receiver == BT_EMITTER_EN) {
|
||||
if (bt_user_priv_var.emitter_or_receiver == BT_EMITTER_EN)
|
||||
{
|
||||
y_printf("+++ \n");
|
||||
return audio_sbc_enc_get_rate();
|
||||
}
|
||||
@ -323,11 +327,12 @@ u32 audio_output_rate(int input_rate)
|
||||
#endif
|
||||
|
||||
#if (TCFG_REVERB_ENABLE || TCFG_MIC_EFFECT_ENABLE)
|
||||
if (input_rate > 48000) {
|
||||
if (input_rate > 48000)
|
||||
{
|
||||
return 48000;
|
||||
}
|
||||
#endif
|
||||
return app_audio_output_samplerate_select(input_rate, 1);
|
||||
return app_audio_output_samplerate_select(input_rate, 1);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
@ -342,22 +347,26 @@ u32 audio_output_channel_num(void)
|
||||
#if AUDIO_OUTPUT_INCLUDE_DAC
|
||||
|
||||
#if (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_BT)
|
||||
if (bt_user_priv_var.emitter_or_receiver == BT_EMITTER_EN) {
|
||||
if (bt_user_priv_var.emitter_or_receiver == BT_EMITTER_EN)
|
||||
{
|
||||
return audio_sbc_enc_get_channel_num();
|
||||
}
|
||||
#endif
|
||||
|
||||
/*根据DAC输出的方式选择输出的声道*/
|
||||
u8 dac_connect_mode = app_audio_output_mode_get();
|
||||
if (dac_connect_mode == DAC_OUTPUT_LR || dac_connect_mode == DAC_OUTPUT_DUAL_LR_DIFF) {
|
||||
u8 dac_connect_mode = app_audio_output_mode_get();
|
||||
if (dac_connect_mode == DAC_OUTPUT_LR || dac_connect_mode == DAC_OUTPUT_DUAL_LR_DIFF)
|
||||
{
|
||||
return 2;
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
#elif (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_FM)
|
||||
return 2;
|
||||
return 2;
|
||||
#else
|
||||
return 2;
|
||||
return 2;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -366,8 +375,10 @@ u32 audio_output_channel_type(void)
|
||||
#if AUDIO_OUTPUT_INCLUDE_DAC
|
||||
|
||||
#if (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_BT)
|
||||
if (bt_user_priv_var.emitter_or_receiver == BT_EMITTER_EN) {
|
||||
if (audio_sbc_enc_get_channel_num() == 2) {
|
||||
if (bt_user_priv_var.emitter_or_receiver == BT_EMITTER_EN)
|
||||
{
|
||||
if (audio_sbc_enc_get_channel_num() == 2)
|
||||
{
|
||||
return AUDIO_CH_LR;
|
||||
}
|
||||
return AUDIO_CH_DIFF;
|
||||
@ -375,20 +386,27 @@ u32 audio_output_channel_type(void)
|
||||
#endif
|
||||
|
||||
/*根据DAC输出的方式选择输出的声道*/
|
||||
u8 dac_connect_mode = app_audio_output_mode_get();
|
||||
if (dac_connect_mode == DAC_OUTPUT_LR || dac_connect_mode == DAC_OUTPUT_DUAL_LR_DIFF) {
|
||||
u8 dac_connect_mode = app_audio_output_mode_get();
|
||||
if (dac_connect_mode == DAC_OUTPUT_LR || dac_connect_mode == DAC_OUTPUT_DUAL_LR_DIFF)
|
||||
{
|
||||
return AUDIO_CH_LR;
|
||||
} else if (dac_connect_mode == DAC_OUTPUT_MONO_L) {
|
||||
}
|
||||
else if (dac_connect_mode == DAC_OUTPUT_MONO_L)
|
||||
{
|
||||
return AUDIO_CH_L;
|
||||
} else if (dac_connect_mode == DAC_OUTPUT_MONO_R) {
|
||||
}
|
||||
else if (dac_connect_mode == DAC_OUTPUT_MONO_R)
|
||||
{
|
||||
return AUDIO_CH_R;
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
return AUDIO_CH_DIFF;
|
||||
}
|
||||
#elif (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_FM)
|
||||
return AUDIO_CH_LR;
|
||||
return AUDIO_CH_LR;
|
||||
#else
|
||||
return AUDIO_CH_LR;
|
||||
return AUDIO_CH_LR;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -402,14 +420,14 @@ u32 audio_output_channel_type(void)
|
||||
int audio_output_set_start_volume(u8 state)
|
||||
{
|
||||
s16 vol_max = get_max_sys_vol();
|
||||
if (state == APP_AUDIO_STATE_CALL) {
|
||||
if (state == APP_AUDIO_STATE_CALL)
|
||||
{
|
||||
vol_max = app_var.aec_dac_gain;
|
||||
}
|
||||
app_audio_state_switch(state, vol_max);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 开始音频输出
|
||||
@param sample_rate: 输出采样率
|
||||
@ -421,11 +439,13 @@ int audio_output_set_start_volume(u8 state)
|
||||
u8 audio_output_flag = 0;
|
||||
int audio_output_start(u32 sample_rate, u8 reset_rate)
|
||||
{
|
||||
if (reset_rate) {
|
||||
if (reset_rate)
|
||||
{
|
||||
app_audio_output_samplerate_set(sample_rate);
|
||||
}
|
||||
|
||||
if (audio_output_flag) {
|
||||
if (audio_output_flag)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -461,14 +481,15 @@ void audio_output_stop(void)
|
||||
*/
|
||||
/*----------------------------------------------------------------------------*/
|
||||
struct audio_src_handle *audio_hw_resample_open(void *priv,
|
||||
int (*output_handler)(void *, void *, int),
|
||||
u8 channel,
|
||||
u16 input_sample_rate,
|
||||
u16 output_sample_rate)
|
||||
int (*output_handler)(void *, void *, int),
|
||||
u8 channel,
|
||||
u16 input_sample_rate,
|
||||
u16 output_sample_rate)
|
||||
{
|
||||
struct audio_src_handle *hdl;
|
||||
hdl = zalloc(sizeof(struct audio_src_handle));
|
||||
if (hdl) {
|
||||
if (hdl)
|
||||
{
|
||||
audio_hw_src_open(hdl, channel, SRC_TYPE_RESAMPLE);
|
||||
audio_hw_src_set_rate(hdl, input_sample_rate, output_sample_rate);
|
||||
audio_src_set_output_handler(hdl, priv, output_handler);
|
||||
@ -486,14 +507,14 @@ struct audio_src_handle *audio_hw_resample_open(void *priv,
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void audio_hw_resample_close(struct audio_src_handle *hdl)
|
||||
{
|
||||
if (hdl) {
|
||||
if (hdl)
|
||||
{
|
||||
audio_hw_src_stop(hdl);
|
||||
audio_hw_src_close(hdl);
|
||||
free(hdl);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief mixer事件处理
|
||||
@param *mixer: 句柄
|
||||
@ -504,14 +525,17 @@ void audio_hw_resample_close(struct audio_src_handle *hdl)
|
||||
/*----------------------------------------------------------------------------*/
|
||||
static void mixer_event_handler(struct audio_mixer *mixer, int event)
|
||||
{
|
||||
switch (event) {
|
||||
switch (event)
|
||||
{
|
||||
case MIXER_EVENT_OPEN:
|
||||
if (audio_mixer_get_ch_num(mixer) >= 1) {
|
||||
if (audio_mixer_get_ch_num(mixer) >= 1)
|
||||
{
|
||||
clock_add_set(DEC_MIX_CLK);
|
||||
}
|
||||
break;
|
||||
case MIXER_EVENT_CLOSE:
|
||||
if (audio_mixer_get_ch_num(mixer) == 0) {
|
||||
if (audio_mixer_get_ch_num(mixer) == 0)
|
||||
{
|
||||
clock_remove_set(DEC_MIX_CLK);
|
||||
}
|
||||
|
||||
@ -527,7 +551,6 @@ static void mixer_event_handler(struct audio_mixer *mixer, int event)
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 检测mixer采样率支持
|
||||
@ -539,7 +562,8 @@ static void mixer_event_handler(struct audio_mixer *mixer, int event)
|
||||
/*----------------------------------------------------------------------------*/
|
||||
static u32 audio_mixer_check_sr(struct audio_mixer *mixer, u32 sr)
|
||||
{
|
||||
return audio_output_rate(sr);;
|
||||
return audio_output_rate(sr);
|
||||
;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
@ -553,7 +577,6 @@ static void audio_last_out_stream_resume(void *p)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 音频解码初始化
|
||||
@param
|
||||
@ -568,36 +591,38 @@ int audio_dec_init()
|
||||
|
||||
printf("audio_dec_init\n");
|
||||
|
||||
|
||||
err = audio_decoder_task_create(&decode_task, "audio_dec");
|
||||
|
||||
#if (TCFG_PREVENT_TASK_FILL)
|
||||
prevent_fill = prevent_task_fill_create("prevent");
|
||||
if (prevent_fill) {
|
||||
if (prevent_fill)
|
||||
{
|
||||
decode_task.prevent_fill = prevent_task_fill_ch_open(prevent_fill, 20);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
app_audio_output_init();
|
||||
|
||||
/*硬件SRC模块滤波器buffer设置,可根据最大使用数量设置整体buffer*/
|
||||
audio_src_base_filt_init(audio_src_hw_filt, sizeof(audio_src_hw_filt));
|
||||
|
||||
if (!AUDIO_DEC_MIXER_EN) {
|
||||
if (!AUDIO_DEC_MIXER_EN)
|
||||
{
|
||||
goto __mixer_init_end;
|
||||
}
|
||||
audio_mixer_open(&mixer);
|
||||
audio_mixer_set_event_handler(&mixer, mixer_event_handler);
|
||||
audio_mixer_set_check_sr_handler(&mixer, audio_mixer_check_sr);
|
||||
if (config_mixer_en) {
|
||||
if (config_mixer_en)
|
||||
{
|
||||
/*初始化mix_buf的长度*/
|
||||
audio_mixer_set_output_buf(&mixer, mix_buff, sizeof(mix_buff));
|
||||
}
|
||||
u8 ch_num = audio_output_channel_num();
|
||||
audio_mixer_set_channel_num(&mixer, ch_num);
|
||||
u32 sr = audio_output_nor_rate();
|
||||
if (sr) {
|
||||
if (sr)
|
||||
{
|
||||
// 固定采样率输出
|
||||
audio_mixer_set_sample_rate(&mixer, MIXER_SR_SPEC, sr);
|
||||
}
|
||||
@ -618,13 +643,15 @@ int audio_dec_init()
|
||||
u8 entry_cnt = 0;
|
||||
entries[entry_cnt++] = &mixer.entry;
|
||||
#if TCFG_EQ_ENABLE && TCFG_AUDIO_OUT_EQ_ENABLE
|
||||
if (mix_eq_drc) {
|
||||
if (mix_eq_drc)
|
||||
{
|
||||
entries[entry_cnt++] = &mix_eq_drc->entry;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if AUDIO_VOCAL_REMOVE_EN
|
||||
if (mix_vocal_remove_hdl) {
|
||||
if (mix_vocal_remove_hdl)
|
||||
{
|
||||
entries[entry_cnt++] = &mix_vocal_remove_hdl->entry;
|
||||
}
|
||||
#endif
|
||||
@ -646,7 +673,6 @@ int audio_dec_init()
|
||||
entry_cnt++;
|
||||
#endif
|
||||
|
||||
|
||||
#if (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_IIS)
|
||||
audio_dig_vol_param iis_digvol_last_param = {
|
||||
.vol_start = app_var.music_volume,
|
||||
@ -666,12 +692,12 @@ int audio_dec_init()
|
||||
entries[entry_cnt++] = iis_entries_start;
|
||||
entries[entry_cnt++] = iis_digvol_last_entry;
|
||||
entries[entry_cnt++] = iis_last_entry;
|
||||
for (int i = 0; i < entry_cnt - 1; i++) {
|
||||
for (int i = 0; i < entry_cnt - 1; i++)
|
||||
{
|
||||
audio_stream_add_entry(entries[i], entries[i + 1]);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_DONGLE)
|
||||
/* #if 1 */
|
||||
{
|
||||
@ -694,7 +720,8 @@ int audio_dec_init()
|
||||
entries[entry_cnt++] = dongle_entries_start;
|
||||
entries[entry_cnt++] = dongle_digvol_last_entry;
|
||||
entries[entry_cnt++] = &dongle_emitter.mix_ch.entry;
|
||||
for (int i = 0; i < entry_cnt - 1; i++) {
|
||||
for (int i = 0; i < entry_cnt - 1; i++)
|
||||
{
|
||||
audio_stream_add_entry(entries[i], entries[i + 1]);
|
||||
}
|
||||
#endif
|
||||
@ -721,7 +748,7 @@ __mixer_init_end:
|
||||
|
||||
#if (RECORDER_MIX_EN)
|
||||
recorder_mix_init(&recorder_mixer, recorder_mix_buff, sizeof(recorder_mix_buff));
|
||||
#endif//RECORDER_MIX_EN
|
||||
#endif // RECORDER_MIX_EN
|
||||
|
||||
app_audio_volume_init();
|
||||
audio_output_set_start_volume(APP_AUDIO_STATE_MUSIC);
|
||||
@ -738,14 +765,9 @@ __mixer_init_end:
|
||||
|
||||
audio_dec_inited = 1;
|
||||
|
||||
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**@brief 音频解码初始化判断
|
||||
@param
|
||||
@ -756,7 +778,8 @@ __mixer_init_end:
|
||||
/*----------------------------------------------------------------------------*/
|
||||
static u8 audio_dec_init_complete()
|
||||
{
|
||||
if (!audio_dec_inited) {
|
||||
if (!audio_dec_inited)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -767,7 +790,6 @@ REGISTER_LP_TARGET(audio_dec_init_lp_target) = {
|
||||
.is_idle = audio_dec_init_complete,
|
||||
};
|
||||
|
||||
|
||||
struct drc_ch high_bass_drc = {0};
|
||||
static int high_bass_th = 0;
|
||||
/*----------------------------------------------------------------------------*/
|
||||
@ -781,15 +803,18 @@ static int high_bass_th = 0;
|
||||
int high_bass_drc_set_filter_info(int th)
|
||||
{
|
||||
/* int th = 0; // -60 ~ 0 db */
|
||||
if (th < -60) {
|
||||
if (th < -60)
|
||||
{
|
||||
th = -60;
|
||||
}
|
||||
if (th > 0) {
|
||||
if (th > 0)
|
||||
{
|
||||
th = 0;
|
||||
}
|
||||
local_irq_disable();
|
||||
high_bass_th = th;
|
||||
if (mix_eq_drc && mix_eq_drc->drc) {
|
||||
if (mix_eq_drc && mix_eq_drc->drc)
|
||||
{
|
||||
mix_eq_drc->drc->updata = 1;
|
||||
}
|
||||
local_irq_enable();
|
||||
@ -806,7 +831,7 @@ int high_bass_drc_set_filter_info(int th)
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int high_bass_drc_get_filter_info(struct audio_drc *drc, struct audio_drc_filter_info *info)
|
||||
{
|
||||
int th = high_bass_th;//-60 ~0db
|
||||
int th = high_bass_th; //-60 ~0db
|
||||
int threshold = round(pow(10.0, th / 20.0) * 32768); // 0db:32768, -60db:33
|
||||
|
||||
high_bass_drc.nband = 1;
|
||||
@ -846,7 +871,8 @@ void *mix_out_eq_drc_open(u16 sample_rate, u8 ch_num)
|
||||
#endif
|
||||
log_i("=====sr %d, ch_num %d\n", sample_rate, ch_num);
|
||||
|
||||
if (effect_parm.eq_en) {
|
||||
if (effect_parm.eq_en)
|
||||
{
|
||||
effect_parm.async_en = 1;
|
||||
effect_parm.out_32bit = 1;
|
||||
effect_parm.online_en = 0;
|
||||
@ -864,7 +890,8 @@ void *mix_out_eq_drc_open(u16 sample_rate, u8 ch_num)
|
||||
eq_drc = audio_eq_drc_open(&effect_parm);
|
||||
|
||||
clock_add(EQ_CLK);
|
||||
if (effect_parm.drc_en) {
|
||||
if (effect_parm.drc_en)
|
||||
{
|
||||
clock_add(EQ_DRC_CLK);
|
||||
}
|
||||
#endif
|
||||
@ -884,7 +911,8 @@ void mix_out_eq_drc_close(struct audio_eq_drc *eq_drc)
|
||||
{
|
||||
#if TCFG_EQ_ENABLE
|
||||
#if TCFG_AUDIO_OUT_EQ_ENABLE
|
||||
if (eq_drc) {
|
||||
if (eq_drc)
|
||||
{
|
||||
audio_eq_drc_close(eq_drc);
|
||||
eq_drc = NULL;
|
||||
clock_remove(EQ_CLK);
|
||||
@ -911,7 +939,8 @@ void mix_out_eq_drc_close(struct audio_eq_drc *eq_drc)
|
||||
|
||||
void mix_out_high_bass(u32 cmd, struct high_bass *hb)
|
||||
{
|
||||
if (mix_eq_drc) {
|
||||
if (mix_eq_drc)
|
||||
{
|
||||
audio_eq_drc_parm_update(mix_eq_drc, cmd, (void *)hb);
|
||||
}
|
||||
}
|
||||
@ -925,16 +954,26 @@ void mix_out_high_bass(u32 cmd, struct high_bass *hb)
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void mix_out_high_bass_dis(u32 cmd, u8 dis)
|
||||
{
|
||||
if (mix_eq_drc) {
|
||||
if (mix_eq_drc)
|
||||
{
|
||||
audio_eq_drc_parm_update(mix_eq_drc, cmd, (void *)dis);
|
||||
}
|
||||
}
|
||||
|
||||
#if AUDIO_OUTPUT_AUTOMUTE
|
||||
#include "kt.h"
|
||||
|
||||
void audio_mix_out_automute_mute(u8 mute)
|
||||
{
|
||||
printf(">>>>>>>>>>>>>>>>>>>> %s\n", mute ? ("MUTE") : ("UNMUTE"));
|
||||
if (mute)
|
||||
{
|
||||
PA_MUTE();
|
||||
}
|
||||
else
|
||||
{
|
||||
PA_UNMUTE();
|
||||
}
|
||||
}
|
||||
|
||||
/* #define AUDIO_E_DET_UNMUTE (0x00) */
|
||||
@ -942,7 +981,8 @@ void audio_mix_out_automute_mute(u8 mute)
|
||||
void mix_out_automute_handler(u8 event, u8 ch)
|
||||
{
|
||||
printf(">>>> ch:%d %s\n", ch, event ? ("MUTE") : ("UNMUTE"));
|
||||
if (ch == app_audio_output_channel_get()) {
|
||||
if (ch == app_audio_output_channel_get())
|
||||
{
|
||||
audio_mix_out_automute_mute(event);
|
||||
}
|
||||
}
|
||||
@ -950,7 +990,8 @@ void mix_out_automute_handler(u8 event, u8 ch)
|
||||
void mix_out_automute_skip(u8 skip)
|
||||
{
|
||||
u8 mute = !skip;
|
||||
if (mix_out_automute_hdl) {
|
||||
if (mix_out_automute_hdl)
|
||||
{
|
||||
audio_energy_detect_skip(mix_out_automute_hdl, 0xFFFF, skip);
|
||||
audio_mix_out_automute_mute(mute);
|
||||
}
|
||||
@ -958,7 +999,8 @@ void mix_out_automute_skip(u8 skip)
|
||||
|
||||
void mix_out_automute_open()
|
||||
{
|
||||
if (mix_out_automute_hdl) {
|
||||
if (mix_out_automute_hdl)
|
||||
{
|
||||
printf("mix_out_automute is already open !\n");
|
||||
return;
|
||||
}
|
||||
@ -978,11 +1020,12 @@ void mix_out_automute_open()
|
||||
|
||||
void mix_out_automute_close()
|
||||
{
|
||||
if (mix_out_automute_hdl) {
|
||||
if (mix_out_automute_hdl)
|
||||
{
|
||||
audio_energy_detect_close(mix_out_automute_hdl);
|
||||
}
|
||||
}
|
||||
#endif //#if AUDIO_OUTPUT_AUTOMUTE
|
||||
#endif // #if AUDIO_OUTPUT_AUTOMUTE
|
||||
|
||||
#if AUDIO_VOCAL_REMOVE_EN
|
||||
/*----------------------------------------------------------------------------*/
|
||||
@ -1009,11 +1052,11 @@ void *vocal_remove_open(u8 ch_num)
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void vocal_remove_close()
|
||||
{
|
||||
if (mix_vocal_remove_hdl) {
|
||||
if (mix_vocal_remove_hdl)
|
||||
{
|
||||
audio_vocal_remove_close(mix_vocal_remove_hdl);
|
||||
mix_vocal_remove_hdl = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -4,12 +4,6 @@ fat_sdfile_fat_ops
|
||||
|
||||
|
||||
sdfile_vfs_ops
|
||||
|
||||
|
||||
|
||||
nor_fs_vfs_ops
|
||||
nor_sdfile_vfs_ops
|
||||
nor_rec_fs_vfs_ops
|
||||
pcm_decoder
|
||||
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -156,6 +156,17 @@ objs/apps/common/config/bt_profile_config.c.o
|
||||
-r=objs/apps/common/config/bt_profile_config.c.o,a2dp_mutual_support,pl
|
||||
objs/apps/common/config/ci_transport_uart.c.o
|
||||
objs/apps/common/debug/debug.c.o
|
||||
-r=objs/apps/common/debug/debug.c.o,putchar,pl
|
||||
-r=objs/apps/common/debug/debug.c.o,puts,pl
|
||||
-r=objs/apps/common/debug/debug.c.o,printf,pl
|
||||
-r=objs/apps/common/debug/debug.c.o,put_buf,pl
|
||||
-r=objs/apps/common/debug/debug.c.o,put_u8hex,pl
|
||||
-r=objs/apps/common/debug/debug.c.o,put_u16hex,pl
|
||||
-r=objs/apps/common/debug/debug.c.o,put_u32hex,pl
|
||||
-r=objs/apps/common/debug/debug.c.o,log_print,pl
|
||||
-r=objs/apps/common/debug/debug.c.o,log_putbyte,pl
|
||||
-r=objs/apps/common/debug/debug.c.o,assert_printf,pl
|
||||
-r=objs/apps/common/debug/debug.c.o,cpu_assert_debug,l
|
||||
objs/apps/common/debug/debug_lite.c.o
|
||||
-r=objs/apps/common/debug/debug_lite.c.o,puts_lite,pl
|
||||
-r=objs/apps/common/debug/debug_lite.c.o,put_buf_lite,pl
|
||||
@ -230,7 +241,16 @@ objs/apps/common/dev_manager/dev_update.c.o
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,dev_update_check,pl
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,update_success_boot_check,l
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,dev_manager_find_spec,l
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,strcmp,l
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,printf,l
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,sprintf,l
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,dev_manager_get_root_path,l
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,fopen,l
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,storage_update_loader_download_init_with_file_hdl,l
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,update_mode_api,l
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,chip_reset,
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,puts,l
|
||||
-r=objs/apps/common/dev_manager/dev_update.c.o,updata_file_name,l
|
||||
objs/apps/common/device/detection.c.o
|
||||
-r=objs/apps/common/device/detection.c.o,vdet_check,pl
|
||||
-r=objs/apps/common/device/detection.c.o,adc_get_value,l
|
||||
@ -262,47 +282,6 @@ objs/apps/common/device/gSensor/SC7A20.c.o
|
||||
objs/apps/common/device/gSensor/da230.c.o
|
||||
objs/apps/common/device/gSensor/gSensor_manage.c.o
|
||||
objs/apps/common/device/norflash/norflash.c.o
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,_norflash_init,pl
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,log_print,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,os_mutex_create,
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,printf,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,cpu_assert_debug,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,chip_reset,
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,norflash_enter_4byte_addr,pl
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,gpio_write,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,spi_send_byte,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,norflash_exit_4byte_addr,pl
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,_norflash_open,pl
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,os_mutex_pend,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,gpio_set_die,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,gpio_set_direction,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,spi_open,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,malloc,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,_norflash_read,pl
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,sys_timer_add,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,os_mutex_post,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,_norflash_close,pl
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,sys_timer_del,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,_norflash_eraser,pl
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,free,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,spi_close,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,gpio_set_pull_up,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,gpio_set_pull_down,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,spi_set_bit_mode,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,spi_dma_recv,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,_norflash_write,pl
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,_norflash_ioctl,pl
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,strcmp,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,spi_set_baud,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,spi_get_baud,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,spi_recv_byte,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,spi_dma_send,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,delay,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,puts,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,config_asser,l
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,clock_spi_norflash,pl
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,norflash_dev_ops,pl
|
||||
-r=objs/apps/common/device/norflash/norflash.c.o,norfs_dev_ops,pl
|
||||
objs/apps/common/fat_nor/nor_fs.c.o
|
||||
-r=objs/apps/common/fat_nor/nor_fs.c.o,norfs_mutex_init,pl
|
||||
-r=objs/apps/common/fat_nor/nor_fs.c.o,os_mutex_create,
|
||||
@ -357,7 +336,7 @@ objs/apps/common/fat_nor/nor_fs.c.o
|
||||
-r=objs/apps/common/fat_nor/nor_fs.c.o,max_rec_capacity,pl
|
||||
-r=objs/apps/common/fat_nor/nor_fs.c.o,recfs,pl
|
||||
-r=objs/apps/common/fat_nor/nor_fs.c.o,recfile,pl
|
||||
-r=objs/apps/common/fat_nor/nor_fs.c.o,nor_fs_vfs_ops,plx
|
||||
-r=objs/apps/common/fat_nor/nor_fs.c.o,nor_fs_vfs_ops,pl
|
||||
objs/apps/common/fat_nor/phone_rec_fs.c.o
|
||||
-r=objs/apps/common/fat_nor/phone_rec_fs.c.o,phonefs_mutex_init,pl
|
||||
-r=objs/apps/common/fat_nor/phone_rec_fs.c.o,os_mutex_create,
|
||||
@ -548,6 +527,8 @@ objs/apps/common/music/music_player.c.o
|
||||
-r=objs/apps/common/music/music_player.c.o,dev_manager_get_total,l
|
||||
-r=objs/apps/common/music/music_player.c.o,music_player_get_dev_flit,pl
|
||||
-r=objs/apps/common/music/music_player.c.o,music_player_play_first_file,pl
|
||||
-r=objs/apps/common/music/music_player.c.o,kt_get_cycle,l
|
||||
-r=objs/apps/common/music/music_player.c.o,music_player_play_auto_next,pl
|
||||
-r=objs/apps/common/music/music_player.c.o,music_player_decode_start,pl
|
||||
-r=objs/apps/common/music/music_player.c.o,fget_name,l
|
||||
-r=objs/apps/common/music/music_player.c.o,music_player_get_file_hdl,pl
|
||||
@ -611,7 +592,6 @@ objs/apps/common/music/music_player.c.o
|
||||
-r=objs/apps/common/music/music_player.c.o,music_player_play_next_cycle_single_dev,pl
|
||||
-r=objs/apps/common/music/music_player.c.o,music_player_play_next,pl
|
||||
-r=objs/apps/common/music/music_player.c.o,dev_manager_scan_disk,l
|
||||
-r=objs/apps/common/music/music_player.c.o,music_player_play_auto_next,pl
|
||||
-r=objs/apps/common/music/music_player.c.o,music_player_play_folder_prev,pl
|
||||
-r=objs/apps/common/music/music_player.c.o,music_player_play_folder_next,pl
|
||||
-r=objs/apps/common/music/music_player.c.o,music_player_play_devcie_prev,pl
|
||||
@ -651,7 +631,7 @@ objs/apps/common/rec_nor/nor_interface.c.o
|
||||
-r=objs/apps/common/rec_nor/nor_interface.c.o,recfile_write,l
|
||||
-r=objs/apps/common/rec_nor/nor_interface.c.o,recfile_seek,l
|
||||
-r=objs/apps/common/rec_nor/nor_interface.c.o,close_nor_recfile,l
|
||||
-r=objs/apps/common/rec_nor/nor_interface.c.o,nor_rec_fs_vfs_ops,plx
|
||||
-r=objs/apps/common/rec_nor/nor_interface.c.o,nor_rec_fs_vfs_ops,pl
|
||||
objs/apps/common/rec_nor/nor_rec_fs.c.o
|
||||
-r=objs/apps/common/rec_nor/nor_rec_fs.c.o,recfs_mutex_init,pl
|
||||
-r=objs/apps/common/rec_nor/nor_rec_fs.c.o,os_mutex_create,
|
||||
@ -1231,14 +1211,17 @@ objs/apps/kaotings/kt.c.o
|
||||
-r=objs/apps/kaotings/kt.c.o,gpio_set_hd,l
|
||||
-r=objs/apps/kaotings/kt.c.o,gpio_set_output_value,l
|
||||
-r=objs/apps/kaotings/kt.c.o,timer_cb,pl
|
||||
-r=objs/apps/kaotings/kt.c.o,app_get_curr_task,l
|
||||
-r=objs/apps/kaotings/kt.c.o,music_player_get_play_status,l
|
||||
-r=objs/apps/kaotings/kt.c.o,start_timer,pl
|
||||
-r=objs/apps/kaotings/kt.c.o,sys_timer_del,l
|
||||
-r=objs/apps/kaotings/kt.c.o,sys_timer_add,l
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_get_cycle,pl
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_change_cycle,pl
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_set_last_play,pl
|
||||
-r=objs/apps/kaotings/kt.c.o,printf,l
|
||||
-r=objs/apps/kaotings/kt.c.o,strcpy,l
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_get_last_play,pl
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_init,pl
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_uart_init,l
|
||||
-r=objs/apps/kaotings/kt.c.o,tid,pl
|
||||
objs/apps/kaotings/kt_uart.c.o
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,kt_uart_init,pl
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,uart_dev_open,l
|
||||
@ -1248,7 +1231,13 @@ objs/apps/kaotings/kt_uart.c.o
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,music_player_get_play_status,l
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,app_task_put_key_msg,l
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,app_audio_set_volume,l
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,app_audio_mute,l
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,strlen,l
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,music_player_get_file_total,l
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,music_player_get_dir_total,l
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,music_player_get_fileindir_number,l
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,music_player_get_dec_total_time,l
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,music_player_get_dec_cur_time,l
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,puts,l
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,kt_sys_mute,pl
|
||||
-r=objs/apps/kaotings/kt_uart.c.o,uart_bus,pl
|
||||
@ -1354,6 +1343,7 @@ objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,gpio_set_die,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,gpio_set_dieh,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,P33_CON_SET,
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,sdpg_config,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,sleep_exit_callback,pl
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,sleep_enter_callback,pl
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,dac_sniff_power_off,l
|
||||
@ -1361,6 +1351,8 @@ objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,power_init,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,power_set_callback,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,power_keep_dacvdd_en,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,sdmmc_0_clk_detect,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,sdmmc_0_port_init,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,key_driver_init,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,power_wakeup_init,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,status_config,pl
|
||||
@ -1371,10 +1363,8 @@ objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,otg_data,pl
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,led7_data,pl
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,ui_cfg_data,pl
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,spi1_p_data,pl
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,norflash_fat_dev_data,pl
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,sd_dev_ops,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,usb_dev_ops,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,norflash_dev_ops,l
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,device_table,pl
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,power_param,pl
|
||||
-r=objs/apps/soundbox/board/br25/board_ac6082_demo/board_ac6082_demo.c.o,port0,pl
|
||||
@ -1438,6 +1428,7 @@ objs/apps/soundbox/common/init.c.o
|
||||
-r=objs/apps/soundbox/common/init.c.o,gpio_set_pull_up,l
|
||||
-r=objs/apps/soundbox/common/init.c.o,gpio_set_die,l
|
||||
-r=objs/apps/soundbox/common/init.c.o,gpio_set_direction,l
|
||||
-r=objs/apps/soundbox/common/init.c.o,gpio_set_output_value,l
|
||||
-r=objs/apps/soundbox/common/init.c.o,audio_enc_init,l
|
||||
-r=objs/apps/soundbox/common/init.c.o,audio_dec_init,l
|
||||
-r=objs/apps/soundbox/common/init.c.o,update_result_deal,l
|
||||
@ -2323,6 +2314,7 @@ objs/apps/soundbox/task_manager/idle/idle.c.o
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,app_default_event_deal,l
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,app_task_exitting,l
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,sys_key_event_enable,l
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,sdx_dev_detect_timer_del,l
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,usb_detect_timer_del,l
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,os_time_dly,
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,usb_otg_online,l
|
||||
@ -2333,6 +2325,7 @@ objs/apps/soundbox/task_manager/idle/idle.c.o
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,gpio_set_pull_down,l
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,gpio_set_direction,l
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,log_print,l
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,sdx_dev_detect_timer_add,l
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,usb_detect_timer_add,l
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,regs_buf,pl
|
||||
-r=objs/apps/soundbox/task_manager/idle/idle.c.o,log_tag_const_i_APP_IDLE,l
|
||||
@ -2358,7 +2351,7 @@ objs/apps/soundbox/task_manager/music/music.c.o
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_task_set_parm,pl
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_app_check,pl
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,app_music_task,pl
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_set_repeat_mode,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,kt_change_cycle,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,app_task_get_msg,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,app_default_event_deal,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,app_task_exitting,l
|
||||
@ -2391,14 +2384,16 @@ objs/apps/soundbox/task_manager/music/music.c.o
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,dev_manager_find_active,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_get_play_status,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,strcmp,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,breakpoint_vm_read,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_play_by_breakpoint,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_play_first_file,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_play_by_number,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,kt_get_cycle,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,kt_set_last_play,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,strcat,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_play_by_path,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_set_repeat_mode,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,app_task_switch_next,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_end_deal,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,kt_get_last_play,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_pp,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_play_auto_next,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_play_prev,l
|
||||
@ -2406,6 +2401,8 @@ objs/apps/soundbox/task_manager/music/music.c.o
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_play_folder_prev,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_play_folder_next,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_get_dev_next,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,breakpoint_vm_read,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_play_by_breakpoint,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_play_by_sclust,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_ff,l
|
||||
-r=objs/apps/soundbox/task_manager/music/music.c.o,music_player_fr,l
|
||||
@ -2452,6 +2449,7 @@ objs/apps/soundbox/task_manager/power_off/power_off.c.o
|
||||
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,app_poweroff_task,pl
|
||||
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,app_task_get_msg,l
|
||||
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,poweroff_entry_cbfun,pl
|
||||
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,sdx_dev_entry_lowpower,l
|
||||
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,get_ui_busy_status,l
|
||||
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,power_set_soft_poweroff,l
|
||||
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,syscfg_write,l
|
||||
@ -2769,6 +2767,7 @@ objs/cpu/br25/audio_common/audio_iis.c.o
|
||||
objs/cpu/br25/audio_common/audio_link.c.o
|
||||
objs/cpu/br25/audio_dec/audio_dec.c.o
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_dac_energy_get,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_energy_detect_energy_get,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_resume_all_decoder,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_decoder_resume_all,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_src_isr_deal,pl
|
||||
@ -2799,6 +2798,7 @@ objs/cpu/br25/audio_dec/audio_dec.c.o
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_hw_src_close,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,free,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_dec_init,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,printf,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_decoder_task_create,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,prevent_task_fill_create,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,prevent_task_fill_ch_open,l
|
||||
@ -2823,10 +2823,23 @@ objs/cpu/br25/audio_dec/audio_dec.c.o
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,mix_out_high_bass,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_eq_drc_parm_update,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,mix_out_high_bass_dis,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_mix_out_automute_mute,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,gpio_set_output_value,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,mix_out_automute_handler,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,app_audio_output_channel_get,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,mix_out_automute_skip,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_energy_detect_skip,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,mix_out_automute_open,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_energy_detect_open,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_energy_detect_entry_get,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,mix_out_automute_close,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_energy_detect_close,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,audio_mixer_get_ch_num,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,clock_add_set,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,clock_remove_set,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,puts,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,mix_out_automute_hdl,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,mix_out_automute_entry,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,decode_task,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,mixer,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec.c.o,mix_eq_drc,pl
|
||||
@ -2861,6 +2874,7 @@ objs/cpu/br25/audio_dec/audio_dec_bt.c.o
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec_bt.c.o,esco_dec_open,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec_bt.c.o,audio_output_channel_num,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec_bt.c.o,lmp_private_esco_suspend_resume,
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec_bt.c.o,mix_out_automute_skip,l
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec_bt.c.o,esco_dec_close,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec_bt.c.o,bt_audio_is_running,pl
|
||||
-r=objs/cpu/br25/audio_dec/audio_dec_bt.c.o,bt_media_is_running,pl
|
||||
@ -3737,8 +3751,7 @@ objs/cpu/br25/pwm_led.c.o
|
||||
-r=objs/cpu/br25/pwm_led.c.o,request_irq,l
|
||||
objs/cpu/br25/setup.c.o
|
||||
-r=objs/cpu/br25/setup.c.o,cpu_assert_debug,pl
|
||||
-r=objs/cpu/br25/setup.c.o,log_flush,l
|
||||
-r=objs/cpu/br25/setup.c.o,local_irq_disable,l
|
||||
-r=objs/cpu/br25/setup.c.o,chip_reset,
|
||||
-r=objs/cpu/br25/setup.c.o,timer,pl
|
||||
-r=objs/cpu/br25/setup.c.o,sys_timer_dump_time,l
|
||||
-r=objs/cpu/br25/setup.c.o,test_fun,pl
|
||||
@ -3751,8 +3764,6 @@ objs/cpu/br25/setup.c.o
|
||||
-r=objs/cpu/br25/setup.c.o,clk_voltage_init,l
|
||||
-r=objs/cpu/br25/setup.c.o,clk_early_init,l
|
||||
-r=objs/cpu/br25/setup.c.o,tick_timer_init,l
|
||||
-r=objs/cpu/br25/setup.c.o,debug_uart_init,l
|
||||
-r=objs/cpu/br25/setup.c.o,log_early_init,l
|
||||
-r=objs/cpu/br25/setup.c.o,clock_dump,l
|
||||
-r=objs/cpu/br25/setup.c.o,reset_source_dump,l
|
||||
-r=objs/cpu/br25/setup.c.o,power_reset_source_dump,l
|
||||
@ -3789,7 +3800,7 @@ objs/cpu/br25/spi.c.o
|
||||
-r=objs/cpu/br25/spi.c.o,gpio_set_pull_up,l
|
||||
-r=objs/cpu/br25/spi.c.o,gpio_set_pull_down,l
|
||||
-r=objs/cpu/br25/spi.c.o,config_asser,l
|
||||
-r=objs/cpu/br25/spi.c.o,spi1_p_data,l
|
||||
-r=objs/cpu/br25/spi.c.o,spi1_p_data,
|
||||
objs/cpu/br25/spi_test.c.o
|
||||
objs/cpu/br25/uart_bt_product.c.o
|
||||
objs/cpu/br25/uart_dev.c.o
|
||||
@ -4113,6 +4124,22 @@ include_lib/liba/br25/cpu.a.llvm.245840.timer.c
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.245840.timer.c,log_tag_const_i_TMR,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.245840.timer.c,clock_timer,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.245840.timer.c,clock_sys_src_use_lrc_hw,l
|
||||
include_lib/liba/br25/cpu.a.llvm.259396.sd.c
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,sdmmc_0_port_init,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,sdmmc_0_io_detect,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,gpio_set_die,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,gpio_set_pull_up,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,gpio_set_pull_down,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,gpio_set_direction,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,delay,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,gpio_read,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,sdmmc_0_clk_detect,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,sdmmc_cmd_detect,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,puts,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,gpio_direction_output,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,gpio_set_hd,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,gpio_direction_input,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.259396.sd.c,gpio_write,l
|
||||
include_lib/liba/br25/cpu.a.llvm.271980.debug.c
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.271980.debug.c,sputchar,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.271980.debug.c,sput_u32hex,pl
|
||||
@ -4549,6 +4576,153 @@ include_lib/liba/br25/cpu.a.llvm.672432.pmu_calibrate.c
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.672432.pmu_calibrate.c,adc_value_to_voltage,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.672432.pmu_calibrate.c,local_irq_disable,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.672432.pmu_calibrate.c,local_irq_enable,l
|
||||
include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,get_sd0_sd1_mux_index,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,get_cardx_info_p,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,get_sdx_dri_p,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sd_io_source_suspend,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,os_sem_pend,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sys_timeout_del,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,usr_timeout_del,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_stop_card,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_host_sus,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sd_io_source_resume,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_host_res,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,os_sem_post,
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sd_io_suspend,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sd_io_resume,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sd_set_power,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdpg_config,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sd_notify_enable,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_dev_detect_timer_add,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sys_timer_add,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_dev_detect_timer_del,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sys_timer_del,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_dev_entry_lowpower,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,strcmp,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,force_open_sd,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,dev_open,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,force_read_sd,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,dev_bulk_read,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,force_write_sd,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,dev_bulk_write,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,force_operat_sd_test,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,log_print,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,put_buf,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_clk_detect_card,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_set_buad,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_hw_bit_enable,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_cmd_detect_card,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_io_detect_card,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sys_event_notify,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_os_busy_sem_pend,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_hw_init,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_host_close,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,os_sem_create,
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_host_init,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_mdelay,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_init_card,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_read_card_async,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_read_card,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_write_card_async,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_write_card,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sys_timeout_add,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sdx_async_flush,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sd0_sd1_use_the_same_hw,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sd_hdl,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,log_tag_const_i_SD,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,sd_dev_ops,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,log_tag_const_e_SD,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,log_tag_const_d_SD,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.815416.sdx_dev.c,keep_card_at_active_status,l
|
||||
include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,send_cmd42_lock_unlock_card,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,get_sdx_dri_p,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_send_command,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_send_command_write_data,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_init_card_step1_user_hookfun,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_init_card,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_host_init,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,log_print,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,malloc,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_send_command_read_data,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,free,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_mdelay,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_set_buad,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_host_close,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_read_card,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_os_busy_sem_pend,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,usr_timeout_add,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_send_command_read_data_isr,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,usr_timeout_del,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_read_card_async,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_write_card,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_send_command_write_data_isr,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_write_card_async,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_async_flush,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_stop_card,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_send_detect_cmd,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_send_command_isr,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_os_sem_clr,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_cmd_detect_card,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_os_dect_sem_pend,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_clk_detect_card,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_io_detect_card,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_get_hi_jiffies,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_idle_clk_en,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_4bit_data_io_init,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_4bit_data_io_uinit,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sys_timer_modify,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,sdx_can_operate_mmc_card,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,log_tag_const_e_SD,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.858420.sdx_driver.c,log_tag_const_i_SD,l
|
||||
include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_get_hi_jiffies,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,jiffies_msec,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_mdelay,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,os_time_dly,
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_os_sem_create,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,os_sem_create,
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_os_busy_sem_pend,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,os_sem_pend,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,log_print,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_os_dect_sem_pend,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_os_sem_post,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,os_sem_post,
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_os_sem_clr,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,os_sem_set,
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_os_sem_del,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,os_sem_del,
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_send_command,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_send_command_read_data,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_send_command_write_data,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_send_command_isr,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_send_command_read_data_isr,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_send_command_write_data_isr,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_isr,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_send_detect_cmd,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,usr_timeout_del,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sd0_isr,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,get_sd0_sd1_mux_index,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,get_sdx_dri_p,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sd1_isr,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_set_buad,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,clk_get,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_hw_bit_enable,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_hw_bit_disable,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_hw_close,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_hw_init,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_host_init,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,request_irq,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_host_close,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_host_sus,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_host_res,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_idle_clk_en,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_4bit_data_io_init,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sdx_4bit_data_io_uinit,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,log_tag_const_e_SD,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,sd0_sd1_use_the_same_hw,l
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.904336.sdx_source.c,clock_sdx,pl
|
||||
include_lib/liba/br25/cpu.a.llvm.954572.otg.c
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.954572.otg.c,usb_otg_online,pl
|
||||
-r=include_lib/liba/br25/cpu.a.llvm.954572.otg.c,usb_otg_suspend,pl
|
||||
@ -4979,6 +5153,10 @@ include_lib/liba/br25/system.a.llvm.207078.heap_mmu.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.207078.heap_mmu.c,config_asser,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.207078.heap_mmu.c,log_tag_const_d_HEAP_MEM,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.207078.heap_mmu.c,log_tag_const_e_HEAP_MEM,l
|
||||
include_lib/liba/br25/system.a.llvm.236922.common.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.236922.common.c,jiffies_half_msec,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.236922.common.c,jiffies_msec,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.236922.common.c,jiffies,l
|
||||
include_lib/liba/br25/system.a.llvm.244386.memory.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.244386.memory.c,mem_init,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.244386.memory.c,memory_init,l
|
||||
@ -5277,7 +5455,7 @@ include_lib/liba/br25/system.a.llvm.1320054.sdfile_new.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.1320054.sdfile_new.c,nor_sdfile_hdl,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1320054.sdfile_new.c,__initcall_sdfile_init,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1320054.sdfile_new.c,sdfile_vfs_ops,plx
|
||||
-r=include_lib/liba/br25/system.a.llvm.1320054.sdfile_new.c,nor_sdfile_vfs_ops,plx
|
||||
-r=include_lib/liba/br25/system.a.llvm.1320054.sdfile_new.c,nor_sdfile_vfs_ops,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1320054.sdfile_new.c,boot_info,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1320054.sdfile_new.c,config_asser,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1320054.sdfile_new.c,SDFILE_VFS_REDUCE_ENABLE,l
|
||||
@ -5353,7 +5531,7 @@ include_lib/liba/br25/system.a.llvm.1468034.init.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.1468034.init.c,late_initcall_begin,
|
||||
-r=include_lib/liba/br25/system.a.llvm.1468034.init.c,late_initcall_end,
|
||||
include_lib/liba/br25/system.a.llvm.1530946.puthex.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,putchar,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,putchar,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,log_output_lock,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,log_output_start,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,log_putchar,l
|
||||
@ -5361,15 +5539,15 @@ include_lib/liba/br25/system.a.llvm.1530946.puthex.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,log_putbyte,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,log_output_unlock,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,put_u4hex,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,put_u16hex,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,put_u8hex,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,put_u32hex,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,put_u16hex,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,put_u8hex,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,put_u32hex,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,putbyte,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,put_buf,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,put_buf,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,log_put_u8hex,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1530946.puthex.c,printf_buf,pl
|
||||
include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,puts,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,puts,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,log_output_lock,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,log_output_start,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,strlen,l
|
||||
@ -5378,9 +5556,9 @@ include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,log_putbyte,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,log_print_time,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,log_output_unlock,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,printf,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,printf,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,print,
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,assert_printf,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,assert_printf,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,local_irq_disable,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,sprintf,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1537914.printf-stdarg.c,vprintf,pl
|
||||
@ -5393,12 +5571,12 @@ include_lib/liba/br25/system.a.llvm.1554582.log.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,log_print_time,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,jiffies_msec,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,sprintf,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,log_putbyte,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,log_putbyte,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,log_output_lock,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,os_mutex_pend,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,os_mutex_post,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,log_output_unlock,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,log_print,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,log_print,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,log_output_start,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,log_putchar,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.1554582.log.c,lbuf_free,l
|
||||
@ -5531,10 +5709,6 @@ include_lib/liba/br25/system.a.llvm.78218.cfg_bin.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.78218.cfg_bin.c,CRC16,l
|
||||
-r=include_lib/liba/br25/system.a.llvm.78218.cfg_bin.c,group_item_table,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.78218.cfg_bin.c,cfg_bin,pl
|
||||
include_lib/liba/br25/system.a.llvm.236922.common.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.236922.common.c,jiffies_half_msec,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.236922.common.c,jiffies_msec,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.236922.common.c,jiffies,l
|
||||
include_lib/liba/br25/system.a.llvm.298626.ffunicode.c
|
||||
-r=include_lib/liba/br25/system.a.llvm.298626.ffunicode.c,ff_uni2oem,pl
|
||||
-r=include_lib/liba/br25/system.a.llvm.298626.ffunicode.c,ff_oem2uni,pl
|
||||
@ -5760,6 +5934,27 @@ include_lib/liba/br25/media_app.a.llvm.123018.audio_output_dac.c
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.123018.audio_output_dac.c,dac_hdl,l
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.123018.audio_output_dac.c,log_tag_const_i_APP_DAC,l
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.123018.audio_output_dac.c,config_asser,l
|
||||
include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,audio_energy_detect_event_handler,pl
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,log_print,l
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,auido_energy_detect_10ms_timer,pl
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,audio_energy_detect_open,pl
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,zalloc,l
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,usr_timer_add,l
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,os_mutex_create,
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,usr_timer_del,l
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,free,l
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,audio_energy_detect_run,pl
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,os_mutex_pend,l
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,os_mutex_post,l
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,audio_energy_detect_close,pl
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,os_mutex_del,
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,audio_energy_detect_skip,pl
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,audio_energy_detect_entry_get,pl
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,audio_energy_detect_sample_rate_update,pl
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,audio_energy_detect_energy_get,pl
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,log_tag_const_i_APP_EDET,l
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.157622.audio_energy_detect.c,log_tag_const_e_APP_EDET,l
|
||||
include_lib/liba/br25/media_app.a.llvm.314346.audio_eq_drc_apply.c
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.314346.audio_eq_drc_apply.c,audio_dec_eq_open,pl
|
||||
-r=include_lib/liba/br25/media_app.a.llvm.314346.audio_eq_drc_apply.c,zalloc,l
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
cpu/br25/tools/soundbox/standard_608n/update_685C.ufw
Normal file
BIN
cpu/br25/tools/soundbox/standard_608n/update_685C.ufw
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Loading…
Reference in New Issue
Block a user