比前途,还是嵌入式开发比软件开发更胜一筹

比前途,还是嵌入式开发比软件开发更胜一筹

55084bc8b4d1622b8b7e6c8f81653c4a.png

\\\插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我(禾厶-亻言-手戈)免費的。最近比较闲,带做毕设,带学生参加省级以上比赛///

c19d70f87b5ec5517994cff56d81ca1c.png

嵌入式开发门槛高,波及的知识面广,既要求懂硬件,又必需能写软件,而软硬件波及的知识体系却又是异常的庞大;并且进修这些短期内看不到成绩,须要坚持数年,执着在一个领域深耕。

具备根本的电路知识,了解常用元器件、芯片,能看懂原理图,作为嵌入式软件开发人员也必需懂一些硬件设计方面的知识;

具备一定的MCU设计与应用才能,从单片机到ARM再到DSP,能够依据客户要求设计产品;掌握至少一种单片机的编程与使用,假如常见的STM32,后期能够涉猎FPGA;

进修C语言,掌握根本的数据类型、指针、构造体等;了解根本的MCU外围模块,SPI、I2C、UART、GPIO、ADC、PWM、Timer、FLASH等原理,能依据硬件原理以及芯片手册编写裸机设备驱动程序;掌握常用工业通讯协议假如CAN、Modbus等;

进修至少一种操作系统,包括但不限于uCOS、FreeRTOS、RT-Thread、Vxworks等,并且一定要进修嵌入式linux的使用与编程,搞明白多任务调度、信号量、邮箱等的原理与使用;

进修linux平台下的设备驱动程序设计,掌握字符设备、块设备、网络设备的驱动框架,并能够熟练设计这些设备驱动,假如ADC、UART、SPI、GPIO、Camera等等,视频驱动框架一定要搞懂V4L2;

进修GUI设计,具备根本的嵌入式产品GUI设计才能,能够进修Qt,它的跨平台特性很合适嵌入式开发;当然也能够转到App设计开发;

进修多线程编程,搞明白线程池原理并应用到实际产品中;具备高并发网络通信编程才能,熟练掌握epoll以及libevent的使用和设计;

掌握至少一种数据库编程才能,嵌入式能够进修SQlite;

掌握C/C++编程语言,能够设计linux平台下的应用程序以及后台效劳程序,并涉猎其他编程语言,能够进修Python;

修炼内功,学好数学,进修各种编程算法,掌握常用数据构造以及算法

c456cc618150f00cd4685c7141dcf9b2.pngb55136d5cc69adc5736b1485abc5174f.png

绿色图标【‟で】liutianwang123

的原理和实现,链表、队列、排序、查找等;掌握常用滤波算法及其实现,比如一阶互补滤波、卡尔曼滤波等;掌握PID原理与算法实现;

以上即是嵌入式软件开发的路线,当然不一定适合每个人,但总体来讲掌握这些对以后的进一步发展有很大帮助。

嵌入式软件开发人员的从业范围也是异常的庞大,小到家用电器,大到工业航天设备等都有嵌入式的存在。比如手机、电视、冰箱,比如航天飞机、通信卫星、人工智能、无人机、移动机器人、无人驾驶、激光雷达、智慧医疗、医疗仪器、可穿戴设备、物联网等,也包括一些工业嵌入式产品,比如电力设备、新能源设备、汽车、发电、通讯等等,可以说只要需要微处理器的地方都离不开嵌入式。

对于嵌入式软件开发来讲,懂得必须要多,但更要专;要做T字形人才,在一个领域深耕,才能有好的发展,切勿浅尝辄止,好高骛远。

要找到自己的兴趣点,喜欢无人机,那就在飞行控制算法方面做深入研究;

喜欢图像处理,那就在图像处理算法方面多深入研究;

喜欢人工智能,那就在机器学习、深度学习方面做深入研究;

喜欢汽车电子,那就在汽车领域深入研究;

总之,嵌入式不是一蹴而就,需要数年的坚持与执着,要想在嵌入式任何一个领域精进,都不是一件容易的事。

猜你喜欢

转载自blog.csdn.net/l16756062003/article/details/124934761
今日推荐