《初级培训讲义》PPT课件.ppt_第1页
《初级培训讲义》PPT课件.ppt_第2页
《初级培训讲义》PPT课件.ppt_第3页
《初级培训讲义》PPT课件.ppt_第4页
《初级培训讲义》PPT课件.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RK27平台基础,,开发必须的相关资料: SDK软件开发包 VC+ 编译器 ARM ADS 编译调试器 电路图,datasheet RK2700 Demo板 JTAG仿真器及驱动,,内容提要,Q&A,系统和应用软件介绍,仿真、调试、编译、烧录,驱动程序介绍,芯片介绍,,内容提要,芯片介绍,,,系统特性,System Operation Dual Core Architecture (ARM7EJC+DSP) Support system boot sequentially from ARM7EJC to DSP Selectable JTAG debug method ARM7EJC debug only DSP debug only ARM7EJC+DSP dual core debug Selectable booting method Boot from NOR Flash Boot from Embedded ROM Internal memory space DSP IMEM 32Kwords DSP DMEM 32Kwords ARM7EJC Embedded Sync SRAM 4Kbytes ARM7EJC Embedded Boot ROM 8Kbytes,,LCD 控制器,LCDC Unit is a controller interface to LCD panel, including a 2048X32bit SRAM. Key features Compatible MCU and RGB interface。 Compatible 8bits series and 24bits parallel RGB interface. Support delta RGB interface panel. Support YUV or RGB image source data input relatively in line. Support 8 grade alpha operations. Support even/odd field mode. Support 4:2:2 or 4:2:0 YUV source data input. Support 16bits or 24bits RGB source data input. Support scale base on YUV source. Support MCU buffer write and bypass mode.,,DMA控制器1, AHB DMA (HDMA) Integrated in AHB BUS0 Two DMA channels support 8 hardware request handshaking support Built-in 32x16 data FIFO Support hardware and software trigger DMA transfer mode,,DMA控制器2,AHB-to-AHB Bridge (A2A) Integrated between AHB BUS0 and AHB BUS1 Provide AHB-to-AHB bus protocol translation Support AHB-to-AHB DMA or Single AHB DMA Two DMA Channels support On-the-fly mode between two level bus support 4 hardware request handshaking support Support hardware and software trigger DMA transfer mode,,DMA 控制器3, DW DMA Integrated in AHB BUS1 Four DMA Channels support 8 hardware request handshaking support Support hardware and software trigger DMA transfer mode Build-in 4 data FIFO : 64bytes/64bytes/64bytes/64bytes Scatter/Gather transfer support LLP transfer support Two master for on-the-fly support,,AHB Master 优先级,,Interrupt 优先级(ARM),,Interrupt 优先级(DSP),,DMA Hardware 请求,,System memap,见databook,,内容提要,驱动程序介绍,,板支持包(BSP)是指位于RK27_SDKSystemdriver目录下的所有代码,包含了芯片内部所有控制器和芯片已有外设的驱动。 BSP不依赖于OS和其他系统、应用程序,用户在有需要时,可基于BSP直接进行开发。 为适应上层调用需要,所有驱动做了必要的封装,调用驱动时包含头文件hw_include.h 即可引用所有驱动资源。 需要修改驱动时,请参考芯片手册。 下面举例说明几个常见的驱动:,BSP,,(1) 接口函数:void Pll_SetARMFreq(nMHz, HCLK_div, PCLK_div) 参数说明: nMHz - ARM core频率 HCLK_div - AHB分频值 ( HCLK_DIV1 - 基于ARM core频率不分频, HCLK_DIV2 - 基于ARM core频率二分频 ) PCLK_div - APB分频值 ( PCLK_DIV1 - 基于AHB频率不分频, PCLK_DIV2 - 基于AHB频率二分频, PCLK_DIV4 - 基于AHB频率四分频 ) 使用说明: 系统初始化或需要频率切换时按照参数说明调用此接口,频率切换设置,,I2C使用,1、接口函数 I2C_Init(UINT8 SlaveAddress, UINT16 nKHz) 初始化I2C I2C_Write(RegAddr, *pData, size,eI2C_mode_t mode) 写I2C I2C_Read(RegAddr, *pData, size,eI2C_mode_t mode) 读I2C I2C_Deinit(void) 反初始化I2C 2、注意事项 向I2C从设备进行读写操作前需要调用I2C_Init设置设备地址和I2C传输频率; I2C_Init和I2C_Deinit要成对使用; 同时只可对同一设备进行读写,,GPIO使用,GPIO_PowerOnInit( void ); 开机初始化GPIO GPIO_Config(GPIOPinNum, GpioConfig); 配置一个GPIO GPIO_SetPinLevel(GPIOPinNum,level); 设GPIO电平 GPIO_GetPinLevel(GPIOPinNum); 读GPIO电平 GPIO_SetPinDirection(GPIOPinNum,direction); 设GPIO方向 GPIO_EnableIntr(GPIOPinNum); 打开GPIO中断 GPIO_DisableIntr(GPIOPinNum); 关闭GPIO中断 注意: GPIO分PA、PB、PC、PD四组32个,可分组配置,也可单独配置某一个口。 大多数GPIO都有复用,因此在使用GPIO时应注意联合IOMUX驱动一起使用,,IOMUX的使用,IOMUX_PowerOnInit(void) IO复用的上电初始化, IOMUX_SetI2CType(i2ctype) 设置I2C复用的IO口线类型 IOMUX_SetUart0Port(type) 设置UART0复用的IO口线类型 IOMUX_SetUart1Port(type) 设置UART1复用的IO口线类型 IOMUX_SetPwmPort(chn, type) 设置PWM复用的IO口线类型 IOMUX_SetI2SType(codectype) 设置I2S复用的IO口线类型 IOMUX_SetSDPort(type) 设置SD复用的IO口线类型 IO的第一功能和第二功能同时只能使用一个。 IO复用的上电初始化时,将预先设置各复用IO口线功能 ,中途要更改各IO的功能,应根据需要进行配置,,中断的使用,Intr_PowerOnInit(void); - 开机初始化控制器 Intr_RegISR(irq, routine); - 注册中断,将isr与irq关联 Intr_Enable(irq); - 使能特定中断 Intr_Disable(irq); - 禁止特定中断 Intr_SetPrio(irq, priority); - 设置中断优先级 Intr_GetPrio(irq); - 得到中断优先级 int Intr_GetState(void); - 获取状态 Intr_ClearFlag(irq); - 清标志 Intr_SetType(irq, type); - 设置中断类型 Intr_GetType(irq); - 得到中断类型 注意: 中断驱动只针对芯片的中断控制器,不针对ARM的IRQ 中断开机初始化时,关闭了所有中断,打开了ARM的IRQ 中断服务程序不含参数,,串口调试的使用,int serial_PowerOnInit (void) 串口调试的上电初始化 (2) void serial_printf (const char *fmt, .) *fm, - 格式化打印的可变字符串参数 串口输出调试字符串和变量值,使用方式和C库函数printf相同 (3) int serial_scanf (char *fmt, .) *fm, - 格式化打印的可变字符串参数 从PC端控制台读取输入的字符串,使用方式和C库函数scanf相同,,Codec的使用,Codec_PowerOnInitial 上电初始化Codec Codec_SetMode(Codecmode); 设置Codec工作模式 Codec_SetSampleRate 设置Codec的采样率 Codec_SetVolumet 设置Codec的音量 Codec_DACMute 设置Codec 在DAC 工作时启动软静音 Codec_DACUnMute(void) 设置Codec在DAC 工作时关闭软静音 Codec_DeIitial(void) 反初始化Codec codec工作模式可设为下列几种: Codec_DACout - 音频数据流输出 Codec_FMin - FM LineIn输出 Codec_FMADC - FM录音 Codec_LineADC - 线录(Line in recording) Codec_MICAdc - Mic录音 Codec_Standby - codec休眠省电模式,,LCD及其控制器,ScreenPowerOnInit(pScreen) 上电初始化LCD ScreenRGBUpdate(*pScreen, *LcdArea) MCU类型LCD屏RGB方式数据更新 ScreenYUVUpdate(*pScreenY,*pScreenUV) MCU类型LCD屏YUV方式数据更新 ScreenYUVScaleUpdate MCU类型LCD屏YUV方式放大缩小数据更新 ScreenRGBAlphaUpdate MCU类型LCD屏RGB方式放大缩小数据更新,,内容提要,仿真、调试、编译、烧录方,,集成开发环境(IDE),RK27 IDE是指包含了源代码、算法库、编译环境、调试环境、仿真环境、烧写工具、资源生成工具等等的软件集成开发包。也即是RK27_SDK,,SDK的目录结构,发布的软件版本包含如下目录: Application 应用层代码,如音频、视频播放器、电子书、收音机 System 系统代码,包括OS,GUI,驱动,媒体库等等 Build 编译相关 Doc 平台技术文档 Ide 存放 编译工程目录,包括仿真和板子等。其中,iderk27_board 为板子工程,使用 ADS 进行编译和调试, iderk27_dll 为仿真工程,使用 VC+6.0 进行编译和调试。 其他目录为测试目录 Lib 解码或其他算法库和相关的头文件。 Output 编译输出的中间文件和目标文件。 Resource 图片、文本、字库等资源相关, 包括生成工具,输入配置文件,输入数据三部分。输入配置文件必须固定为 resourceresource.cfg 文件。输入格式可以参考该文件例子。具体说明参考后续文档 Tools 工具 Customer 预留给二次开发商使用的目录,,编译器安装 VC+,进行仿真编译,需先安装VC+6.0以上编译器 默认安装完VC+后,无需进行其他设置,双击打开RK27_SDKIdeRk27Dll目录下工程文件rk27dll.dsw文件即进入VC+环境,使用build目录进行编译 如果需要在仿真环境下添加编译开关,进入Project菜单- settings选项,C/C+选项卡,在其中的Preprocessor definitions中添加 如果需要添加默认编译路径,在其下的project Options中添加即可。,,编译器安装 ADS,默认安装完ADS,则可打开RK27_SDKIdeRk27_board目录下ARM工程文件rk27_baord.mcp进行编译 ARM编译均可使用默认配置,但当使用不同的JTAG调试器时,调试软件AXD需选择不同的JTAG驱动程序。AXD的SDRAM初始化脚本使用build目录下的BoardInit_RK27_8x16.txt文件,,BOOT烧写,新的板子或新的Nand Flash在烧写固件之前,应进行boot的烧写,boot升级方法请参考RK27_SDKTools目录下RK27烧写指南.doc文档 当boot程序有升级时,也应及时进行boot的升级,否则有可能由于固件和boot不兼容而产生错误和冲突,,图片资源,原始图片资源位于Resourceinputbmp目录下,可根据需要进行增删修改 Resource根目录下的*.cfg文件用来配置图片和文本资源的输入、输出目录等 原始图片应当是BMP图片,文件名应当是英文或数字名,不可含中文或空格 图片目录可以是中文名。 编译完资源后,将会在Resourceinclude目录下自动生成Bmp0ID.h的文件,该文件是所有原始图片ID的集合,在代码中引用该ID即可访问对应的图片。 图片资源生成后的目标文件是OutputRESOURCEBID目录下的BMP0.BIN (注:为防止编译产生资源ID引用错误,应在编译代码之前先编译资源),,文本资源,原始文本资源位于Resourceinputstringid目录下excel文件unicodeSid.xls,使用office excel打开进行编辑。其中一列代表一国语言。 编辑完原始文本后应另存为txt格式,且选择unicode另存为文本unicode.txt。 进行资源编译后,所有文本ID位于Resourceinclude目录下stringID.h文件,在代码中引用相应的ID即可访问其对应的文本资源。当语言发生改变时,使用相同的ID。 文本资源生成后,其目标文件是位于OutputRESOURCESID目录下的STRINGID.BIN文件 (其他小工具均位于Resourcebin目录下,请参看其说明),,仿真调试界面,,内容提要,系统和应用软件,,操作系统,RKOS是Rockchip公司自主研发的一个实时抢占性多任务操作系统,主要支持信号量和消息(邮箱)两种通信方式。 操作系统的基本调度方法是优先级调度法,,任务,RKOS的任务是一个具有独立堆栈的无限循环函数,每个任务都可以被内核或中断强占,一个任务可以不依赖其他任务单独运行。RKOS中任务的概念和通用操作系统一致. RKOS中具有五个基本任务:PriHighTask,PriMHighTask,PriNormalTask,PriLowTask和TimerTask,参与任务切换的还包括中断程序和IDLE任务, 一个优先级只对应一个任务,这些任务均由内核启动时静态创建。所有任务一直驻留在内存之中,优先级不发生动态变化。 一般地,用户不新创建任务,,任务举例,,任务的状态转换,当任务被创建后,处于就绪队列。OS TICK(5ms一次)到来之机,将就绪队列中优先级最高的任务和当前运行的任务比较,若比当前任务优先级更高,则执行任务切换,否则继续运行当前任务。 当前任务恒定只有一个,在当前任务运行的过程中,若需要等待一个条件(比如等待接受一个消息,等待申请一个信号量等),则会进入挂起状态,就绪队列中的最高任务会转入运行。 挂起的任务所等待的条件到来时(如收到了消息,申请到了信号量等),此任务会转入就绪队列。优先级满足时会即刻转入运行。,,任务的基本状态,,线程,RKOS的线程是包含在某个任务之内的一个可独立处理消息的程序,一个任务可以包含有多个线程。线程没有独立的堆栈,RKOS线程具有如下特性 同一个任务内的所有线程共用该任务的堆栈。 同一个任务内的所有线程按照注册次序顺序执行(串行),没有调度关系。 不同任务内的线程并行执行。 一个任务内的某个线程若一直等待一个条件,则此任务内的其他线程都得不到执行,但其他任务内的线程可以得到执行。 线程有少数几个是系统初始化时自建的,如GUI线程和刷屏线程,始终驻留在系统之中,用户的需要用到时,不需要再建立,只需要将代码嵌入在其中即可,如GUI系统。 使用RockAppCreateThread动态注册一个线程(关联到一个应用程序)。注册时给出线程名和所属任务的优先级,若注册成功,返回一个线程句柄。注销时只需要提供线程句柄。,,线程函数写法,线程函数本质上是一个处理消息的函数体,具有固定的类型和参数,如下图是一个刷屏的线程,处理三个消息,,线程的运行,线程的运行是在该线程的任务中进行,当任务收到消息时,会将消息分发给注册在本任务的线程,分发函数如下,即从线程列表中逐一取出线程回调函数,依次调用并将消息传递给线程,若该线程响应了此条消息,则不继续往下一线程派发,否则一直派发到最后一个线程。,,线程被任务调用,,操作系统消息,消息用于线程(或任务)之间的数据传递,可传送任意长度的数据。其接口是: RockOSSendMsg (* msgBox , Msgid , msg ) 发送消息 RockOSReceiveMsg(* msgBox , Msgid, msg ) 接收消息 消息传递的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论