第一篇:嵌入式学习总结
一.为什么学习嵌入式?
1.就业前景
近几年,嵌入式系统产品日臻完善,并在全世界各行业得到广泛应用。嵌入式系统产品的研制和应用已经成为我国信息化带动工业化、工业化促进信息化发展的新的国民经济增长点。
随着消费家电的智能化,嵌入式更显重要。像我们平常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等,都是典型的嵌入式系统。据预测,随着Internet的迅速发展和廉价微处理器的出现,嵌入式系统将在日常生活里形成更大的应用领域。
在中国,嵌入式软件发展过程中,政府已充分认识到它的重要作用,并在政策、资金等方面给予了大力支持。2004 年国家发改委、科技部、商务部联合颁布的《当前优先发展的高技术产业化重点领域指南》,把嵌入式软件产业作为国家发展的一个重要领域。
最近几年来,中国的嵌入式软件发展速度一直高于中国软件产业的发展速度和全球嵌入式软件的发展速度,在中国软件产业和全球嵌入式软件产业中所占的比重越来越大。目前,中国嵌入式软件产业在整个软件产业中的比重已经超过了三分之一强。
从2006年至2010年,中国嵌入式软件产业规模仍将保持快速增长态势,年均复合增长率为25.8%,到2010年将达到3339.6亿元的规模。
中国嵌入式软件产业的发展面临着良好的发展环境与机遇,这包括政府的重视与扶植、信息产业与传统产业的融合机遇、垄断局面尚未形成、中国制造的良好基础、自由软件运动的兴起等等。
同时,不可否认的是长期以来,由于人才、宣传、资金等诸多问题以及嵌入式本身所特有的软硬结合特性,使嵌入式软件人才一直处于供不应求的状态。
2.自身发展
嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。
一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。
另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责
开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头“可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。
二.怎样学习嵌入式?
1.ARM嵌入式开发领域
包括什么?
软件开发
操作系统以下的底层偏硬件驱动
在简单操作系统如uC/OS-II之上的程序开发
不包括什么?
硬件设计
类似Linux这样操作系统以上的纯应用开发
2.ARM基础知识
#1.ARM体系结构:
Load/Store体系,Big/Little Endian大小端格式,RISC/CISC指令集,Pipeline流水线
#2.ARM工作模式:
7种工作模式:USR,SYS,SVC,IRQ,FIQ,UND,ABT;其中5种异常模式#3.ARM寄存器:
37个寄存器:R0-R12, R13(SP),R14(LR),R15(PC),CPSR(SPSR)
#4.ARM异常:
7种异常,异常向量表,异常优先级,异常处理程序,处理器现场,现场的保存和恢复
#5.AMBA总线:
AHB(高性能总线),ASB(系统总线),APB(外设总线)
#6.ARM内核技术:
TrustZone,Jazelle,NEON,Thumb-2,SIMD,MMU,MPU
#7.JTAG标准:
IEEE1149.1,TDI,TDO,TCK,TMS,TRST,边界扫描链,H-jtag,Banyan,GiveIO
#8.ARM内核分类:
ARM7TDMI,ARM926,StrongARM/XScale,ARM10,ARM11,Cortex-(A/R/M),SecurCore
#9.ARM汇编指令:
mov,add,sub,b,bl,ldr,str,ldmfd,stmfd,mrs,msr,swi,mrc,mcr#10.MMU内存管理单元:
VA/PA,I-Cache/D-Cache,Write Buffer,Context Switch,CP15,TLB,AP,Domain
Access Control,Cache Coherence
#11.ARM芯片外设控制器:
Memory Controller(内存控制器),WatchDog(看门狗),GPIO(通用IO),UART(串口),Timer(定时器),Interrupt Controller(中断控制器),Nand Flash Controller,Clock & Power Management(时钟和电源管理),DMA(直接存储访问),USB Controller,LCD controller,ADC,IIC,IIS,SPI,AC97,Camera,MMC/SD#12.最小系统:
处理器,时钟,电源,PLL锁相环,存储器,通讯端口,外设接口
存储器件
SRAM,SDRAM,Nor Flash,Nand Flash
#13.ARM处理器:
Samsung: S3C4510,S3C44B0,S3C2410,S3C2440,S3C6410,#14.SoC设计:
FPGA,CPLD,VHDL,Verilog
#15.ARM开发调试工具:
SDT,ADS1.2,AXD,RealView,KEIL MDK 4.11(RVMDK4.11)
make,hypertrm(超级终端),minicom
#16.ARM命令行工具:
armcc,armasm,armlink,fromelf
#17.嵌入式操作系统:
VxWorks,RTLinux,uC/OS-II,WinCE/WM
#18.外设驱动程序:
volatile关键字,位操作bit,时序图Timing,管脚功能Pin function,外设控制/数据/状态寄存器
#19.程序的存储,加载和运行:
RO段,RW段,ZI段,ro-base/rw-base,栈空间,堆空间,位置无关代码PIC,启动搬移代码
3.核心概念
#1.寄存器:
ARM内核寄存器
R0-R12R13(sp)R14(lr)R15(pc)CPSR, SPSR
ARM SoC 特殊功能寄存器
SFR(Special Function Register)
#2.地址
C程序中变量的“地址”:&a
SoC 特殊功能寄存器的“地址”:0x48000000
寻址方式里面的“地址”:ldr r0, [r1]
二进制指令里面的“地址”:0xE59FF018
存储芯片内部的“地址” :0x4h
操作系统之上应用程序的“(虚)地址”
CPLD器件对应的“(假)地址”
#3.异常和中断
异常是属于ARM内核体系结构的概念
中断是属于ARM SoC处理器的概念
了解软件中断(SWI)是实现操作系统提供系统调用的重要手段
了解硬件中断(例如Timer定时器)是实现操作系统时间片的重要手段
三.三个问题。
#1.为什么要编写一个Bootloader?
从根本上掌握一个嵌入式开发板底层的软硬件系统是怎样运转起来的时钟频率如何设置;看门狗所起作用,串口如何工作;通讯协议如何实现;库函数;反汇编;函数栈空间。
#2.为什么要移植一个操作系统?
了解操作系统和底层硬件之间的依赖关系,知道哪些是移植相关的部分(即接口)定时器中断(时钟节拍);异常处理和现场保存恢复;进程,进程控制块;处理器现场;进程的上下文切换;中断级别的进程切换。
#3.为什么要实现一个用户应用?
一个音频播放器;DMA控制器,Interrupt中断控制器;IIS 总线;UDA1341声卡芯片驱动;WAV/Mp3 音频文件格式;LCD液晶显示驱动;一个U盘;USB协议;FAT文件系统格式;SCSI命令集;NandFlash存储芯片驱动。
四.经典语段
经典语段一:
嵌入式技术的掌握是需要一个过程的实事求是的说,嵌入式技术的全面掌握是有相当难度的。可以轻轻松松学会嵌入式技术的说法是夸大其词了。这个就像学英语一样,学英语无论怎样学,不管是“疯狂学”还是用新理念来学,真正掌握的话还是需要一步步积累才能熟练掌握。在此,我建议大家不要想在几天内学会嵌入式,成为这方面的高手。这些想法本身是不太现实的。
现在我们需要做的是:
第一:把心踏实下来,做好打硬仗的准备。
第二:注意学习方法。尽量不要走弯路,争取一鼓作气入门。一旦入门了以后呢就好办了。嵌入式技术的掌握,本身呢就比较难,要是再走些弯路,时间上会浪费,甚至会影响学习的信心。
经典语段二:
最好的学习方法:
做项目。如果有机会大家跟着做一个难度适中的嵌入式项目,相信大家会很快入
门的。也就是说从实战之中来获得进步。但是,在我们没有嵌入式基础之前,不容易获得这样的机会。也就是说,在能力没有到之前,找个这样的工作很难。很显然呢,如果我们具备了获得这样一份工作的能力就好办了。但是,恰恰是这个阶段最难。这个就是搞嵌入式系统的门槛。这个门槛的跨越,我觉得是需要引导的。
比如有的人买了块开发板自学,上来就分析LINUX源码,结果折腾了几个月呢都没有什么收获。有的人只是掩饰了几个基本的功能,放了个MP3,玩了下如何来浏览网页,下不就不知道该怎么做了。实际上呢,学习一门技术是需要一个过程的,期间也会有一定的规律。我们具体来看。
五.学习心得
#1.嵌入式系统的范围很广,指具有计算能力的非PC系统,即具有通常使用的个人电脑的全部或部分特质的专用计算机系统。如生活中的PDA、手机、电视机顶盒、数字电视、数码相机以及工业自动化仪表、医疗仪器等。它分硬件和软件两部分,硬件以嵌入式处理器(相当于PC的CPU)为核心,外扩ROM、RAM(相当于PC的硬盘、内存条)、输入/输出设备(PC的键盘/显示器)、各种通信接口(串口、USB、网络)等。软件由引导程序(PC的BIOS)、嵌入式操作系统(相当于PC机的Windows XP)和应用程序(相当于在Windows XP上运行的程序,如金山词霸、Word等)3部分组成,或只有其中的某部分。
#2.目标要明确,不要得过且过,不要追逐热门的东西。不管在什么时候,心里都要有自己的信念和理想,不要被其他东西左右了自己。
#3要从兴趣和竞争出发,因为这才是你产生动力源的地方。学东西时,要让自己先喜欢上它,要学会享受学习它的时间,喜欢乔***的都知道,乔老爷子最常说的一句就是要享受比赛的时间。因为只有你喜欢上了它,享受了它,才不会被它所产生的压力压倒自己,不要产生一种厌恶的心理。而且心态要调整,不要一味的蛮学,死学,在没有什么兴趣学的时候可以先玩几天,在回过头来,或者用其他的方式来转换。
#4要抱着一种十年方能磨一剑的心理,扎扎实实从基础开始,不要为高速开发的一些现象所迷惑,那些都只是软件的功劳。我个人认为搞编程,英语和数学很重要,大家一定要时时的抓,至于怎么抓那就是另外一回事了,当然其他的知识也要汲取,可以多接触点天文,地理,人文方面的东西来补充自己。
第二篇:嵌入式学习总结
嵌入式学习总结
一.基本信息...................................................................................................................1 二.嵌入式系统的组成..................................................................................................1 三.嵌入式的操作系统特点..............................................................................................1 四.嵌入式系统的文件系统..........................................................................................2 五.嵌入式文件系统的特点...........................................................................................2
一.基本信息
嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。
二.嵌入式系统的组成
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY 智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。
三.嵌入式的操作系统特点
(1)可裁剪性。支持开放性和可伸缩性的体系结构。
(2)强实时性。EOS实时性一般较强,可用于各种设备控制中。(3)统一的接口。提供设备统一的驱动接口。
(4)操作方便、简单、提供友好的图形GUI和图形界面,追求易学易用。
(5)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。
(6)固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。(7)更好的硬件适应性,也就是良好的移植性
四.嵌入式系统的文件系统
通用操作系统的文件系统通常具有以下功能:
提供用户对文件操作的命令。
提供用户共享文件的机制。
管理文件的存储介质。
提供文件的存取控制机制,保障文件及文件系统的安全性。
提供文件及文件系统的备份和恢复功能。
提供对文件的加密和解密功能。
五.嵌入式文件系统的特点
1兼容性。嵌入式文件系统通常支持几种标准的文件系统,如FAT32、○JFFS2、YAFFS等。
2实时文件系统。除支持标准的文件系统外,为提高实时性,有些嵌入 ○式文件系统还支持自定义的实时文件系统,这些文件系统一般采用连续的方式存储文件。
3可裁剪、可配置。根据嵌入式系统的要求选择所需的文件系统,选择 ○所需的存储介质,配置可同时打开的最大文件数等。
4支持多种存储设备。嵌入式系统的外存形式多样了,嵌入式文件系统 ○需方便的挂接不同存储设备的驱动程序,具有灵活的设备管理能力。同时根据不同外部存储器的特点,嵌入式文件系统还需要考虑其性能、寿命等因素,发挥不同外存的优势,提高存储设备的可靠性和使用寿命。
总结:嵌入式是一门以应用为中心,以计算机为基础,软件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
第三篇:嵌入式学习
最近很多朋友都在问,如何学习嵌入式,作为嵌入式的老鸟,我想我可以做一些唠叨,嵌入式的入门门槛稍微高一点,但是再高的城墙也是小砖头筑起来的,所以没有必要因为门槛高就觉得很困难,一步一个脚印,贵在坚持就可以了。
学习嵌入式,该学习什么基本的知识呢?
首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。很多人会问,C语言要学到怎么样,我觉得这没有标准的答案。我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。
其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。
还有应该学习下linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。
还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。
最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux 代码早期的版本,比如0.12 的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程师。
至于上面说的知识如何学习呢?每个人都应该去找自己最好的方法,所谓的最好的方法就是最适合自己的方法。很多人看不进书,那就去看看视频吧。视频也应该要选择,不是随便看看,应该要有所选择,有所挑选。我也是这样一路走过来的,不过我这人比较懒,我看不进书,一看书我就想睡觉,所以这几年我都是看视频过来的,现在也算学有所成,但也不敢说是高手吧。
我在网上看到,有人把自己学习嵌入式的视频总结出来,嵌入式系列实践和视频教程,大家可以看看网址http:///viewnews-8701 我仔细看了觉得很不错,我本来也想整理下,可是奈何我自己的电脑硬盘空间才40G,没有办法,时间也是不够,心有余而力不足,我不是在帮他做广告,虽然要花钱,我觉得算不错,至少自己不用去整理和花大量的时间去找资源,当然如果网上有的下,你网速和硬盘都够的话,我建议大家自己网上下也好。想想我自己该开始学的时候,那时视频资源少之又少,我买书和买视频至少花了几千块,但是我觉得那很值,至少我现在赚回来了很多知识。
最后,希望这篇文章对热爱嵌入式,想致力于嵌入式开发的朋友有所帮助。送给大家一句简单而又朴素的话,坚持就是胜利,贵在坚持!
第四篇:嵌入式总结
一、嵌入式系统原理与应用课程总结
这个学期我学习了《嵌入式原理与应用》这门课程,虽然这个学期马上就要结束了,对嵌入式的学习也要告一段落了,但是我觉得收获还是很大的。学期开始,我开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,真是茫然无从下手。虽然一个学期的学习时间不是很长,但是我觉得对嵌入式系统也已经有了一个大致的概念。对它的历史发展与今后展望都有了一定的了解。嵌入式技术的掌握是需要一个过程的,对嵌入式技术的全面掌握是有相当难度的。如果要真正掌握的话还是需要一步步积累才能熟练掌握的,所以我们还要自己多加学习,不断地回顾以前学到的知识,也要吸收新的概念与技术,使自己的学习目标更加明确,学习方法更加完善,也体会到软件开发的乐趣,更加清楚的认识到自己在软件开发学习上的一些不足之处,并且不断改进以提高自己。
通过这门课程的学习,我了解到了嵌入式系统是一种为特定设备服务,软硬件可裁剪的计算机系统,其英文名称是Embedded System。嵌入式系统的范围很广,特点是形式变化多样、体积小,可以灵活地适应各种设备的需求。嵌入式系统的一些例子:手机、汽车、ATM、数字电视、医疗仪器等等。嵌入式系统本身是一个相对模糊的定义,一个手持的MP3和一个PC104的微型工业控制计算机都可以认为是嵌入式系统。总体来说,嵌入式系统是“用于控制,监视或者辅助操作机器和设备的装备”。一个典型的桌面Linux系统包括3个主要的软件层---linux内核、C库和应用程序代码。内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间进行会话。内核之上是C库,负责把POSIX API转换为内核可以识别的形式,然后调用内核,从应用程序向内核传递参数。应用程序依靠驱动内核来完成特定的任务。嵌入式系统的发展是从电子计算机诞生以来,计算机的发展有两个方向:一个方向是体积大型化、处理能力超强的大型计算机;另一个是向体积小型化,功能多样化的方向发展。嵌入式微控制器,即传统意义上的单片机,是目前嵌入式系统的前身。一般都是8位或者16位。嵌入式微处理器,单片机的发展时间较早,处理能力很低,只能应用在一些相对简单的控制领域。嵌入式微处理器是近几年随着大规模集成电路发展同步发展起来的。与单片机相比,嵌入式微处理器的处理能力更强,主流的嵌入式微处理器都是32位的。嵌入式微处理器在一个芯片上集成了复杂的功能,有的还把常见的外部设备控制器也集成到芯片内部。未来嵌入式系统的发展方向,随着微电子技术的发展和电子制造工艺的进步,嵌入式系统硬件的体积会不断缩小,系统稳定性也在不断增强,可以把更多功能集成到一个芯片上;同时功耗方面也不断降低。随着网络的普及和IPv6技术的应用,IPv6技术主要解决了IPv4的IP地址数目紧缺的现状,越来越多的嵌入式设备也会加入到网络中。典型的嵌入式系统的组成,嵌入式系统包括硬件和软件。硬件包括了嵌入式微处理器和嵌入式微控制器以及一些外围元器件和外部设备;软件包括了嵌入式操作系统和应用软件。嵌入式系统硬件种类繁多,有许多硬件和软件的解决方案,不同嵌入式系统软硬件很难兼容,软件必须修改而硬件必须重新设计才能使用。不仅如此,我们还要对软件硬件都有所了解才可以逐渐有所领悟。软件和硬件都是学习嵌入式系统必不可少的方面。其实我现在仍旧觉得在嵌入式系统这个博大精深的领域,我还有太多太多不懂的地方,需要学习的还有很读。嵌入式软件开发应用广泛而且前景很好,目前正处于人才紧缺的关口,嵌入式技术在未来能够得到更加广泛的应用。学好嵌入式,C语言很重要,所以感觉自己有必要在学习、积累一下这方面的知识。很多东西的学习不死一帆风顺也是比较耗时的,嵌入式也不例外,要想学好还必须下大力气,还必须坚持。这次的课程让我明确了一点:嵌入式开发对于提升我们的系统知识有很大的帮助,尤其是操作系统的知识。嵌入式系统开发对于我们的知识面要求非常的广,且要有一定的深度。,平时上完理论课很少有时间上机进行时间或者隔几天才上机练习,等到上机时一些东西可能遗忘了,比较耗费时间。在课上,有老师在前面演示我们感觉看得懂或感觉没问题,可轮到我们独立完成的时候,因为实际操作的少,跟着问题就来了。有些即使老师讲了很多遍的问题,我们不会,老师还是会走进我们给我们耐心的指导,还给我们讲一些学习的方法,一些软件开发需要注意的细节,让我们知道自己在哪方面不足,需要加强,也让我们了解到哪些需要认真的学习,那些是重点,不是没有方向的乱学一通,结果什么也学不好。经过这次的课程,我真真确确地感受到了嵌入式在我们生活中工作中的运用,这些软件、程序能让我们提高工作的效率,更直观更便捷的切入主题。当然,在学习的过程中并不是一帆风顺的,在这之中,因为要操作的东西很多,有时错一步,后面的结果就无法显示,而自己的水平根本检查不出来是哪里出了错。这时候,老师都会耐心的过来帮助我们一起去解决。在平时我们就需要好好的查阅书籍或者上网搜集相关资料去解决问题。
在了解了基础知识的情况下,我们还同步地进行了上机操作,当然,其中遇到很多的难题,很多东西都是第一次接触,又没有很多的指导操作,主要还是要凭借自己去摸索练习。其中的困难可想而知。然而坚持就是胜利,只要坚持做下去。通过这学期的实验课程,我感觉收获还是蛮多的。可能我对于嵌入式的知识学习的还是不太多,但是这之外的东西收获颇丰。它让我学会了如何通过自己的努力去认知一个新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获,正所谓“一份耕耘,一份收获”。没有付出,何谈回报呢?再者,通过这学期的实验课程,我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。当我们通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。
其实,我觉得最大的收获不仅仅是我学习到了多少知识,还有学习给我的感悟。首先是心态。一定要有一个积极的心态,独立解决问题的意识,培养扎实基础的认识。不要什么东西都感觉跟简单,很多东西可能是看似简单,就不去做了或者不屑一做,以至于性网上搜搜就可以了,这样很不好。有自己的东西有自己的付出才会有程序运行成功时的喜悦和小自豪,这样也有助于培养自己的兴趣。要时刻牢记态度决定一切。其次是兴趣,感觉学习工作中兴趣很关键,只是一个引发人积极性的问题,有了兴趣就自觉了,效率自然就高了。再次要敢于尝试和挑战。不要安于现成的程序,而且不要害怕失败,在程序调试的过程中这点尤为重要,“发现出问题然后解决问题”是一个积累经验的过程,而且很高效。最后要不懈追求。对于源代码进行不断的完善,要尽可能的实现课题所要求的功能。对于初学者或者开发较少的人来说,大量大写程序还是有必要的,但同时要注意思考,理解其实现的内在意义。还可以自己添加一些有意义的功能来实现。当看到自己编写的程序正常运行时,兴趣也会随之而来,乐此不疲,形成一个良性循环。我相信在以后的学习工作中,我也会端正自己的学习态度,一丝不苟的去对待每一件事。只有做好足够的准备,才能事半功倍!
第五篇:嵌入式linux驱动学习总结
调用gcc: export PATH=$PATH:/usr/local/arm/3.4.1/bin 用gcc编译:arm-linux-gcc –o run adc.c 查看gcc: arm-linux-gcc –v 配置NFS 安装NFS Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序: sudo apt-get install nfs-kernel-server 安装nfs-kernel-server时,apt会自动安装nfs-common和portmap 这样,宿主机就相当于NFS Server 配置NFS(1)配置portmap 方法1: 编辑/etc/default/portmap, 将-i 127.0.0.1 去掉.我用的是第一种方法!但不知道具体什么意思
方法2: $ sudo dpkg-reconfigure portmap , 对Should portmap be bound to the loopback address? 选N.(2)配置/etc/hosts.deny 禁止任何host(主机)能和你的NFS服务器进行NFS连接,加入: ### NFS DAEMONS portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL(3)配 置/etc/hosts.allow 允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以192.168.2开头的主机(连接到NFS服务器上),也可以指定 特定的IP地址,加入: ### NFS DAEMONS portmap: 192.168.1.lockd: 192.168.1.rquotad: 192.168.1.mountd: 192.168.1.statd: 192.168.1./etc/hosts.deny 和 /etc/hosts.allow 设置对portmap的访问.采用这两个配置文件有点类似“mask”的意思.现在/etc/hosts.deny中禁止所有用
户对portmap的访问.再在/etc/hosts.allow 中允许某些用户对portmap的访问.sudo /etc/init.d/portmap restart 重启portmap daemon.(4)配置/etc/exports NFS挂载目录及权限由/etc/exports文件定义 比如我要将将我的/opt/FriendlyARM/mini2440/root_nfs目录让用户的IP共享, 则在该文件末尾添加下列语句:
/opt/FriendlyARM/mini2440/root_nfs *(rw,sync,no_root_squash)NFS客户端能够共享NFS服务器/opt/FriendlyARM/QQ2440/root_nfs目录内容.且有读,写权限, 并且该用户进入
/opt/FriendlyARM/mini2440/root_nfs目录后的身份为root 最好加上sync, 否则 $ sudo exportfs-r 时会给出警告, sync是NFS的默认选项.showmount-e 查看NFS server的export list.若更改了/etc/exports, 运行 sudo exportfs-r 更新
运行 /etc/init.d/nfs-kernel-server restart 重启nfs服务
(5)测试NFS 可以尝试一下挂载本地磁盘
我前面开始时已经提到了我的主机IP是192.168.1.101 我现在试把/opt/FriendlyARM/mini2440/root_nfs目录挂载到/mnt目录下 mount-t nfs 192.168.1.101:/opt/FriendlyARM/mini2440/root_nfs /mnt 就101和:之间的空格我耗了1个小时
成功的挂载上的话你会在/mnt目录下看到root_nfs这个文件夹下的内容
Arm9之家账户:李向阳85 安装ncurses
ncurses是字符终端下屏幕控制的基本库。可能很多新开发的程序都不使用了,不过如果要编译一些老程序,还经常遇得到。
安装:ncurses
http://ftp.gnu.org/pub/gnu/ncurses/
./configure--without-debug #以及其它自己需要的参数
make
make install
3,继续你的make menuconfig。
图形界面出来了。
允 23:22:22
小允 23:22:31
小允 23:22:40 有用不同的名字的吗 寂寞沙洲冷 23:22:42 我把drivers下面的Makefile都添加上了 寂寞沙洲冷 23:23:17 叫misc devices 可以吧 小允 23:23:22 2410ADC_driver和2410ADC_FEATURESnengbutongma 小允 23:23:33 这两个必须一样 小允 23:23:42 这才是Kconfig的工作原理