欢迎使用杰理科技32位AD系列语音IC
开源社区仓库链接:
https://gitee.com/Jieli-Tech/AD23N
https://github.com/Jieli-Tech/AD23N
开源社区交流群:
![]()
开源社区钉钉群二维码
作者:刘杰、马万程
FAQ 常见问题快速索引:
IDE 软硬件开发环境介绍:
系统:
- 1. 时钟驱动
- 2. 异常
- 3. tick_timer
- 4. 中断系统
- 4.1. 中断的注册与注销
- 4.2. 软中断说明
- 4.3. 软件不可屏蔽中断
- 4.3.1. 函数void _OS_ENTER_CRITICAL(u32 bit_list)
- 4.3.2. 函数void _OS_ENTER_CRITICAL(u32 bit_list_l, u32 bit_list_h)
- 4.3.3. 函数void _OS_ENTER_CRITICAL(IRQ_IDX_BITMAP *p_irq_bitmap)
- 4.3.4. 函数void _OS_EXIT_CRITICAL(void)
- 4.3.5. 函数void vm_isr_response_index_register(u8 index)
- 4.3.6. 函数void vm_isr_response_index_unregister(u8 index)
- 4.3.7. 函数u32 get_vm_isr_response_index_l(void)
- 4.3.8. 函数u32 get_vm_isr_response_index_h(void)
- 4.4. 硬件不可屏蔽中断
- 5. 动态内存管理(基于硬件MMU)
- 6. 系统flash写保护(flash_write_protect_v3)
设备、文件、编解码:
- 1. 设备管理
- 1.1. 设备注册表
- 1.2. 设备函数
- 1.2.1. 函数int devices_init()
- 1.2.2. 函数bool dev_online(const char* name)
- 1.2.3. 函数void* dev_open(const char* name, void* arg)
- 1.2.4. 函数int dev_bulk_read(void* _device, void* buf, u32 offset, u32 len)
- 1.2.5. 函数int dev_bulk_write(void* _device, void* buf, u32 offset, u32 len)
- 1.2.6. 函数int dev_byte_read(void* _device, void* buf, u32 offset, u32 len)
- 1.2.7. 函数int dev_byte_write(void* _device, void* buf, u32 offset, u32 len)
- 1.2.8. 函数int dev_ioctl(void* device, int cmd, u32 arg)
- 1.2.9. 函数int dev_close(void* device)
- 2. 文件系统管理
- 2.1. 文件系统介绍
- 2.2. 文件系统使用一般流程
- 2.3. 通用文件系统管理函数
- 2.3.1. 函数void vfs_init(void)
- 2.3.2. 函数u32 vfs_mount(void **ppvfs, void *device, void *type)
- 2.3.3. 函数u32 vfs_openbypath(void *pvfs, void **ppvfile, const char *path)
- 2.3.4. 函数u32 vfs_openbyindex(void *pvfs, void **ppvfile, u32 index)
- 2.3.5. 函数u32 vfs_createfile(void *pvfs, void **ppvfile, u32 *pindex)
- 2.3.6. 函数u32 vfs_read(void *pvfile, void *buf, u32 len)
- 2.3.7. 函数u32 vfs_write(void *pvfile, void *buf, u32 len)
- 2.3.8. 函数u32 vfs_seek(void *pvfile, u32 offset, u32 mode)
- 2.3.9. 函数u32 vfs_file_close(void **ppvfile)
- 2.3.10. 函数u32 vfs_fs_close(void **ppvfs)
- 2.3.11. 函数u32 vfs_file_name(void *pvfile, void *name, u32 len)
- 2.3.12. 函数int vfs_get_attrs(void *pvfile, void *pvfs_attr)
- 2.3.13. 函数int vfs_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_ioctl(void *pfile, int cmd, int arg)
- 5.2. FAT文件系统简易驱动 & FAT文件系统完整驱动区别
- 5.1. FAT文件系统管理函数
- 6. freefs文件系统
- 7. 解码接口
- 8. F1X格式解码流程说明
- 9. 编码接口
应用流程:
- 1. 小音箱应用篇(mbox_flash)
- 1.1. 简介
- 1.2. 音乐解码模式(MUSIC_MODE)
- 1.3. 普通解码模式(SIMPLE_DEC_MODE)
- 1.3.1. 函数u32 simple_dev_fs_mount(play_control *ppctl)
- 1.3.2. 函数u32 simple_dev_fs_close(play_control *ppctl)
- 1.3.3. 函数u32 simple_play_file_byindex(play_control *ppctl)
- 1.3.4. 5.4 函数u32 get_decoder_status(dec_obj *obj)
- 1.3.5. 函数static bool simple_switch_device(play_control *ppctl)
- 1.3.6. 函数static bool simple_next_dir(play_control *ppctl)
- 1.4. 录音模式(RECORD_MODE)
- 1.4.1. 函数int encode_start(Encode_Control *obj)
- 1.4.2. 函数void encode_stop(Encode_Control *obj)
- 1.4.3. 函数int fatfs_enc_file_create(Encode_Control *obj)
- 1.4.4. 函数dec_obj *fatfs_enc_file_decode(Encode_Control *obj, u16 dec_type)
- 1.4.5. 函数int norfs_enc_file_create(Encode_Control *obj)
- 1.4.6. 函数dec_obj *norfs_enc_file_decode(Encode_Control *obj, u16 dec_type)
- 1.5. linein模式(AUX_MODE)
- 1.6. MIDI模式(MIDI_MODE)
- 1.7. MIDI琴模式(MIDI_CTRL_MODE)
- 1.8. 扩音模式(LOUDSPEAKER_MODE)
音频:
- 1. AUDIO公共
- 2. AUDIO ADC(AD23N)
- 2.1. AUDIO_ADC相关配置说明
- 2.2. audio_adc_cpu.c的audio_adc配置说明
- 2.3. AUDIO ADC结构体变量与接口介绍
- 2.3.1. 函数u32 audio_adc_init_api(u32 sr, ADC_MODE mode, u32 ch)
- 2.3.2. 函数void audio_adc_enable(u32 gain)
- 2.3.3. 函数void audio_adc_disable(void)
- 2.3.4. 函数void audio_adc_off_api(void)
- 2.3.5. 函数bool regist_audio_adc_channel(void *psound, void *kick)
- 2.3.6. 函数bool unregist_audio_adc_channel(void *psound)
- 2.3.7. 函数void fill_audio_adc_fill(u8 *buf, u32 len)
- 2.4. AD24N的AUDIO_ADC使用APA口输入模式使用说明
- 2.5. AD23N的AUDIO_ADC使用数字麦流程
- 2.6. AD23N AUDIO_ADC使用模拟麦省MIC IN电容流程
- 3. AUDIO DAC
- 3.1. AUDIO DAC工作模式
- 3.2. AUDIO DAC其他配置
- 3.3. AUDIO DAC接口介绍
- 3.3.1. 函数void dac_mode_init(u16 vol, void *phy_vol_set_func)
- 3.3.2. 函数void dac_init_api(u32 sr, bool delay_flag)
- 3.3.3. 函数void dac_off_api(void)
- 3.3.4. 函数bool dac_mute(bool mute)
- 3.3.5. 函数u8 dac_vol(char set, u8 vol)
- 3.3.6. 函数bool regist_dac_channel(void *psound, void *kick)
- 3.3.7. 函数bool unregist_dac_channel(void *psound)
- 3.3.8. 函数void fill_dac_fill_phy(u8 *buf, u32 len)
- 4. Audio指标测试数据(AD23N)
- 5. 音量
音效算法:
- 1. 混响(echo)
- 2. 移频啸叫抑制(pitchshifter_howling)
- 3. 自适应陷波啸叫抑制(notch_howling)
- 4. 软件浮点EQ(pcm_eq_float)
- 5. 变音音效(vo_pitch)
- 5.1. 可选音效
- 5.2. 配置参数说明
- 5.3. 相关结构体及函数
- 5.3.1. 结构体VOICE_PITCH_PARA_STRUCT
- 5.3.2. 函数void *link_voice_pitch_sound(sound_out_obj *p_curr_sound, void *p_dac_cbuf, void **pp_effect, u32 cmd)
- 5.3.3. 函数void voicepitch_release(void **ppeffect)
- 5.3.4. 函数void *voice_pitch_api(void *obuf, u32 cmd, void **ppsound)
- 5.3.5. 函数void rap_callback(void *priv, int pos)
- 5.3.6. 函数void rap_reopen(void)
- 5.4. RAP和RAP_REALTIME模式文件替换说明
- 6. 混合变音音效(voicechanger)
- 6.1. 可选音效
- 6.2. 配置参数说明
- 6.3. 相关函数接口
- 6.3.1. 函数void *link_voice_changer_sound(void *p_sound_out, void p_dac_cbuf, void **pp_effect, u32 in_sr)
- 6.3.2. 函数void *voice_changer_api(void *obuf, u32 sr, void **ppsound)
- 6.3.3. 函数void update_voice_changer_parm(VOICECHANGER_AV_PARM *new_vc_parm, VOICESYN_AV_PARM *new_vsyn_ctrol)
- 6.3.4. 函数void voicechanger_release(void **ppeffect)
- 7. 变速变调(speed)
- 8. 分贝检测(energe_detect)
- 9. 音频降噪算法(ANS)
其他:
- 1. VM 掉电存储说明
- 2. 消息与事件
- 2.1. 1 消息与事件使用一般流程
- 2.2. 2 消息与事件函数
- 2.2.1. 2.1 void event_init(void)
- 2.2.2. 2.2 void message_init()
- 2.2.3. 2.3 u32 event2msg_api(u32 event)
- 2.2.4. 2.4 int post_event(int event)
- 2.2.5. 2.5 int post_msg(int argc, …)
- 2.2.6. 2.6 bool get_event_status(u32 event)
- 2.2.7. 2.7 函数int get_msg(int len, int *msg)
- 2.2.8. 2.8 函数void clear_all_message(void)
- 3. 按键系统key
- 4. Reserved_Area区域说明
- 5. 多录音分区(AD14N、AD24N)