完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
有人说我目前已经熟悉了STM32,飞思卡尔等单片机,想再学一学ARM,有价值吗!
其实学嵌入式,不在于你会多少芯片,而更重要的是嵌入式程序设计思路,编程方法。比如循环队列,循环缓冲区等。如何接收中断程序效率最高? 51单片机系列和ARM系列,只是一个工具。要根据实际的项目去选择。当然,会的芯片越多,上手其他的更容易。但是我觉得,重点还在于嵌入式软件的编程思想。比如函数代码和变量的可移植性,如何定义变量,尽量不要使用全局变量,如何更有效的记录日志等等。推荐基本书吧。林锐的《高质量程序设计》。 如果是学习arm的话,ucos嵌入式操作系统是必须要学习一下的。而且它的代码开源,想要学习操作系统原理的同学,还是可以分析一下代码的。教材的话,可以看看这本书。 《嵌入式实时操作系统UC/OS-11原理及应用》 学会了ucos,怎么能不顺便学习一下Linux呢。Linux的多线程调度,线程进程间通信等等,推荐一个开源代码,mjpg-streamer,可以折腾一下,可以获取USB摄像头的数据,然后通过网页等途径访问摄像头。这个代码设计的也很不错,学习Linux的同学可以看一下。 对的,还有数据结构也是很重要的,比如如何自己使用C语言实现一个队列? 最近再搞嵌入式的程序,使用的是STM32,纯裸机编程。越来越明白一个好的架构的重要性了。所以想近期看一下ucosii的内核源码,学习一下架构设计相关的知识。比如说,如果写一个命令行AT指令解析的程序,应该如何编写呢,如何设计架构才更有利于后面指令的扩展呢?技巧性的东西真的是博大精深。正在慢慢的爬行在这无边无际的海洋中。自己以为到了大海,其实,只是一个臭水沟罢了。路还很长。。。。。。。。 如何学习嵌入式软件开发呢?这个问题好从自己大学说起。记得大二的时候接触51单片机,感觉这个东西使用起来好费劲,还设置各种寄存器,配置各种参数。当有一本书出现的时候,我豁然开朗了。这本书的名字叫《嵌入式软件程序设计,使用MCS-51》。这本书上介绍了很多我们常用到的一些单片机的功能和外设的控制。我需要使用单片机实现一个什么样子的功能,只需要找出相关代码,组合一下就OK了。so easy! 单片机的路,就这么慢慢走着。比如控制步进电机、直流电机、舵机等。如何控制超声波测距、温度传感器等。这种设备的代码都是烂大街的,一抓一大把。 顺便说一下,玩转嵌入式之前,C语言还是必须要搞定的。通过了计算机二级考试,可并不能证明你C语言合格。小平同志说过,实践是检验真理的唯一标准。多练手吧。《杜拉拉升职记》中也有一句话说的很正确,你能从书本上获得10%的经验,能够从前辈身上获得20%的经验,剩下的70%的经验都是从实践中得来的。 后面开始接触STM32和Atmel的一款ARM7芯片,一对比才发现,STM32的例程好丰富,各种都给你写好了,又和学51单片机一样,找到了诀窍了。瞬间就可以搞定各种功能,实现各种小玩意。大四的时候也参加了《CCTV机器人大赛》。 上了研究生之后,开始学习Linux,也不是自己想学,单纯是为了实验室项目的需要才不得不接触Linux,后面研究生也主要是在用Linux。期间也使用STM32做过一些项目。在这期间才学会了使用循环缓冲区的方式处理串口数据。此时,才真正静下心来思考,如何才能设计一个比较好的嵌入式软件架构。在代码编写中,也逐渐开始使用队列等结构。 有一次找工作面试,被面试官问到函数指针的用法,才把注意力放在函数的指针上。PS:函数指针和指针函数有啥区别呢。 还是那句话,不是说底层不重要,而是不能把所有经历都放在会多少个芯片上。别人问你的I2C的时候,是问你的协议,而不是说你用过哪些芯片的I2C。最近在创业公司写一个系统,代码量已经到达80K(不要吐槽代码量不大,因为功能有限,又不是做一个火箭),基本功能就是GPS定位,GPRS数据通信,三轴检测等等。使用的外设都是基本的外设,串口、AD、中断等等。业务逻辑是一个重点,GPS和GSM模块的驱动也是另一个重点,还有一个比较重要的是低功耗方面。 在编程方面可以借鉴的地方罗列一下,仅供参考。 1、添加了一个终端串口打印函数,对printf进行重新封装,可以直接打印时间,打印信息的分类和打印内容,便于通过标志位选择性的输出你所需要的打印信息。 2、添加了AT指令的调试接口,可以通过串口终端发送AT指令获取系统的各个参数和变量的状态,并且可以出发某些事件,便于调试和查找问题。这些在系统正式上线的时候砍掉即可。 |
|
相关推荐
|
|
thanks
for your sharing |
|
|
|
|
|
787 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
888 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
608 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
905 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核源代码的目录结构和文件说明
821 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:51 , Processed in 0.851635 second(s), Total 85, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号