【入门必备】如何玩嵌入式?

嵌入式是一个很流行的开发模式,前几年Android还没出来的时候那是老火了。这几年被Android开发的风头盖过了。其实Android的本质开发也是嵌入式开发,只不过人家Goolge强悍,屏蔽的硬件差异,统一的开发工具,让大家都能轻轻松松开发软件。开发一般App java就搞定了,但是要开发高性能游戏等用java开发就有点跟不上效率了,但Android有jni开发,这个就完全跟嵌入式开发一样了,只是一些调用方式跟传统的嵌入式开发有些不同。

嵌入式开发首先必备技能c/c++, 没有之一。c/c++即能很好的跟底层硬件打交道,程序执行效率那也是刚刚的。基础的东西,那是一定要学扎实,没有基础, 那都是花把势。所以嵌入式学习必要学习c/c++。我们今天的重点不是强调和阐述如何学习基础,如何学习c/c++的。所谓基础是前提,有前提的后面的才有保障。

学习嵌入式有两个方向,一是硬件方向,一个是软件方向。

硬件方向:

第一步: PCB设计,拿个芯片解决方案公版改改电路,换换零件,设计自己的电路,做自己的产品。

第二步: SOPC技术,一般为FPGA,CPLD开发,利用VHDL等硬件描述语言做专用芯片开发,写出自己的逻辑电路,搞个简单的外围芯片还是可以的。

第三步:整个arm架构,学学习习arm指令,看看芯片手册,搞搞bootloader。

第四步:玩玩系统移植,写写驱动这个已经上一个层次了

第五步: SOC设计,这是硬件设计的核心技术:芯片设计。能做到这步,已经不属于平凡的技术人员。

软件方向:

嵌入式的核心是什么,软件。系统驱动就那些,相对来说已经趋于稳定,软件才是硬件的灵魂。那么学嵌入式到底要学些什么呢?又啰嗦一遍,嵌入式软件开发要学习c/c++,除了基础语言开发我们还需要学习掌握很多东西。

1、会玩linux系统

linux系统博大精深。要想会玩那也是需要下工夫的。基本命令会不会,简单脚本能不能写。

2、调试手段

说道这个也是一个重要指标,嵌入式开发不同于pc开发,在pc上断点跟踪代码什么的都十分方便,在嵌入设备上就比较麻烦了,串口,文件等这些是我们常用的调试手段,找问题基本上是看打印输出。

3、环境配置

嵌入式开发要想顺利,配置各种环境也是必需,没环境搞啥!学嵌入式开发要不停的折腾,环境配置虽然是个力气活,没它你还真干不了活。

4、开源移植

为什么它也是嵌入式学习必备,前人搞了好多开源的项目,我们拿来为我所用,不仅能加快开发,还能学习和借鉴很多东西,让自己快速成长。好多优秀开源项目。你去弄了学习了,你就会懂的。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-08-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DT乱“码”

连接数据库操作

package com.chendongj.dbUtil; import java.sql.Connection; import java.sql.Drive...

2139
来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1421
来自专栏james大数据架构

C#日期格式转换

DateTime dt = DateTime.Now; // Label1.Text = dt.ToString();//2005-11-5 13:21:25 ...

1995
来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

26410
来自专栏calmound

JDBC

import static org.junit.Assert.*; import java.sql.Connection; import java.sql.D...

2754
来自专栏吴小龙同學

时间工具类TimeUtil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30...

3226
来自专栏c#开发者

简体-繁体内码转换API

 public class ANSIConversionAPI     {         const int SIMPLIFIED_CHINESE =...

3695
来自专栏吴伟祥

Java Calendar 类的时间操作 原

Calendar 的 month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示。

873
来自专栏跟着阿笨一起玩NET

GB2312转换成UTF-8与utf_8转换成GB2312

2291
来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2960

扫码关注云+社区