在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 2418|回复: 0

[原创] 如何掌握嵌入式软件开发 嵌入式软件开发都学什么

[复制链接]
发表于 2018-2-23 17:01:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

如何才能从事嵌入式软件开发岗位,怎样才能符合企业需求,对于过完年想要找工作的朋友们来说,是几个比较关心的问题,那么创客学院的老师就跟大家简单介绍一下企业中必备知识点。

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内核的平台的相应开发。对于起步晚的同学,也不要怕,没有什么不可能。

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

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-11 00:35 , Processed in 0.017516 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表