嵌入式系统基础S3C6410与LCD接口设计S3C6410裸机开发--LED.docxVIP

嵌入式系统基础S3C6410与LCD接口设计S3C6410裸机开发--LED.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统基础延伸阅读 嵌入式系统基础 S3C6410 裸机开发--LED 学习单片机,嵌入式系统的爱好者都是从点亮LED 开始的,大家都也形成了这样的一个习惯性思维,其实这是熟悉一款单片机或微处理器的最好的起步方法,GPIO 对于 微处理器来说是相对简单但有时最基本和最重要的,所以,从LED 开始学习,可以很好的熟悉这款微处理器的一些特性和编程方法,好了,下面就开始实现 S3C6410 的LED 点亮之路。 首先是熟悉 开发板的硬件电路,知道LED 是怎样的电路构成,与微处理器是怎么连接的,我以OK6410 为例,其他开发环境都大致一样。 打开原理图,找到LED 与微处理器的电路连接,如下: 可以发现,OK6410 的GPM0~3 与LED 相连,那就可以直接让引脚输出高低电平控制LED 亮或者灭了,但是还要查看 S3C6410 的手册来分析 GPIO的 寄存器和编程方法, GPM 端口有三个寄存器,是要设置为 output 模式,然后再GPMDAT 数据寄存器中设置相应端口电平的高低就可以让对应端口输出高低电平了,有了这些,就可以写程序了,如下: 定义了三个宏,然后就可以在C 函数中调用了,当然,此时还不能直接使用C 环境,首先做的是要编写启动文件 start.S [cpp]? \o view plain view plain? \o copy copy .globl?_start?? _start:?? ?? /*?硬件相关的设置?:?把外设的基地址告诉CPU?*/?? ????/*?Peri?port?setup?*/?? ????ldr?r0,?=0? ????orr?r0,?r0,?#0x13?? ????mcr?p15,0,r0,c15,c2,4???????@?256M(00x7fffffff)?? ?????? /*?关看门狗?*/?? /*?往WTCON(0x7E004000)写0?*/?? ?????? ????ldr?r0,?=0x7E004000?? ????mov?r1,?#0?? ????str?r1,?[r0]?? ?? ????/*?设置栈?*/?? ????ldr?sp,?=8*1024?? ????bl?main???/*?调用C函数?*/?? halt:?? ????b?halt???? 这样就可以使用熟悉的 main.c 文件了,然后再main 函数中调用初始化,然后while()循环执行: [cpp]? \o view plain view plain? \o copy copy #include?led.h?? ?? void?main()?? {?? ????unsigned?int?cnt;?? ?? ????LED_Init();?? ?????? ?????while(1)?? ?????{?? ??????????LED_ON(LED);?? ??????????for(i=0;i0xffff;i++);???//delay?? ??????????LED_OFF(LED);?? ??????????for(i=0;i0xffff;i++);???//delay?? ??????}?? }?? 好了,代码就写好了,可是还差一步,别忘了我们是在linux环境下,没有IDE ,所以编译的过程得靠自己来做,这就是编写Makefile: [cpp]? \o view plain view plain? \o copy copy led.bin:?start.o?main.o?? ????arm-linux-ld?-Ttext?0?-o?led.elf?start.o?main.o?? ????arm-linux-objcopy?-O?binary?led.elf?led.bin?? ????arm-linux-objdump?-D?led.elf??led.dis?? ?? start.o?:?start.S?? ????arm-linux-gcc?-o?start.o?start.S?-c?? main.o?:?main.c?? ????arm-linux-gcc?-o?main.o?main.c?-c?? ?? clean:?? ????rm?*.o?led.elf?led.bin?led.dis?? 注意,如果你的编译器和我一样,是 4.3.2,那么上面的Makefile 就可能有问题,编译是不会通过的,如果通过。。。。那就通过吧,如果不通过,就吧arm-linux-gcc 命令后面加上条件 -nostdlib就可以了,如:arm-linux-gcc -nostdbli -o start.o start.S -c, 其

您可能关注的文档

文档评论(0)

WanDocx + 关注
实名认证
文档贡献者

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档