ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:38KB ,
资源ID:18211130      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18211130.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(RDA5850开发教程之欧阳治创编Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

RDA5850开发教程之欧阳治创编Word文档下载推荐.docx

1、Trace配置32音频校准32音量校准32Mp3解码器校准34SBC参数设置35回音消除参数设置35更新历史日期版本描述作者2012-5-261.0新版本发布2012-7-301.1增加部分target配置2012-8-211.2增加gpio按键配置2013-4-92.0增加led,gdb,trace,calibration2.1增加蓝牙调试菜单,增加sbc和回音消除设置方法的说明声明1. 在未经RDA公司事先书面许可的情况下,严禁以任何形式复制、修改本手册中的任何内容;在编制手册过程中已经力求内容的正确与完整,但并不保证本手册没有任何错误或遗漏。本公司将不对本手册可能出现的错误或者疏漏负责;

2、我们保留在不预先通知的情况下,对本手册中描述的任何产品进行修改和改进的权利。代码结构系统分为两个部分,应用程序和平台代码。平台代码位于platform目录,应用程序位于apps目录。目录列表内容appsap_xxx应用程序代码ap_gui公用显示程序,比如菜单、进度条等gui显示函数库,显示文字、图片等projects_cfg应用项目配置,包括选项、资源等system访问平台软件相关的代码env编译脚本和makefilelib库文件platformchip芯片定义和rom文件edrv外部设备驱动程序flash_prog下载程序Ramruninclude平台库文件的头文件。Simulator模拟

3、器代码target平台定义文件build编译中间文件hex系统目标文件,每个target会有一个子目录。toolpool编译调试工具。系统入口函数是BAL_TaskInit。BAL_TaskInit里面首先调用BAL_Initalise函数进行系统的初始化。然后创建了4个任务。任务列表总共有4个任务中系统中运行:1.系统任务,主要处理底层驱动的消息2.媒体任务,运行和调度解码模块3.蓝牙任务,运行协议栈和profile4.应用任务,运行应用程序,处理消息和显示界面。4个任务中除了应用任务都是在平台代码里的。应用开发模块应用程序一般是一个消息处理循环,调用MESSAGE_Wait函数得到消息,根

4、据应用分别处理对应的消息,不处理的消息调用MESSAGE_HandleHotkey函数处理热键。示例代码:INT32 Sample_Entry(INT32 param) UINT32 key; UINT8 result=RESULT_MAIN; MESSAGE_Initial(g_comval); / 重置系统计数器 while(1) if(need_draw) / 如果需要显示 #if APP_SUPPORT_LCD=1 if(AP_Support_LCD() GUI_ClearScreen(NULL);/清全屏幕 GUI_DisplayBattaryLever(); GUI_UpdateS

5、creen(NULL); #endif need_draw = FALSE; key = MESSAGE_Wait(); / 取得系统消息 switch( key ) / 根据消息执行不同动作。 case AP_MSG_RTC: need_draw = TRUE; break; case AP_KEY_MODE|AP_KEY_HOLD: ; / default: result = MESSAGE_HandleHotkey(key); / 处理热键 if(result = RESULT_REDRAW) else if(result != 0) return result;驱动开发接口需要用户定制

6、的驱动主要是flash和lcd,其他部分的驱动一般不需要改动。驱动的选择在平台的定义文件target.def里面。Flash驱动Flash驱动位于platformedrvmemd目录下,驱动的接口定义在文件memd_m.h中,主要包括读、写、擦等函数接口。/初始化函数,系统启动后会调用。PUBLIC MEMD_FLASH_LAYOUT_T* memd_FlashOpen(CONST MEMD_FLASH_CONFIG_T* cfg);/读函数,一般需不要使用,可以用memcpy实现PUBLIC MEMD_ERR_T memd_FlashRead(UINT8 *flashAddress, UIN

7、T32 byteSize, UINT32* pReadByteSize, UINT8* buffer);/写函数,下载程序和保存程序配置时调用PUBLIC MEMD_ERR_T memd_FlashWrite(UINT8 *flashAddress, UINT32 * pWrittenByteSize, CONST UINT8* buffer);/擦函数,调用写函数前会先调用擦函数来擦除要写的扇区。PUBLIC MEMD_ERR_T memd_FlashErase( UINT8 *startFlashAddress, UINT8 *endFlashAddress);LCD驱动LCD驱动位于pl

8、atformedrvlcdd目录下,驱动的接口定义在文件lcdd_m.h中,主要包括打开,更新等接口。PUBLIC LCDD_ERR_T lcdd_Open(VOID);/刷屏函数,把Data指向的buff里的内容显示到屏幕上PUBLIC LCDD_ERR_T lcdd_update_screen (UINT8* Data, LCDD_ROI_T *rect);/8段数码管显示刷屏函数PUBLIC LCDD_ERR_T led8s_update_screen(UINT16 flag, UINT8* Data);项目定义平台定义平台定义在目录target下,每个平台一个目录,包括一个target

9、.def文件和两个头文件tgt_board_cfg.h和tgt_app_cfg.h。平台定义包括了芯片的定义和硬件平台的定义,比如驱动的配置、按键的设置等信息。target.def文件中需要修改的部分:#=# 3 # FLASH驱动 #SPI Flash (RAM is packaged inside baseband chip)FLSH_MODEL ?= flsh_gd25q32TARGET_EXPORT_FLAG += MEMD_NO_ASSERT# Flash model interface: parallel/spiFLSH_IF ?= spi# EBC CLK cfg:_52MHz_

10、/_78MHz_/_104MHz_/_156MHz_SYS_MEMD_EBC_CLK ?= _78MHz_#SPIFLASH spi CLK cfg:ifeq $(strip $FLSH_IF) spiSYS_MEMD_FLSH_SPI_CLK ?endif # ($FLSH_IF,)# Ram is ADMUX or not TARGET_EXPORT_FLAG += MEMD_RAM_IS_ADMUX# Flash is ADMUX or not #TARGET_EXPORT_FLAG += MEMD_FLASH_IS_ADMUX# Ram support burst mode or no

11、tTARGET_EXPORT_FLAG += MEMD_RAM_IS_BURST# Flash support burst mode or not#TARGET_EXPORT_FLAG += MEMD_FLASH_IS_BURST# 4 # LCD驱动 #LCD_MODEL ?= mzl02#ili9163c st7735r# LCD interface: gouda/slcdLCD_IF ?= gouda# GOUDA can support serial LCD starting from 8808$LCD_IFgoudaUSE_SPI_LCD ?= 1TARGET_EXPORT_FLAG

12、 += USE_SPI_LCDendif# 9 #用户项目定义#项目名CT_PROJECT := 128_64#是否有资源CT_RESVALID := yesGLOBAL_EXPORT_FLAG += RESOURCE_SUPPORTtgt_app_cfg.h一般不需要修改。tgt_board_cfg.h可能需要修改的部分:GPIO相关的定义#define TGT_GPIO_CONFIG_CFG / 红外使用的gpio.gpio_irc = HAL_GPIO_4, / led使用的gpio .led_count = 3, .leds = /led 列表 .gpoId = HAL_GPO_5 ,

13、 /* MUSIC */ .gpoId = HAL_GPO_3 , /* FM */ .gpoId = HAL_GPO_0 , /* Bluetooth */ /按键使用的gpio .key_count = 0, /按键个数 .key_interrupt_mode = TRUE,/是否中断模式,否则使用查询模式 .high_keydown = TRUE, / 按键按下时gpio值为高 / gpio 按键列表 .gpio_keys = HAL_GPIO_NONE , /line in检查gpio端口号 .gpio_lineIn = HAL_GPIO_NONE, / line in gpio 是高

14、有效 .lineinPlugHigh = TRUE, / t卡检测脚 .cardDetectGpio = HAL_GPIO_7, / 低有效 .gpioCardDetectHigh = FALSE, / 耳机检测脚 .earpieceDetectGpio = HAL_GPIO_1, .earpiecePlugHigh = FALSE, / 没有设置gpio检测时是否有耳机 .earpiecePlugin = FALSE, #define TGT_HAL_CONFIG .keyInMask = 0x07, /按键使用的keyin位开关 .keyOutMask = 0x07, /按键使用的keyo

15、ut位开关 .uartKeyinoutSel = / 以下为用keyin/keyout做gpio的开关 .keyin0GpioEn = 0, /* GPIO_20 */ .keyout1GpioEn = 0, /* GPIO_17 */ .keyout2GpioEn = 0, /* GPIO_11 */ .keyout3GpioEn = 0, /* GPIO_7 */ .keyout4GpioEn = 0, /* GPIO_8 */ , ./ 按键定义#define KEY_MAP KEY_POWER,/ power键的键值,设置为KEY_INVALID可以不用power键,直接拉高,加电自动

16、开机。 . / gpio按键的值,顺序和gpio按键定义一致 . /第一列按键的值 . /第二列按键的值 . /第三列按键的值 / 按键动作定义#define KEY_CONFIG .repeat_timeout = 1000, / 进入长按的延时,单位毫秒 .repeat_interval = 200, / 进入长按后循环周期,单位毫秒 .keymap = g_tgtKeyMap / 红外遥控器定义#define IRC_CODE_MAP_SIZE 22#define IRC_MAX_STYLE 4#define IRC_STYLE_MAP 0xbf00, 0x7f80, 0xff00, 0

17、xfd02 #define IRC_MAP 0x10, 0x0a, 0x0c, 0x08, /* KEY_1 */ 0x11, 0x1b, 0x18, 0x88, /* KEY_2 */ #define IRC_CONFIG .gpioId = HAL_GPIO_4, .irc_styles = IRC_MAX_STYLE, .map_size = IRC_CODE_MAP_SIZE, .timeout = 200, .style_list = &g_tgtIRCStyle0, .code_map = &g_tgtIRCMap00 / pmd配置#ifndef TGT_PMD_CONFIG#d

18、efine TGT_PMD_CONFIG ./ 长按开机.holdPowerOn = FALSE, /语音配置,对每种语音配置路径和参数EAR_PIECE为耳机模式LOUD_SPEAKER为外放模式BLUETOOTH为耳机发射模式BT_EP为蓝牙接收,耳机输出模式BT_SP为蓝牙接收,外放输出模式FM是收听收音机的模式LINEIN为插入linein时使用的模式RECEIVER和BLUETOOTH模式暂时没有用到。#define TGT_AUD_CONFIG_EAR_PIECE_DRIVER CodecGallite#define TGT_AUD_CONFIG_EAR_PIECE_PARAM 0

19、#define TGT_AUD_CONFIG_EAR_PIECE_OUTPUT_PATHAUD_SPK_RECEIVER / 语音输出路径,可选值为耳机(AUD_SPK_EAR_PIECE)或者外放(AUD_SPK_LOUD_SPEAKER)#define TGT_AUD_CONFIG_EAR_PIECE_OUTPUT_TYPE AUD_SPEAKER_STEREO / 输出类型,立体声或者左、右声道#define TGT_AUD_CONFIG_EAR_PIECE_INPUT_PATH AUD_MIC_LOUD_SPEAKER / 输入路径xmake脚本中的CT_TARGET参数选择编译的平台

20、。应用定义应用定义在目录appsprojects_cfg目录下,每个项目一个目录,包括一个头文件project_config.h和资源文件。头文件中定义了上层应用的feature,比如lcd尺寸、是否支持菜单等。#define APP_SUPPORT_BLUETOOTH 1 / 支持蓝牙#define APP_SUPPORT_USB 0 / 支持usb host#define APP_SUPPORT_FM 1 / 支持fm#define APP_SUPPORT_FM_RECORD 0 / fm录音#define APP_SUPPORT_FM_OUT 0 / fm输出#define APP_SU

21、PPORT_LCD 1 / lcd单色液晶屏#define APP_SUPPORT_LED 1 / led指示灯#define APP_SUPPORT_LED8S 1 / 8 段数码管显示#define APP_SUPPORT_FLASHDISK 0 / 内置磁盘空间#define APP_SUPPORT_MENU 1 / 菜单支持#define APP_SUPPORT_REMOTECONTROL 1 / 遥控器支持#define APP_SUPPORT_LYRIC 1 / 歌词显示#define APP_SUPPORT_FADE_INOUT 1 / 淡进淡出#define APP_SUPPO

22、RT_INDEPEND_VOLUMNE 1 / 每个模块使用独立音量/ 上面值为0的选项目前还不支持,1的选项可以改为0来关闭/ 语言支持,定义字符串资源时使用#define APP_SUPPORT_LANG_ENGLISH 1 /English#define APP_SUPPORT_LANG_SM_CHINESE 1 /SM Chinese/屏幕尺寸#define LCD_WIDTH 128#define LCD_HEIGHT 64#define APP_DEFAULT_RESULT RESULT_MAIN / 进入系统后首先运行的任务应用项目的选择在平台定义的target.def文件里。编

23、译环境第一次运行解压ftp上DevelopTool目录下的MIPS_Compiler.rar和coolgdb.rar到toolpool目录。编译方法执行根目录下的msys.bat打开编译环境,注意会有杀毒软件警告,最好退出杀毒软件,以方便编译。执行xmake命令进行编译,xmake文件是个脚本,可以用文本编辑软件修改,其中参数CT_TARGET指定需要编译的项目,其他参数不要修改。xmake可以带路径参数来单独编译某个模块,比如xmake platform/edrv编译驱动模块。xmake link命令可以单独链接。资源编辑器资源保存在appsprojects_cfg项目名resource目录

24、下,源文件名为resource.csv,可以用文本编辑工具直接编辑,目标文件名为res.bin,用来下载到flash,系统链接时会自动把资源目标文件加入到系统bin文件里。资源编辑器打开的时候读取源文件,保存的时候会同时更新源文件和bin文件。资源编辑器位于toolpoolbin目录下,文件名resedit.exe。运行时先选择配置的项目。项目设置项目全局设置信息,包括feature,显示参数、蓝牙名字、密码等。出厂设置第一次运行或者用户选择恢复出厂设置时恢复的配置。注:其中Loop Mode有三个选项:RepeatOne: 循环播放一首歌曲,RepeatAll:循环播放所有歌曲,Auto:自

25、动切换,按键选择下一首歌曲时切换为循环所有歌曲,按键选择上一首歌曲时切换为循环一首歌曲。语音设置语音设置配置各种提示音和内置音乐。对于没有LCD的项目,只需要配置前三页:项目设置、出厂设置和语言设置就可以了。选中的mp3文件会被复制到对应项目的resourceaudio子目录下。语音ID在gui_const.h里面定义。语音类型分为两种,mp3文件和内部编码。内部编码用一串字符来定义一段语音,每个字符播放0.1秒时间,0代表没有声音,19代表从低到高的9个频点,大约频率见下表:值声音频率没有声音1256Hz2384Hz3512Hz4640Hz5768Hz6853Hz71024Hz81280Hz

26、91536Hz语言选择选择语言包,语言包的id和语言菜单的id相对应。语言包文件位于toolpoolbin目录下。图片设置选中的图片会被复制到对应项目的resourceimages子目录下。图片ID在gui_const.h里面定义。对于同类别的图片可以做成图片组资源,显示的时候用一个ID,和要显示的索引值就可以了。比如下图中的循环状态,把不同循环的图片,按照程序中变量值repeat_mode的顺序排列,显示的时候就会很方便:GUI_ResShowImage(GUI_IMG_MUSICLOOPS, repeat_mode, POSITION_F, 0);定义图片组资源,需要指定图片的高度,以便显

27、示程序截取图片。字符串设置字符串ID在gui_const.h里面定义。需要为每个字符串在不同语言里设置内容,没有设置过的默认值为ID的名字。可以直接用文本编辑工具修改资源源文件来设置字符串的值。LED设置LED显示模式设置,ID在gui_const.h里面定义。每个显示模式依次设置开关灯已经延迟时间,单位0.1秒。点击Preview可以预览led闪烁效果,如下图:菜单设置首先选择要编辑的菜单,选择后菜单项会显示在列表里。每个菜单包括两个图片,一个是没选中时显示的图片,一个是选中时显示的图片。Query Active选项表示在显示菜单时,通过callback函数取得当前选中的菜单项。每个菜单项需要定义对于的string id,action,result,param。菜单项定义:项目说明string

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1