完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
前言:1年前就萌生了学习嵌入式的想法,当时买了一个ARM9(mini2440)的开发板,由于种种原因,拖了一年都没学成,今年7月份终于暗下决心,趁着还不算太老,趁着对嵌入式还有很强的兴趣,还不快拼一把,不然等着老了后悔。
上一周咨询了资深的嵌入式工程师学习嵌入式的路线和方法,他建议从裸机开始,因为之前有一些51单片机和C语言的基础,于是一周内猛看,打算一周把mini2440的硬件裸机都搞懂,没想到事与愿违,ARM裸机还是和51单片机有很大的差别的,如下附上学习笔记: 20160711:ARM汇编中,进入子函数的指令是BL(自动保存返回指针至LR),2440init.s中是这么写的: [ :LNOT:THUMBCODE ;if thumbcode={false} bl main L代表logic变量 bl Main ;Don't use main() because ...... b . ;注意小圆点 ] ;//if thumbcod={ture} [ THUMBCODE ;for start-up code for Thumb mode orr lr,pc,#1 bx lr CODE16 bl Main ;Don't use main() because ...... b . ;注意小圆点 CODE32 ] 首先判定是否是ARM模式还是Thumb模式,然后进入Main。本以为这应该就没问题了,可是点击Make,发现主函数没有被编译,仅编译了init.s和lib.c文件,最后没办法,和正常运行的init文件作对比,发现在最开头有这么一句IMPORT Main,意思应该是告诉编译器,下面要有可能要调用Main函数,编译器才会知道,类似于C语言,如果子函数放在Main函数下面,编译会出错,必须在Main函数之上也要声明一下。搞定了,LED,按键,Uart终于可以跑起来,下一步搞中断。 |
|
相关推荐
7 个讨论
|
|
|
万里长征第一步,几年前买的2440,都吃灰了,经过几年的技术积累现在再拿起来学习感觉轻松了。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard-文件I/O的深入学习之阻塞I/O与非阻塞I/O
307 浏览 0 评论
大神们,想知道你们都用什么ide编程调试器? Arduino IDE?还是 e2studio ?还有其他吗?哪个好用呢
459 浏览 0 评论
825 浏览 0 评论
790 浏览 0 评论
飞凌嵌入式ElfBoard-文件I/O的了解探究之复制文件描述符
717 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 15:53 , Processed in 1.010676 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2818