嵌入式是硬件还是软件,我是学习嵌入式专业的,都能考啥证书啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式是硬件还是软件,我是学习嵌入式专业的,都能考啥证书啊相关的知识,希望对你有一定的参考价值。
我是学习嵌入式专业的大专学生,我知道现在嵌入式这行很火,但是我们是专科还能行吗,怎么才能学好嵌入式专业啊,都能考什么证书啊,我对这个行业很渺茫,根本不知道毕业之后要干什么工作能挣多少钱,想考个证书,但是不知道考什么证书,都需要学习什么怎么学,谢谢大家指导
嵌入式既有硬件也有软件。学习嵌入式专业可以考ARM工程师资格证书。
嵌入式工程师认证考试过程:
第一阶段:Linux相关知识指导
Linux基础,X-Windows基础,Ubuntu环境,shell环境,VI/VIM,文件管理和权限,用户管理。
第二阶段:手臂相关知识指导
Arm系列处理器,Arm体系结构,指令与编程技术,图像文件与分布式加载,GPIO,MMU,通用flash原理与设计。
第三阶段:Linux内核相关知识指导
嵌入式开发环境的建立、Linux内核基础、字符设备、中断原理和应用、调试技术、U-BooT移植和内核移植。
空管试验场:硅谷核心微技术园南中心
扩展资料:
嵌入式系统以应用为导向,以计算机技术为基础,软硬件可定制,适用于功能、可靠性、成本、体积和功耗要求严格的应用系统。它一般由四部分组成:嵌入式微处理器、外围硬件设备、嵌入式操作系统和用户应用程序。它用于控制、监视或管理其他设备。
嵌入式软件工程师是编写嵌入式系统的工程师。
要求:
1、最重要的是C编程和C++,这与你的阅读程序、应用程序、开发项目和系统移植密切相关;
2、操作系统:Linux、wince等,其中至少有一个已经学习过,需要有很多基础知识;
3、对arm、FPGA、DSP等硬件有较好的理解。
参考资料来源:
百度百科-ARM工程师资格证书
百度百科-嵌入式软件工程师
参考技术A嵌入式是硬件还是软件都有,科研考软件工程师。
嵌入式系统是一种控制、监控或辅助机器和设备运行的设备。它是一个存储在ROM中的控制程序的嵌入式处理器控制板,是一个专用的计算机系统。所有具有数字接口的设备,如手表、录像机、汽车、微波炉等,都使用嵌入式系统。
嵌入式裁剪,支持开放和可扩展的架构;有统一的驱动接口;操作简单,简单,友好的图形界面和图形用户界面;嵌入式系统一旦开始运行,就不需要过多的用户干预,稳定性强。嵌入式系统与具体应用是有机结合的,其升级换代与具体产品同步进行。
扩展资料:
注意事项:
嵌入式软件架构的常见类型。
1.控制周期
在本设计中,软件有一个简单的循环,它调用各个子例程,每个子例程管理一个硬件或软件。中断通常用于设置令牌或更新寄存器,这些寄存器可以被软件的其他部分读取。系统使用一个简单的API来允许和禁用中断。
2.积极的任务
使用非抢占式任务系统,从一个抢占式计时器或其他中断运行,系统突然变得非常不同。任何一个任务的代码都有可能损坏任何其他任务的数据,因此它们必须是切分的。必须使用同步策略(如消息队列、信号量或非阻塞同步机制)来控制对共享数据的访问。
3.微核和外核
微内核通常由分配内存和在不同线程之间切换cpu的操作系统内核来组织。用户模式流程实现了文件系统、用户界面等主要功能。外部内核使用普通的子程序调用进行高效通信,系统硬件和软件都是可用的,可扩展的。
参考技术B 1: 嵌入式是硬件还是软件首先,嵌入式有软件,也有硬件,嵌入式软件主要是写嵌入式应用程序,驱动和系统。而硬件主要设计板子,画PCB等等。
--------------------------------------------------------------------------------------
2:我是学习嵌入式专业的,都能考什么证书啊
有个证书是《嵌入式系统设计师》考这个证书是为了评职称,而不是为了找工作,因为找工作这些证书的帮助基本没有不大,企业不看重这些证书。嵌入式系统设计师的一天考试分为上午和下午部分,两部分的考试方式、试题难度、考点分布和复习方法都是不同的。这次我们讨论的是嵌入式系统基础知识,我本人觉得,这部分出下午大题的可能性不大,主要是分布在上午的75道选择题之中。
------------------------------------------------------------------------------------
3:我们是专科还能行吗,怎么才能学好嵌入式专业啊
我们专科生当然也可以,我也是专科生,我现在也是在嵌入式工作,也是自学的,不要因为我们是专科生而否定自己,要相信我们自己。 我把我的学习经历写出来和你分享下,为我们专科生做点贡献,希望能帮到你。
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。
一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在百度知道看到一篇让我很鼓舞的文章《如何学习嵌入式》,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。
主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。
后来我又找到一份很好的视频,是在嵌入式学习网推出的一份视频《嵌入式视频教程--零基础手把手教你学嵌入式》,里面的教程还不错,很完整,可以让我从基础的开始学起。视频不便宜啊,但是我也忍了,毕竟买几本书都要几百了,何况他们还有半年的技术咨询和服务,算值了。
======这里我就不给出他们的网址,如果你也想要嵌入式视频的话,那就自己去百度搜索:零基础手把手教你学嵌入式。
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。
接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。
这两个月,除了吃饭睡觉,我几乎都在学习。因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,同时我不懂的就问,这里真的很感谢他们的技术客服对我的任何问题都是耐心的解答,每天都我几乎都有好几个问题问他们,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。
最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右
我觉得自己差不多入门了,会做一些简单的东西了。我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
最后祝愿所有想学嵌入式的朋友更早的入门!
---------------------------------------------------------------------------
加油!!!记住,我们专科生也可以很优秀,也可以学好嵌入式,关键是你要不断的努力。本回答被提问者采纳 参考技术C 这个问题很复杂。嵌入式既有硬件也有软件。课程比较多,模电、数电、单片机、微机与接口技术、汇编语言、C/C++编程、操作系统、数据结构、.net、Java、传感器技术、自动控制等等,电子和计算机相关的课程都可以作为专业课。但是不同的方向有不同的侧重点。至于怎样才能学好,这个不好说,个人建议,主要学好单片机和C/C++。
虽然嵌入式这行现在很火,但是有关就业和能挣多少钱的问题,那就不好说了。主要看你的技术和以后的发展,不要想一毕业就拿个年薪几十万的,没有这个可能。主要就是,嵌入式这个行业,只要你学得精(主要是精一个方向,不可能通吃的),发展是很好的。
关于考证,目前国家的资格证书有嵌入式硬件工程师和嵌入式软件工程师,其它的企业的资格证书就五花八门,太多了。其实嵌入式是个很宽泛的概念,很多证都适用于做嵌入式的,如电子工程师证、程序员等。建议考嵌入式软件工程师,这个属于软考的一个方向,就是全国统一的软考。 参考技术D 嵌入式从概念上讲是软硬一体!要想掌握必须有两方面的知识。目前没有权威的认证考试,不过可以考一些嵌入式操作系统的认证考试,如RedHat linux的认证。这一本很艰难的,如果你是一个专科生,建议不要进这行!
《单片机傻瓜篇》
以计算机相关专业角度学习单片机
本人为软件工程专业,接触计算机硬件学习较少,以一个嵌入式非专业角度,入门学习。对于一个要求红黑树都要能敲出来的专业,对于这种面向寄存器编程,是比较简单的,大家可以很快入门(写代码而言,想外设学习,自己组装硬件还学专业地学习电子相关知识)如有错误请见谅。使用普中51-单核-A2学习。本学习笔记适合人员:计算机相关专业、或者有熟练的C语言编程学习经历的勇士!
单片机针脚
C51系列单片机有4*8=32个针脚。p0,p1,p2,p3三个寄存器,每个寄存器大小为8位,干什么用的呢?这些针脚只有两种状态即0(低电平)与1(高电平)。我们可以通过写程序,通过编译器生成CPU的一条条指令,烧录到里面去。我们通过对针脚的高低电平进行逻辑判断,再通过一系列状态对针脚状态做出改变。
举一个例子,比如查看某个针脚状态,读到了1,可以假想(另一个针脚上连着电机),我们改变针脚状态,让电机转起来。
总之完单片机编程玩的就是寄存器,我们也可以称它为针脚编程。为什么使用C语言写的呢,而写我们好像都是用的一个叫做keil的软件。其实我们的C语言代码没有跑在单片机上,CPU认识的东西叫做指令集,其实就是一串串0-1编码。一条条执行,跑了起来,keil就是做其中的转换的一个编译软件,将我们写的C语言单片机代码转换为CPU可以认识的一条条指令。有人肯定想问:我们不用C语言不行吗,当然可以,如果你能写一个自己的编程语言,做这样的转换,也许下一个革命的人就是你呢。
那个银亮色的晶振什么鬼
人们都说单片机的心藏是那个叫晶振的东西,晶振有什么用呢。上面我们提到,CPU认识需要执行一条一条的指令,但机器怎么知道一条条执行呢,我们可以傻瓜式想想,晶振发出脉冲信号,没发一次单片机就会执行一条或多条指令。我们后面会学到单片的中断、定时器,晶振每隔固定时间发出信号,那么我们就可以利用它来知道经过了多长时间。管它什么鬼呢,把硬件交给搞硬件的,我们先专心写我们的面向针脚编程吧。
C51程序界的Hello World
#include <REGX52.H>
void main()
{
P2=0xFE; //1111 1110
while(1)
{
}
}
我们通过控制寄存器存储的值,来改变针脚的状态,后面为什么有一个while(1){}呢,单片机程序与我们现在windows、Linux C程序不同,电脑上的程序运行一次就结束了。单片机如果程序运行完后、它会从头再来。所以我们让单片机卡死在哪里就好了。
LED灯闪烁实现
怎样实现延时呢?没错我们可以暴力解决,让它运行一段循环不就行了嘛。我们可以使用stc-isp软件来生成延时代码片段。我们要知道,晶振就像一个定时的东西,每隔一个固定的时间片段就会发出脉冲信号,让我们的单片机CPU指令,一条条执行(形象地描述,原理太复杂了,恐怕要读一整本计算机组成原理)
#include <REGX52.H>
#include <INTRINS.H>
void Delay500ms() //@12.000MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2=0xFE; //1111 1110
Delay500ms();
P2=0xFF; //1111 1111
Delay500ms();
}
}
我们改变的个针脚的状态,交替执行,转态变化 0__1__0__1__0__1…,这样不就闪烁起来了吗。
LED流水灯实现
流水灯这不过,是一排灯按照按顺序点亮,灭掉,下一个点亮,灭掉…而已。我们按一定的逻辑来控制一个寄存器的位的状态就好了。
#include <REGX52.H>
#include <INTRINS.H>
void Delay500ms() //@12.000MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2=0xFE;//1111 1110
Delay500ms();
P2=0xFD;//1111 1101
Delay500ms();
P2=0xFB;//1111 1011
Delay500ms();
P2=0xF7;//1111 0111
Delay500ms();
P2=0xEF;//1110 1111
Delay500ms();
P2=0xDF;//1101 1111
Delay500ms();
P2=0xBF;//1011 1111
Delay500ms();
P2=0x7F;//0111 1111
Delay500ms();
}
}
虽然这是一种傻瓜式流水灯,但我们能实现功能就好了。就像做实物一样,不管用了什么技术,就像有一个网站,java做服务端,C++做服务端。做为一个使用者,谁会没事关注这些东西呢。
延时函数可复用
我们不能需要用到多长时间的延时,都去创建一个函数吧,为何不把延时函数加个参数,来实现呢
#include <REGX52.H>
void Delay1ms(unsigned int xms); //@12.000MHz
void main()
{
while(1)
{
P2=0xFE;//1111 1110
Delay1ms(1000);
P2=0xFD;//1111 1101
Delay1ms(1000);
P2=0xFB;//1111 1011
Delay1ms(100);
P2=0xF7;//1111 0111
Delay1ms(100);
P2=0xEF;//1110 1111
Delay1ms(100);
P2=0xDF;//1101 1111
Delay1ms(100);
P2=0xBF;//1011 1111
Delay1ms(100);
P2=0x7F;//0111 1111
Delay1ms(100);
}
}
void Delay1ms(unsigned int xms) //@12.000MHz
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
使用按键
如果一个开关一边接到了针脚上,另一端接上1(高电平),当我们地的开关闭合时,那么针脚状态就是1,开关断开,则是0 ,我们可以去检测针脚状态来进行逻辑控制
#include <REGX52.H>
void main()
{
while(1)
{
if(P3_1==0 || P3_0==0) //如果K1按键或K2按键按下
{
P2_0=0; //LED1输出0,点亮
}
else
{
P2_0=1; //LED1输出1,熄灭
}
}
}
使用按键保存状态
#include <REGX52.H>
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
void main()
{
while(1)
{
if(P3_1==0) //如果K1按键按下
{
/*
1\\ /1
\\ /
\\ /
0\\----/0
*/
Delay(20); //消除下坡上坡影响
while(P3_1==0); //松手检测
Delay(20); //延时消抖
P2_0=~P2_0; //LED1取反
}
}
}
利用左移右移
左移:右边补0,例:00000001<<3 -> 00000010;按位左移运算符。左操作数按位左移右操作数指定的位数(在低位补 0)。左移运算符,num << 1,相当于 num 乘以 2(每左移一位就相当于乘以一个 2)。
按位右移运算符。左操作数按位右移右操作数指定的位数(如果该数为正数,则高位补 0 ,若为负数,则高位补 1)。右移运算符,num >> 1,相当于 num 除以 2(每右移一位相当于除以一个 2)。
#include <REGX52.H>
void Delay(unsigned int xms);
unsigned char LEDNum;
void main()
{
P2=~0x01; //上电默认LED1点亮
while(1)
{
if(P3_1==0) //如果K1按键按下
{
Delay(20);
while(P3_1==0);
Delay(20);
LEDNum++; //LEDNum自增
if(LEDNum>=8) //限制LEDNum自增范围
LEDNum=0;
P2=~(0x01<<LEDNum); //LED的第LEDNum位点亮
}
if(P3_0==0) //如果K2按键按下
{
Delay(20);
while(P3_0==0);
Delay(20);
if(LEDNum==0) //LEDNum减到0后变为7
LEDNum=7;
else //LEDNum未减到0,自减
LEDNum--;
P2=~(0x01<<LEDNum); //LED的第LEDNum位点亮
}
}
}
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms--)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
编写自己的头文件与多文件编译
与C语言知识相同、不做过多阐述。
以上是关于嵌入式是硬件还是软件,我是学习嵌入式专业的,都能考啥证书啊的主要内容,如果未能解决你的问题,请参考以下文章