嵌入式开发

嵌入式从入门到精通的学习攻略

好久不见. 提交于 2020-02-29 19:30:41
近几年,嵌入式系统产品渐渐完善,并在全世界各行业得到广泛应用。2004年,全球嵌入式系统产品的产值已达2000亿美元,国内嵌入式软件的产值也达到600亿人民币。据预测,随着Internet的迅速发展和廉价微处理器的出现,嵌入式系统将在日常生活里形成更大的应用领域。 嵌入式软件工程师学习路线推荐: 一、嵌入式软件编程的基础 这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常用命令、C语言编程基础、常用的数据结构。 特别是C语言中对指针的理解和应用。信盈达小编告诉你这一阶段的主要目的是学习编程语言、开发环境、和培养自己的编程思维,为进一步学习嵌入式开发打下良好的基础。 必学内容有:Linux Ubuntu操作系统安装、使用、Linux常用命令、samba服务器、SSH远程登录GCC编译器、GDB调试器、VI编辑器。 1、嵌入式C语言高级编程 2、C数据类型、控制语句 3、C程序结构设计、数组、函数、预处理: 4、指针及字符串操作 5、结构体、共用体、宏、枚举 6、文件I/O操作 嵌入式中物联网开发学习 1、了解物联网、泛在网、互联网基本要领及其关系 2、熟悉RFID从低频段到高频段的基本工作原理,以及RFID标签的种类与行业应用,读卡器原理与通信过程 3、熟悉TI的cc2530的基本应用,包含基本硬件资源,协议栈相关接口使用,以及点对点通信、星形通信

嵌入式课程作业1

僤鯓⒐⒋嵵緔 提交于 2020-02-27 09:51:08
#CPU体系结构的种类特点及应用场合 一、ARM ARM架构,过去称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。 特点: 体积小、低功耗、低成本、高性能;支持 Thumb ( 16 位) /ARM ( 32 位)双指令集,能很好的兼容 8 位 /16 位器件;采用RISC体系结构,大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定;对于不同系列的ARM有各自的特点。 应用领域: 工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展。 网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。 消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。 成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。 二、X86/Atom

嵌入式研发工作划分

别来无恙 提交于 2020-02-17 11:45:04
什么是嵌入式研发 嵌入式研发的标志是:软件研发和硬件研发相互配合。 互联网是固定硬件平台,纯软件开发;机械是没有软件,纯硬件开发。 当今的大部分电子,除去硬件部分就是软件,大到电冰箱,电视,小到遥控里面都是由软件来控制的,为了更通用和自由定制,交由软件控制会越来越多。 工作划分 一个电子产品的研发工作由四部分组成。 硬件研发;主要将硬件平台设计出来。 驱动研发;驱动研发主要工作是在不同系统上驱动硬件工作,不限定于特定系统,驱动研发既需要知道各种硬件知识,各种总线,数据如何传输,也需要知道软件知识,操作系统如何将数据传递给应用层,但是对操作系统的各种纯软件机制不需要过多了解。 平台开发;主要是操作系统开发,稳定,应用支持,纯软件,对操作系统各种机制要了解透彻。 应用层研发;主要实现各种业务逻辑,面向用户。 当前大部分公司情况 当前大部分公司会把工作2和工作3合并,统称为BSP研发。 对于大公司,员工能力较强,做驱动的大部分虽然是学电子的,懂硬件较多点开始,软件知识不足,但是工作中或学习慢慢的对操作系统软件机制也熟系了。 对于中小公司,工作没有划分清晰,员工能力较差,做驱动的电子出身不是很懂操作系统的各种纯软件机制,认为是软件问题;应用层研发认为自己只负责各种业务逻辑,认为操作系统问题是平台问题,应该由驱动解决,工作就会出现互相推脱,研发工作做不大。 来源: CSDN 作者:

从进一步了解Java开始

坚强是说给别人听的谎言 提交于 2020-02-12 11:39:04
Java2平台三个版本: 1.J2SE(Java Standard Edition标准版)用于开发桌面应用程序 2.J2EE(Java Enterprise Edition企业版)用于开发分布式网络程序,如电子商务网站和ERP系统 3.J2ME(Java Micro Edition微缩版)主要用于嵌入式开发,如手机和PDA的编程 J2SE是基础; 压缩一点,再增加一些CLDC等方面的特性就是J2ME; 扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。 J2EE是JAVA2企业开发的技术规范,它不仅仅是比标准版多了一些类 又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。 来源: https://www.cnblogs.com/onemorestep/p/12293065.html

