OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2250|回复: 0

如何掌握嵌入式软件开发 嵌入式软件开发都学什么

[复制链接]

4

主题

5

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2018-2-23
在线时间
1 小时
发表于 2018-2-23 17:15:00 | 显示全部楼层 |阅读模式
如何才能从事嵌入式软件开发岗位,怎样才能符合企业需求,对于过完年想要找工作的朋友们来说,是几个比较关心的问题,那么创客学院的老师就跟大家简单介绍一下企业中必备知识点。

如何掌握嵌入式软件开发 嵌入式软件开发都学什么

如何掌握嵌入式软件开发 嵌入式软件开发都学什么

1、数字电路:学习这方面的知识主要是了解一些基本的电路知识,如门电路、逻辑电路、存储器、寄存器,为了更好的理解嵌入式芯片,存储器,外围设备的工作原理。
2. 编程语言:C/C++语言和汇编C语言的语言特性相对简单,主要的知识点在于结构化,函数,数组,指针。但是嵌入式开发对C语言应用的要求会更高。要对内存分配,文件访问,寄存器访问,预处理指令,中断处理程序等要相当熟悉,这些都是在使用中要注意的细节问题。C语言对程序的优化也很重要,而这些往往是需要从全局去考虑。汇编一般是和处理器的指令集相关的,可以更好的去理解处理器的工作原理,往往是用在一些需要效率的地方,如系统的初始化。汇编或许已经不是主流的工程编程语言,但是嵌入式软件工程师一定会在相关场合用到它。汇编作为符号语言,要记忆相对大量的符号命令,编程的时候也会感觉缺少结构性的美,会比较枯燥。对于学习C++,嵌入式软件工程师不可避免得会接触到网络编程,加之C++语言支持面向对象编程,学习它也是为了学习一种编程艺术,所以很有必要。
3. 数据结构和算法数据结构在嵌入式开发中也很重要,我曾错误得认为做嵌入式不需要太过重视数据结构知识。然而操作系统里的很多实现都大量运用了具体的数据结构和算法。基本的数据结构需要掌握,如各种链表,树,图等等;而算法的学习需要数学知识作为铺垫,用计算机语言去实现。对于软件从业人员来说,算法终究是一个工具,在实际应用时再深入挖掘也可。学习数据结构知识的时候,最好运用C语言来实现,同时思考它对应的内存模型。(大一的时候我的数据结构停留在伪代码学习阶段,从来没有去实现过,可见后来要补起来多么痛苦)
4. 操作系统嵌入式产品应用比较广泛的是LinuxWinCE。但操作系统的内部设计原理都是殊途同归。首先要去学习的是操作系统原理,去了解进程通信、内存管理、文件系统等几个重要的部分,因为这些在软件开发尤其是内核驱动开发时会用到。接下来可以去熟悉至少一种主流的操作系统,Linux是一个很好的选择,去了解它的内核架构,设备驱动架构,如何去编译,裁剪,编写应用程序,以及如何使用在具体的嵌入式设计上。(一开始就上手Linux估计比较费劲,可以先结合stm32学会运用uC/OS,对操作系统有个宏观了解。) 
5.计算机网络网络知识几乎是所有软件开发岗的基本知识,编写一些需要联网的嵌入式设备应用时,你会不可避免的要用到TCP/IP协议簇。在学习这些的时候,你会发现协议规范都只是一种对数据的封装约定,作为嵌入式工程师,你需要同时加深其他协议,例如IICSPIUARTCAN等等协议的思考。
6. 软件工程基础这些是软件开发人员的必备知识,面试的时候会经常问你,你的项目相对庞大,你是怎么设计、管理和测试你的项目的。
7. 开发平台嵌入式的开发平台不局限于一种操作系统,因此要熟悉LinuxWindows操作系统下的命令、编辑器及开发工具,这一点往往被很多人忽视。举个例子,Linux下的程序员开发环境往往是按自己的习惯搭建,熟练掌握一种编辑器如Vim/Emacs可以大幅度提高工作效率。磨刀不误砍柴工。
除了掌握嵌入式软件开发必备的知识,必备的实践是必不可少的,我建议的是,早起步,多比赛,多实践,精通51单片机C语言编程,同时熟悉stm32ARM9ARM内核的平台的相应开发。对于起步晚的同学,也不要怕,没有什么不可能。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 00:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表