欢迎使用杰理科技32位AD系列通用语音IC
开源社区仓库链接:
https://gitee.com/Jieli-Tech/fw-AD16N
https://github.com/Jieli-Tech/fw-AD16N
开源社区交流群:
![]()
开源社区钉钉群二维码
文档作者:刘杰
IDE 软硬件开发环境介绍:
系统:
- 1. 中断系统
- 1.1. 中断的注册与注销
- 1.2. 软中断说明
- 1.3. 软件不可屏蔽中断
- 1.3.1. 函数void _OS_ENTER_CRITICAL(u32 bit_list_l, u32 bit_list_h)
- 1.3.2. 函数void _OS_EXIT_CRITICAL(void)
- 1.3.3. 函数void vm_isr_response_index_register(u8 index)
- 1.3.4. 函数void vm_isr_response_index_unregister(u8 index)
- 1.3.5. 函数u32 get_vm_isr_response_index_l(void)
- 1.3.6. 函数u32 get_vm_isr_response_index_h(void)
- 1.4. 硬件不可屏蔽中断
- 2. 系统FLASH写保护功能
设备、文件、编解码:
- 1. 设备管理
- 1.1. 设备注册表
- 1.2. 设备函数
- 1.2.1. 函数int devices_init_api()
- 1.2.2. 函数void *dev_open(u32 index)
- 1.2.3. 函数u32 device_close(u32 index)
- 1.2.4. 函数void *device_obj(u32 index)
- 1.2.5. 函数u32 device_online(void)
- 1.2.6. 函数u32 device_status(u32 index, bool mode)
- 1.2.7. 函数int dev_bulk_read(void *_device, void *buf, u32 offset, u32 len)
- 1.2.8. 函数int dev_bulk_write(void *_device, void *buf, u32 offset, u32 len)
- 1.2.9. 函数int dev_ioctl(void *device, int cmd, u32 arg)
- 1.2.10. 函数int dev_close(void *device)
- 1.2.11. 设备管理常见问题介绍
- 2. 文件系统管理
- 2.1. 文件系统介绍
- 2.2. 文件系统使用一般流程
- 2.3. 通用文件系统管理函数
- 2.3.1. 函数void fs_init(void)
- 2.3.2. 函数u32 fs_mount(void **ppvfs, void *device, void *type)
- 2.3.3. 函数u32 fs_openbypath(void *pvfs, void **ppvfile, const char *path)
- 2.3.4. 函数u32 fs_read(void *pvfile, void *buf, u32 len)
- 2.3.5. 函数u32 fs_seek(void *pvfile, u32 offset, u32 mode)
- 2.3.6. 函数u32 fs_file_close(void **ppvfile)
- 2.3.7. 函数u32 fs_fs_close(void **ppvfs)
- 2.3.8. 函数u32 fs_file_name(void *pvfile, void *name, u32 len)
- 2.3.9. 函数int fs_get_attrs(void *pvfile, void *pvfs_attr)
- 2.3.10. 函数int fs_ioctl(void *pvfile, int cmd, int arg)
- 3. sydfs文件系统
- 4. norfs文件系统
- 5. fat文件系统
- 5.1. FAT文件系统管理函数
- 5.1.1. 函数int fs_ftell(void *pvfile, void *parm)
- 5.1.2. 函数int vfs_get_fsize(void *pvfile, void *parm)
- 5.1.3. 函数struct vfscan *vfs_fscan_new(void *pvfs, const char *path, const char *arg, u8 max_deepth, int (*callback)(void), strcut vfscan *fsn, struct vfscan_reset_info *info)
- 5.1.4. 函数void fs_fscan_release(void *pvfs, struct vfscan *fs)
- 5.1.5. 函数int fs_get_folderinfo(void **pvfile, struct vfscan *fs, int *start_num, int *end_num)
- 5.1.6. 函数int fs_get_encfolder_info(void *pvfs, char *folder, char *ext, u32 *last_num, u32 *total_num)
- 5.1.7. 函数u32 vfs_file_name(void *pvfile, void *name, u32 len)
- 5.1.8. 函数int fs_select(void *pvfs, void **ppvfile, struct vfscan *fs, int sel_mode, int arg)
- 5.1.9. 函数int vfs_mk_dir(void *pvfs, char *folder, u8 mode)
- 5.1.10. 函数int vfs_delete_dir(void *pvfs, char *path)
- 5.1.11. 函数int vfs_get_encfolder_info(void *pvfs, char *folder, char *ext, u32 *last_num, u32 *total_num)
- 5.1.12. 函数u32 vfs_file_delete(void *pvfile)
- 5.1.13. 函数int vfs_select(void *pvfs, void **ppvfile, struct vfscan *fs, int sel_mode, int arg)
- 5.1.14. 函数int vfs_format(void **ppvfs, const char *dev_name, const char *type, u32 clust_size, u8 create_new)
- 5.1.15. 函数int vfs_ioctl(void *pfile, int cmd, int arg)
- 5.1. FAT文件系统管理函数
- 6. 解码接口
- 7. 各解码格式配置说明
- 8. 编码接口
- 8.1. 编码功能控制函数
- 8.2. 函数void encoder_file(u32(*fun)(void *, void *, void *), void *pfile)
- 8.3. 函数void stop_encode_file(enc_obj *p_enc_obj, u32 dlen)
- 8.4. 函数enc_obj *audio2rf_encoder_io(u32(*enc_fun)(void *, void *, void *), void *p_queue_ops, void *ops)
- 8.5. 函数u32 audio2rf_encoder_start(enc_obj *obj)
- 8.6. 函数u32 rf_enc_output(void *priv, u8 *data, u16 len)
- 8.7. 函数void audio2rf_encoder_stop(queue_obj *p_queue, ENC_STOP_WAIT wait)
- 9. 各编码格式配置说明
- 10. MIDI
- 11. JL_MIO功能
应用流程:
- 1. OTP小音箱应用流程
- 2. FLASH工程应用流程
- 2.1. 音乐解码模式
- 2.2. USB从机模式
- 2.3. LINEIN模式
- 2.4. MIDI解码 / MIDI琴模式
- 2.5. 玩具多路解码模式
- 2.5.1. 函数u32 simple_dev_fs_mount(play_control *ppctl)
- 2.5.2. 函数u32 simple_dev_fs_close(play_control *ppctl)
- 2.5.3. 函数u32 simple_play_file_byindex(play_control *ppctl)
- 2.5.4. 5.4 函数u32 get_decoder_status(dec_obj *obj)
- 2.5.5. 函数static bool simple_switch_device(play_control *ppctl)
- 2.5.6. 函数static bool simple_next_dir(play_control *ppctl)
- 2.6. 录音模式
- 2.6.1. 函数int encode_start(Encode_Control *obj)
- 2.6.2. 函数void encode_stop(Encode_Control *obj)
- 2.6.3. 函数int fatfs_enc_file_create(Encode_Control *obj)
- 2.6.4. 函数dec_obj *fatfs_enc_file_decode(Encode_Control *obj, u16 dec_type)
- 2.6.5. 函数int norfs_enc_file_create(Encode_Control *obj)
- 2.6.6. 函数dec_obj *norfs_enc_file_decode(Encode_Control *obj, u16 dec_type)
- 2.7. LoudSpeaker扩音模式
音频:
- 1. AUDIO 公共
- 2. AUDIO DAC
- 2.1. 《app_config.c》中的开机默认配置
- 2.2. 《audio_dac.h》中的开机默认配置
- 2.3. AUDIO DAC示例
- 2.4. AUDIO 全关闭示例
- 2.5. AUDIO DAC管理架构
- 2.6. AUDIO DAC相关函数
- 2.6.1. 函数void dac_mode_init(void)
- 2.6.2. 函数void dac_init_api(u32 sr)
- 2.6.3. 函数dac_sr_api(u32 sr)
- 2.6.4. 函数void dac_off_api(void)
- 2.6.5. 函数u8 stereo_dac_vol(char set, u8 vol_l, u8 vol_r)
- 2.6.6. 函数u8 dac_vol(char set, u8 vol)
- 2.6.7. 函数bool dac_mute(bool mute)
- 2.6.8. 函数函数bool regist_dac_channel(void *psound, void *kick)
- 2.6.9. 函数函数bool unregist_dac_channel(void *psound)
- 2.6.10. 函数void fifo_dac_fill(u8 *buf, u32 len, AUDIO_TYPE type)
- 2.6.11. 函数void audio_dac_analog_vol(AUDIO_DAC_ANA_VOL vol_l, AUDIO_DAC_ANA_VOL vol_r)
- 2.6.12. 函数void audio_amux_analog_vol(AUDIO_DAC_AUMX_VOL vol_l, AUDIO_DAC_AUMX_VOL vol_r)
- 3. AUDIO ADC
- 3.1. 《app_config.c》中的开机默认配置
- 3.2. AUDIO ADC示例
- 3.3. AUDIO 全关闭示例
- 3.4. AUDIO ADC管理架构
- 3.5. AUDIO ADC相关函数
- 3.5.1. 函数void audio_adc_mode_init(void)
- 3.5.2. 函数u32 audio_adc_init_api(u32 sr, ADC_MODE mode, u32 throw_sp_num)
- 3.5.3. 函数void audio_adc_off_api(void)
- 3.5.4. 函数bool regist_audio_adc_channel(void *psound, void *kick)
- 3.5.5. 函数bool unregist_audio_adc_channel(void *psound)
- 3.5.6. 函数void fill_audio_adc_fill(u8 *buf, u32 len)
- 4. 软硬件淡入淡出
音效算法:
- 1. 软件EQ(PCM_EQ)
- 2. 完整的浮点EQ(audio_eq)
- 2.1. 浮点EQ配置(Flash工程)
- 2.2. 浮点EQ相关接口(Flash工程)
- 2.2.1. 函数 void *link_eq_sound(void *p_sound_out, void *p_dac_cbuf, void **pp_effect, u32 sr, u8 ch)
- 2.2.2. 函数 void *link_eq_sound(void *p_sound_out, void *p_dac_cbuf, void **pp_effect, u32 sr, u8 ch)
- 2.2.3. 函数 int eq_mode_sw(void *parm)
- 2.2.4. 函数 u8 get_eq_mode_total_num(void *parm)
- 2.2.5. 函数 u8 get_eq_mode_total_num(void *parm)
- 2.3. 在线EQ调试助手使用一般流程
- 3. 简单浮点EQ(audio_eq)
- 4. 混响音效(echo)
- 5. 移频啸叫抑制(pitchshifter_howling)
- 6. 自适应陷波啸叫抑制(notch_howling)
- 7. 变音音效(vo_pitch)
- 8. 实时变速变调(SPEED,用于扩音)
- 9. 歌曲变速变调(SONG_SPEED,用于解码)
- 10. 混合变音音效(voicechanger)
- 11. 音频降噪算法(ANS)
其他算法:
系统记忆:
- 1. 系统记忆存储
- 2. 设备记忆(OTP工程)
- 3. VM 掉电存储详细说明
- 3.1. VM 记忆的基本原理
- 3.2. VM 记忆的系统局限性
- 3.3. NEW VM的预擦除
- 3.4. NEW VM常见BUG
- 3.5. VM 掉电存储使用说明
- 3.6. VM 掉电存储版本简单说明
- 3.7. 新旧VM文件组成及版本选择
- 3.8. VM相关参数介绍
- 3.9. VM掉电记忆存储接口
- 3.9.1. 函数u32 syscfg_vm_init(u32 mem_addr, u32 mem_size)
- 3.9.2. 函数u32 sysmem_write_api(u32 id,u8 *data_buf, u32 len)
- 3.9.3. 函数u32 sysmem_read_api(u32 id ,u8 *data_buf, u32 len)
- 3.9.4. 函数 u32 sysmem_pre_erase_api(void)
- 3.9.5. 函数void nvm_pre_erasure_next(NEW_VM_OBJ *p_nvm, u16 using_next, u16 idle_next)
- 3.10. VM常见问题介绍
其他:
- 1. 消息与事件
- 2. 按键系统Key
- 3. 低功耗与唤醒
- 4. LCD段码屏驱动说明
- 5. RTC功能
- 5.1. RTC功能介绍
- 5.2. RTC配置参数
- 5.3. RTC接口函数
- 5.3.1. void rtc_dev_init(const struct rtc_config_init *arg);
- 5.3.2. void read_current_time();
- 5.3.3. void write_clock_time(u16 year , u8 month , u8 day , u8 hour , u8 min , u8 sec);
- 5.3.4. void rea_alarm_time();
- 5.3.5. void write_alarm_time(u16 year , u8 month , u8 day , u8 hour , u8 min , u8 sec);
- 5.3.6. void time_wakeup_set(u8 index , u8 en);
- 5.3.7. void rtc_alarm_en(u32 en);
- 5.4. RTC简单使用示例
- 6. Reserved_Area区域说明
- 7. 异常
- 8. 双备份升级