RDA5850RDA5851开发手册Word文档格式.docx

上传人:b****2 文档编号:15167589 上传时间:2022-10-28 格式:DOCX 页数:36 大小:1.58MB
下载 相关 举报
RDA5850RDA5851开发手册Word文档格式.docx_第1页
第1页 / 共36页
RDA5850RDA5851开发手册Word文档格式.docx_第2页
第2页 / 共36页
RDA5850RDA5851开发手册Word文档格式.docx_第3页
第3页 / 共36页
RDA5850RDA5851开发手册Word文档格式.docx_第4页
第4页 / 共36页
RDA5850RDA5851开发手册Word文档格式.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

RDA5850RDA5851开发手册Word文档格式.docx

《RDA5850RDA5851开发手册Word文档格式.docx》由会员分享,可在线阅读,更多相关《RDA5850RDA5851开发手册Word文档格式.docx(36页珍藏版)》请在冰豆网上搜索。

RDA5850RDA5851开发手册Word文档格式.docx

2.1

增加蓝牙调试菜单,

增加sbc和回音消除设置方法的说明

 

声明

1.在未经RDA公司事先书面许可的情况下,严禁以任何形式复制、修改本手册中的任何内容;

在编制手册过程中已经力求内容的正确与完整,但并不保证本手册没有任何错误或遗漏。

本公司将不对本手册可能出现的错误或者疏漏负责;

我们保留在不预先通知的情况下,对本手册中描述的任何产品进行修改和改进的权利。

代码结构

系统分为两个部分,应用程序和平台代码。

平台代码位于platform目录,应用程序位于apps目录。

目录列表

内容

apps

ap_xxx

应用程序代码

ap_gui

公用显示程序,比如菜单、进度条等

gui

显示函数库,显示文字、图片等

projects_cfg

应用项目配置,包括选项、资源等

system

访问平台软件相关的代码

env

编译脚本和makefile

lib

库文件

platform

chip

芯片定义和rom文件

edrv

外部设备驱动程序

flash_prog

下载程序Ramrun

include

平台库文件的头文件。

Simulator

模拟器代码

target

平台定义文件

build

编译中间文件

hex

系统目标文件,每个target会有一个子目录。

toolpool

编译调试工具。

系统入口函数是BAL_TaskInit。

BAL_TaskInit里面首先调用BAL_Initalise函数进行系统的初始化。

然后创建了4个任务。

任务列表

总共有4个任务中系统中运行:

1.系统任务,主要处理底层驱动的消息

2.媒体任务,运行和调度解码模块

3.蓝牙任务,运行协议栈和profile

4.应用任务,运行应用程序,处理消息和显示界面。

4个任务中除了应用任务都是在平台代码里的。

应用开发模块

应用程序一般是一个消息处理循环,调用MESSAGE_Wait函数得到消息,根据应用分别处理对应的消息,不处理的消息调用MESSAGE_HandleHotkey函数处理热键。

示例代码:

INT32Sample_Entry(INT32param)

{

UINT32key;

UINT8result=RESULT_MAIN;

MESSAGE_Initial(g_comval);

//重置系统计数器

while

(1)

{

if(need_draw)//如果需要显示

{

#ifAPP_SUPPORT_LCD==1

if(AP_Support_LCD())

GUI_ClearScreen(NULL);

//清全屏幕

GUI_DisplayBattaryLever();

GUI_UpdateScreen(NULL);

}

#endif

need_draw=FALSE;

}

key=MESSAGE_Wait();

//取得系统消息

switch(key)//根据消息执行不同动作。

caseAP_MSG_RTC:

need_draw=TRUE;

break;

caseAP_KEY_MODE|AP_KEY_HOLD:

;

//…

default:

result=MESSAGE_HandleHotkey(key);

//处理热键

if(result==RESULT_REDRAW)

elseif(result!

=0)

returnresult;

}

驱动开发接口

需要用户定制的驱动主要是flash和lcd,其他部分的驱动一般不需要改动。

驱动的选择在平台的定义文件target.def里面。

Flash驱动

Flash驱动位于platform\edrv\memd目录下,驱动的接口定义在文件memd_m.h中,主要包括读、写、擦等函数接口。

//初始化函数,系统启动后会调用。

PUBLICMEMD_FLASH_LAYOUT_T*memd_FlashOpen(CONSTMEMD_FLASH_CONFIG_T*cfg);