微软最新嵌入式界面开发技术(Silverlight for Embedded)

ε祈祈猫儿з 提交于 2020-02-12 09:36:11
前言 从微软的嵌入式 Roadmap 图可以看到,Cashmere 代号很可能是微软即将发布的 Windows Embedded CE (08年又被改名为 Windows Embedded Compact )的R3版本的代号,Chelan 代号很可能是2010年发布的Windows Embedded CE 7.0版本的代号。 自从前年R2版本的发布到现在,Windows Embedded CE 已近很久没有大的变化了,Cashmere 版本给我们带来了不少亮点,比如系统集成了 Adobe FlashLite、Gesture,优化了网络协议栈等。相关新闻请看 这 ,但是这些新闻的真实性我不敢保证。 本文的目的在于和各位学习讨论微软平台上的嵌入式界面开发技术:Alchemy(微软内部称号,对外名称为:Silverlight for Embedded)。目前确定的是Windows Embedded CE R3版本上将支持这个最新技术,很可能在Windows Embedded其它产品上也支持这个技术,所以标题我用嵌入式替代了Windows Embedded CE,桌面系统WPF、Silverlight如此多的资源也让我们相信这一点。微软总会想办法让它的技术在它的平台上通用,让其平台下的程序员当起来不是那么的辛苦。 如果你想交流的话我的QQ:3423 67 776。 目录

嵌入式底层驱动相关知识点总结

ぐ巨炮叔叔 提交于 2020-02-08 01:11:20
嵌入式底层驱动程序一般都是C 语言编写的,若想做驱动开发还要懂硬件相关的知识。软件开发分为win CE下及linux下开发,有操作系统的移植开发,驱动开发和应用软件开发。 用户态和内核态的区别和联系 操作系统需要两种CPU状态:内核态(kernel mode),运行操作系统程序,操作硬件;用户态(User mode):运行用户程序。 CPU两种状态之间的转换 用户态 -->内核态:通过中断、异常、陷入机制(访管指令) 内核态–> 用户态: 设置程序状态字PSW。 内核态和用户态的区别 处于用户态时 : 进程所能访问的内存空间和对象受到限制,其所处于占有的处理器是可被抢占的; 处于内核态时:可以访问所有内存空间和对象,且所占有的处理器不允许被抢占。 来源: CSDN 作者: Sunny的地盘 链接: https://blog.csdn.net/weixin_42648229/article/details/104215161

嵌入式开发——git clone,git add, git commit,git gui,git push代码库环境配置测试

ぐ巨炮叔叔 提交于 2020-01-28 08:03:47
1.安装linux下git环境 1)git安装成功,如下图 sudo apt-get install ssh sudo apt-get install git 2.生成并提供pub文件,待管理员给予仓库权限 1)生成ssh公钥pub文件如下图。 3.clone仓库,仓库路径为xingchen/xc_ipc 如下图 4.从仓库分支topic_new_XC_4MP上拉取源码 拉取命令git pull origin topic_new_XC_4MP 5.在topic_new_XC_4MP最新修改点创建个人新分支topic_new_XC_4MP_wg 创建命令git branch topic_new_XC_4MP_wg 6.切换到topic_new_XC_4MP_wg分支,确保所有操作都在topic_new_XC_4MP_wg上进行 7.在改分支任意路径新建test.txt文件,并依照提交步骤完成新增文件的本地提交(操作截止到commit,勿做push提交) 8.对test.txt文件内容做修改,并依照提交步骤完成文件内容修改的本地提交(操作截止到commit,勿做push提交) 9.删除test.txt文件,并依照提交步骤完成删除文件的本地提交(操作截止到commit,勿做push提交) 10.使用gitk和log,查看自己的本地更新记录,并将完整结果截图 gitk截图 git

嵌入式图形用户界面uc/gui在nios II上的移植

