学嵌入式的谁没迷茫过?
上来就想啃 Linux 驱动结果连个 LED 都点不亮即便是点亮了也是不知道里面的门道就好比拿了驾照会开车就是不知道发动机的原理如果学习按顺序来别跳关不然分分钟给你干自闭。先从最基础的搞起别好高骛远。先把电路那点破事儿整明白电压电流电阻别搞混示波器会用能看懂个波形就行再把 C 语言的指针、内存给我玩溜了不然写代码全是野指针比如某个函数在中断里面调用直接崩掉死活都想不明白是什么问题debug 到天亮都没用。说白了就是先搞懂 “软件怎么领导硬件”这步没走通后面全白搭。接着摸单片机从 8 位到 32 位都行推荐 STM32资料多到你看不完。先从 GPIO 玩起点亮个 LED按个按键高低电平来回折腾慢慢就摸透芯片的脾气了。然后搞定时器和中断别再傻乎乎地用 while (1) 死等了让芯片学会 “该干活的时候醒没事干就睡”这才是嵌入式的精髓效率直接拉满。这个时候就应该会看懂一些基础的电路原理图了数据信号和控制信号至少要搞清楚。等你能让芯片听点话了就该让它 “社交” 了——要开始看一些协议通信部分的东西了。UART 串口打打日志I2C 连个温湿度传感器读读数据SPI 搞个高速 Flash 或者屏幕再用 ADC 把模拟信号转成数字 —— 这时候你才发现原来芯片和外界吹牛逼都是有路子的全靠这些协议在牵线。之后再去啃 MCU 内核和架构看看 Cortex-M 到底是怎么跑代码的存储映射是咋回事儿这时候再看芯片手册就不会像看天书一样了。当然调试工具得用熟JTAG、SWD、printf 日志轮番上别再靠 “猜” 来排错那效率低到想砸键盘。低速信号就不应该出现玄学的问题。裸机玩腻了就该试试更复杂的系统了。FatFs 管管文件LwIP 连个网再整个 RTOS 玩玩 ——FreeRTOS 、RTT也好uC/OS 也罢说白了就是让芯片能同时干好几件事儿任务调度、信号量、消息队列这些玩意儿就是让多任务别打架有条不紊地跑起来。这时候你会发现原来嵌入式开发也能这么 “有条理”再也不用在 while (1) 里堆屎山了。当然可以自己写一个调度器的话这对你理解多任务是有帮助的。要是单片机已经满足不了你了就往嵌入式 Linux 冲吧。搭交叉编译环境裁剪内核做根文件系统看着 Linux 在开发板上跑起来那感觉跟点亮第一颗 LED 一样爽。然后写驱动字符设备、平台总线、设备树挨个撸搞懂 Linux 是怎么管硬件的。再搞搞网络编程TCP/IP、Socket 玩明白让设备能在网上传数据。物联网火了就去对接云平台MQTT、HTTP 往上怼让设备能上报数据、接收指令这不就是个智能硬件了嘛。最后再整个 LVGL 做个界面搞搞音视频让设备看起来更有人味儿别冷冰冰的像个砖头。最后所有知识最后都得落地到项目里——不量产的代码写得再好都不能转换成人民币。从需求分析到选型从代码优化到电源管理再整个 OTA 升级远程更个新把零散的知识点串成一个完整的系统。不管是做个智能家居、工业网关还是啥别的玩意儿做完一个项目你才会发现之前学的东西都串起来了原来这玩意儿也没那么难。嵌入式学习哪有什么捷径就是别瞎跳步别想着一口吃成胖子。从点亮 LED 到跑起 Linux从裸机到 RTOS一步一步踩稳慢慢就从啥也不懂的小白变成能 hold 住复杂系统的工程师了。这路上坑肯定不少bug 多到想骂人但每次调通一个 bug、跑通一个功能的那种爽感只有搞嵌入式的人才懂。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425272.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!