RK2706播放器启动代码简述与点亮背景灯

2011-10-20 20:25 [复制链接] 6 6153

首先看启动代码:
; P# i: s) V* j; O5 j% m3 Y常见的设置频率,Cache等请各位自己参考datasheet,启动代码中值得注意的是中断采用了二级跳转.因为ARM核的关系,中断来临会跳到0x00000000(及附近).然而我们的用户代码是位于0x60000000,如不在0x00000000地址处放上新的跳转代码,中断来临便会跑飞.所以启动代码得实现复制特定向量表到0x00000000地址的功能.
; r! K/ `) T; u& o& ?+ g: L此表如下:! K: S, `2 J. E; y- U% }
int_table.jpg
; f8 ?8 \- L, P! \复制上表代码如下:
1 ]5 Q% g- J" m0 z copy_table.jpg
0 i0 m1 @* P/ J还要特别注意的是,MDK下进入main函数得用:
9 S1 ^7 U+ h$ p& N9 b7 x main.jpg
; g2 A8 [. r6 z这样才会正确初始化RW与ZI段.) p& V# s! ^. [$ j) m

' |( \; n% }8 j1 P这里不以串口为例子是因为串口对于RK2706播放器来说是无意义的(而且并不是所有人会拆机).因为其复用功能的关系(同时也是LCD D16与LCD D17),并且RK2706播放器的LCD为18bit,既串口与LCD是互斥关系.: q1 l' ^4 l6 Z7 Q- Y- {1 }' d
查看原理图得知控制背景灯的为PD4.
* t7 t% f$ ^$ D" k) Q b.jpg
/ ]; b! t" h% V3 g5 e9 H根据datasheet,编写如下函数:
  1. #include "rk27xx.h"
  2. void main(void)
  3. {
  4.         int num;
  5.         /* PD4 配置为输出 */
  6.         GPIO_PDCON |= (1<<4);
  7.         while (1)
  8.         {
  9.                 /* PD4 输出高电平 */
  10.                 GPIO_PDDR |= (1<<4);
  11.                 num = 10000000;
  12.                 while (num--);
  13.                 /* PD4 输出低电平 */
  14.                 GPIO_PDDR &= ~(1<<4);
  15.                 num = 10000000;
  16.                 while (num--);
  17.         }
  18. }
复制代码
编译并生成bin,利用rk27laod工具下载到0x60000000运行.看到背景灯已经闪起来表明已成敲开RK2706的大门了.(注意这里可以使用本版的MDK工程,要自己新建工程朋友如对工程选项部分有疑问请自行参考本版MDK工程)
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2012-4-8 15:53:00 | 显示全部楼层

RK2706播放器启动代码简述与点亮背景灯

看到学习系统的便宜方案了,谢谢!
使用道具 举报 回复
发表于 2012-4-8 16:18:03 | 显示全部楼层

RK2706播放器启动代码简述与点亮背景灯

附件在哪儿?给看不?
使用道具 举报 回复
发表于 2012-4-8 20:26:26 | 显示全部楼层

RK2706播放器启动代码简述与点亮背景灯

附件在哪儿?给看不?
打包的代码在本板块的其它贴子里面有下载。
使用道具 举报 回复
发表于 2014-10-24 15:09:57 | 显示全部楼层

RK2706播放器启动代码简述与点亮背景灯

楼上是想楼主跑进电脑来给你当编译器?
使用道具 举报 回复
发表于 2018-1-25 09:58:55 | 显示全部楼层
666,厉害了。
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|RT-Thread开发者社区  

© 2013-2017 上海睿赛德电子科技有限公司 沪ICP备13014002号-1

Powered by RT-Thread

快速回复 返回顶部 返回列表