谁都会走 提交于 2020-01-20 01:16:47
嵌入式图形用户界面uc/gui在nios II上的移植 uc/gui是一个优秀的嵌入式图形用户界面,这几天的工作就是将它移植到nios II系统上。前人也做了一些工作,不过大部分都是针对其他硬核处理器,针对nios II软核处理器的移植资料那简直是凤毛麟角。在阅读了相关文档后,我决定自己亲自动手实践,这下面的很多过程都是自己摸索出来的,并通过了实验的验证。这只是一个初步的移植,也许在以后的更复杂的应用中,还需要对其进行调整。但对目前我的应用而言,应该足够了。 写这篇文章的目的一是由于自己记性不好,所以需要给自己留个备忘,免得以后忘的一干二净;二是给有需要的朋友提供一些参考,也好相互交流,共同进步。请大家多提宝贵意见。 一、源码和文档下载 http://www.ucgui.com/ 上有很多不同版本的源码下载,目前能下到的最新版本是3.98,不过还有一些组件不是很完整,但作基础开发已经够用了。 ucgui3.98源码下载地址:uC-GUI-V3-98.zip。 ucgui最新版用户手册下载地址:uC-GUI-user.rar。 开发软件:quartus II 6.0, Nios II IDE 6.0。 二、移植过程 先来看看解压后都有些什么东西: 如图,核心的东西包括Config和GUI两个文件夹,这里面是ucgui的所有源码和配置文件。ConvertColor包含彩色转换函数

am335x嵌入式开发-GPIO操作

限于喜欢 提交于 2020-01-18 03:41:48
原创v4bot 最后发布于2016-02-20 14:11:57。 GPIO编号: GPIO的所有操作都是基于编号的,可以说编号是一个GPIO的ID,TI AM335x系列处理器GPIO的编号规则如下: pin_num=bank_num∗32+pin_bank_numpin_num=bank_num∗32+pin_bank_num pin_num=GPIO编号pin_num=GPIO编号 bank_num=GPIO块编号bank_num=GPIO块编号 pin_bank_num=GPIO在GPIO块中的子编号pin_bank_num=GPIO在GPIO块中的子编号 AM335x系列SOC有4个bank,每个bank有32个GPIO,一共支持 32∗4=12832∗4=128 个GPIO,GPIO的bank表示方法为: bank0[0:31] bank1[0:31] bank2[0:31] bank3[0:31]。例如芯片上有一个pin为gpio2_3, 则这个pin的GPIO编号为:number=2∗32+3=67 将GPIO映射到sysfs文件系统: # echo 67 > /sys/class/gpio/export 设置GPIO模式(设置为IO口模式): # echo "7" > /sys/class/gpio/gpio67/mode 设置GPIO方向(输入或输出): #

嵌入式到底该怎么学

孤街醉人 提交于 2020-01-18 00:27:43
前言  其实一直有人问我嵌入式怎么学,今天跟大家讲讲我的理解。因为嵌入式是一个泛的概念,可能很多人认为嵌入式就是嵌入式Linux。但是其实并不仅仅只有Linux, 像STM32,51单片机也属于这个范畴之内的,它们有的也可以跑协议栈,跑ucos等系统。所以其实嵌入式是有很多方向的,选择一个方向,做好,做精,都是有前途的。接下来,跟大家探讨一下嵌入式的一些方向,和如何去学习。我以前也是摸索着过来的,没人告诉我如何学习,也没有学习线路,所以走了很多弯路。所以希望这篇文章可以帮助到一些正在学习的人,当然这些内容可能有主观的东西,欢迎大家一起探讨吧。如下仅讨论软件方面 _ 。 以下内容对牛人不适用。 嵌入式方向 - 单片机开发  单片机开发在这个市场上的需求还是很大,因为制造业公司还是很多,单片机更多用在工业控制,机械控制等上面,当然也会涉及物联网。单片机有8位,16位,32位的,一般8位用得比较多的就是51单片机和STM8,32位用得比较多的就是STM32,还有NXP的芯片,比如K60,K22等。一般学完51和STM32之后,找个单片机的工作应该是没什么问题了。单片机的门槛其实并不高,但是做好也不容易就是了,可能因为门槛问题,导致薪资上面并不会特别高(能力牛逼者例外)。 - Linux应用开发  以前很多人问我“ Linux应用到底在做什么? ”。其实应用就是在做功能,在操作系统中