打印
[ARM入门]

嵌入式开发入门指引

[复制链接]
788|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
呐咯密密|  楼主 | 2022-5-1 14:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、入门

C语言:嵌入式编程大多用C语言,少量汇编,C语言必须熟练掌握。

电路:基本的模拟电路、数字电路知识,能大概明白电路原理图;掌握从原理图到PCB板的技能或常识;会焊接、调试,使用常用仪表。

51单片机:虽然落后,但学习相对简单,IO、中断、定时器,AD、Flash、UART、IIC等基础;辅以简单的开发板练习,巩固基础、原理。

C51基础,会看datasheet,使用官方库或寄存器设置,能实现中等难度的裸机程序;达到这个能力,后续换其它型号也容易举一反三,快速掌握。

2、进阶

ARM单片机:8位单片机是基础,升级32位ARM是阶段目标,一般选STM32,资料丰富。基于原厂库函数实现复杂功能,对接外设,如蓝牙模块、GPS模块等,数据采集过滤、存储、传输等。理论方面比如编译、链接、OTA、socket等也需要明白。

实时操作系统:裸机开发是基础,要提高必须跑系统,如freerRTOS 、rt-thread等。学会移植,使用系统接口开发复杂功能,尽量研究下RTOS的源码,其数据结构、编码规范是学习的参考资料。注意软件分层与模块化思想。

应用层:掌握一定的C++或QT基础,开发一些辅助工具,也可快速验证纯软件逻辑,见识面向对象开发的思维。其它语言如perl、shell、python、批处理都可以学个基础,能一边百度一边写出就行。

正式项目一般基于原厂SDK开发,非通用芯片使用特有的开发环境、调试工具等,有了前面基础,新平台1-3周足以应付。做项目和学习的专注点不同,要求的是稳定、性价比,不追求技术的先进性。

学习中总结失败教训,梳理开发流程、技巧,整理成技术文档,加深理解,这些文档不仅对自己,对其他人也是财富。

3、规划

具备一定基础了,后续发展看个人爱好或市场需求,软件或硬件或全栈,相比来说嵌入式软件需求大。其下细分单片机开发支持RTOS实时系统或者Linux,前者容易,后者需求大,但入门难,即使精通一个组件或方向也能发展不错。Linux路线,先学会应用开发,再驱动,最后深入内核。

基本上规划大概率决定了职业方向,尽早规划,提前准备,有针对性的学习RTOS或者Linux或者硬件电路,后续往深度发展。如果不适合技术路线,有点基础再从事市场营销也大有裨益。

除技术之外,嵌入式开发对行业经验也有一定要求,不同行业应用的技术侧重点不同,可以参考相关公司的招聘要求,有针对性的去了解。

选择比努力重要,同样是软件开发,不同行业也存在较大区别。第一份工作尽量选个好方向、挑大公司,有这些起点背景,后续发展会更好;最开始的方向和平台没选对,后面再折腾会走很多弯路,也许一生的职业发展就在错误的路上,再努力也很难达到一定高度。

4、个人感想

以前有个困惑,有的老年人做饭一辈子,可是烧菜的水平还是有限;一些烹饪技校的学徒,几年时间后做出的饭菜明显高于一般家庭主妇。这个问题的答案,用著名程序员沃兹基硕德的解释就是“持续学习、与时俱进”。

社会在进步,技术在更新,不断接触新的,不一定都要亲自动手实践,能评估可行性,知道大概如何实现即可,有需求时再深入细节。

“三人行,必有我师焉;择其善者而从之,其不善者而改之”,不论哪种职业,要善于总结、学习周围人的长处;嵌入式系统开发方向繁多,只要肯专研,精通一门,成为食物链顶端的人,人生轨迹都不会差。


使用特权

评论回复

相关帖子

沙发
yangjiaxu| | 2022-10-26 22:17 | 只看该作者
入门属实需要C语言,而且最好配合学好硬件电路方面的设计,但不建议学习51单片机了,最好直接学习32位单片机,因为现在32的已经很有性价比了,且开发较为简单,51在现实中做产品基本以小家电为主,如果不从事小家电行业的话,不学也是可以的了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:苏州澜宭自动化科技嵌入式工程师
简介:本人从事磁编码器研发工作,负责开发2500线增量式磁编码器以及17位、23位绝对值式磁编码器,拥有多年嵌入式开发经验,精通STM32、GD32、N32等多种品牌单片机,熟练使用单片机各种外设。

480

主题

3778

帖子

47

粉丝