//读函数,一般需不要使用,可以用memcpy实现

PUBLICMEMD_ERR_Tmemd_FlashRead(UINT8*flashAddress,

UINT32byteSize,

UINT32*pReadByteSize,

UINT8*buffer);

//写函数,下载程序和保存程序配置时调用

PUBLICMEMD_ERR_Tmemd_FlashWrite(UINT8*flashAddress,

UINT32*pWrittenByteSize,

CONSTUINT8*buffer);

//擦函数,调用写函数前会先调用擦函数来擦除要写的扇区。

PUBLICMEMD_ERR_Tmemd_FlashErase(

UINT8*startFlashAddress,

UINT8*endFlashAddress);

LCD驱动

LCD驱动位于platform\edrv\lcdd目录下,驱动的接口定义在文件lcdd_m.h中,主要包括打开,更新等接口。

PUBLICLCDD_ERR_Tlcdd_Open(VOID);

//刷屏函数,把Data指向的buff里的内容显示到屏幕上

PUBLICLCDD_ERR_Tlcdd_update_screen(UINT8*Data,LCDD_ROI_T*rect);

//8段数码管显示刷屏函数

PUBLICLCDD_ERR_Tled8s_update_screen(UINT16flag,UINT8*Data);

项目定义

平台定义

平台定义在目录target下,每个平台一个目录,包括一个target.def文件和两个头文件tgt_board_cfg.h和tgt_app_cfg.h。

平台定义包括了芯片的定义和硬件平台的定义,比如驱动的配置、按键的设置等信息。

target.def文件中需要修改的部分:

#=====================================

##3##

########FLASH驱动########

##SPIFlash(RAMispackagedinsidebasebandchip)

FLSH_MODEL?

=flsh_gd25q32

TARGET_EXPORT_FLAG+=MEMD_NO_ASSERT

##Flashmodelinterface:

parallel/spi

FLSH_IF?

=spi

##EBCCLKcfg:

__52MHz__/__78MHz__/__104MHz__/__156MHz__

SYS_MEMD_EBC_CLK?

=__78MHz__

##SPIFLASHspiCLKcfg:

ifeq"

$(strip${FLSH_IF})"

"

spi"

SYS_MEMD_FLSH_SPI_CLK?

endif#(${FLSH_IF},)

##RamisADMUXornot

TARGET_EXPORT_FLAG+=MEMD_RAM_IS_ADMUX

##FlashisADMUXornot

#TARGET_EXPORT_FLAG+=MEMD_FLASH_IS_ADMUX

##Ramsupportburstmodeornot

TARGET_EXPORT_FLAG+=MEMD_RAM_IS_BURST

##Flashsupportburstmodeornot

#TARGET_EXPORT_FLAG+=MEMD_FLASH_IS_BURST

##4##

########LCD驱动########

LCD_MODEL?

=mzl02

#ili9163cst7735r

##LCDinterface:

gouda/slcd

LCD_IF?

=gouda

##GOUDAcansupportserialLCDstartingfrom8808

${LCD_IF}"

gouda"

USE_SPI_LCD?

=1

TARGET_EXPORT_FLAG+=USE_SPI_LCD

endif

##9##

##用户项目定义#######

#项目名

CT_PROJECT:

=128_64

#是否有资源

CT_RESVALID:

=yes

GLOBAL_EXPORT_FLAG+=RESOURCE_SUPPORT

tgt_app_cfg.h一般不需要修改。

tgt_board_cfg.h可能需要修改的部分:

GPIO相关的定义

#defineTGT_GPIO_CONFIG_CFG\

{//红外使用的gpio

.gpio_irc=HAL_GPIO_4,\

//led使用的gpio

.led_count=3,\

.leds={//led列表\

{.gpoId=HAL_GPO_5},/*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},\

//linein检查gpio端口号

.gpio_lineIn=HAL_GPIO_NONE,\

//lineingpio是高有效

.lineinPlugHigh=TRUE,\

//t卡检测脚

.cardDetectGpio=HAL_GPIO_7,\

//低有效

.gpioCardDetectHigh=FALSE,\

//耳机检测脚

.earpieceDetectGpio=HAL_GPIO_1,\

.earpiecePlugHigh=FALSE,\

//

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

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

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