欢迎来到【看numpy源码】【bug源码之家】【python 算法源码】vivi源码-皮皮网网站!!!

皮皮网

【看numpy源码】【bug源码之家】【python    算法源码】vivi源码-皮皮网 扫描左侧二维码访问本站手机端

【看numpy源码】【bug源码之家】【python 算法源码】vivi源码

2024-11-26 10:47:20 来源:{typename type="name"/} 分类:{typename type="name"/}

1.当前在嵌入式系统开发中有哪些常用的源码bootloader
2.uboot和supervivi什么区别
3.我想学习arm 但还未碰过 高手能不能给我指教一下 谢谢了 能不能给我推荐一款开发板
4.学习嵌入式开发要学习哪些知识?

vivi源码

当前在嵌入式系统开发中有哪些常用的bootloader

       常见bootloader介绍

        1.U-BOOT介绍

        uboot是一个庞大的公开源码的软件。他支持一些系列的源码arm体系,包含常见的源码外设的驱动,是源码一个功能强大的板极支持包。其代码可以从/developer)

        vivi是源码韩国mizi 公司开发的bootloader, 适用于ARM9处理器。 Vivi有两种工作模式:启动加载模式和下载模式。源码看numpy源码启动加载模式可以在一段时间后(这个时间可更改)自行启动linux内核,源码这时vivi的源码默认模式。在下载模式下,源码vivi为用户提供一个命令行接口,源码通过接口可以使用vivi提供的源码一些命令,如下:

        命令

        功能

        Load

        把二进制文件载入Flash或RAM

        Part

        操作MTD分区信息。源码显示、源码增加、源码删除、源码复位、保存MTD分区

        Param

        设置参数

        Boot

        启动系统

        Flash

        管理Flash,如删除Flash的数据

        vivi代码分析

        vivi的代码包括arch,init,lib,drivers和include等几个目录,共多条文件。

        Vivi主要包括下面几个目录:

        arch:此目录包括了所有vivi支持的目标板的子目录,例如s3c目录。

        drivers:其中包括了引导内核需要的设备的驱动程序(MTD和串口)。MTD目录下分map、nand和nor三个目录。

        init:这个目录只有main.c和version.c两个文件。和普通的C程序一样,vivi将从main函数开始执行。

        lib:一些平台公共的接口代码,比如time.c里的udelay()和mdelay()。

        include:头文件的公共目录,其中的s3c.h定义了这块处理器的一些寄存器。Platform/smdk.h定义了与开发板相关的资源配置参数,我们往往只需要修改这个文件就可以配置目标板的参数,如波特率、引导参数、物理内存映射等。

uboot和supervivi什么区别

       ä¹Ÿç®—是一种实验吧。mini有两种启动方式,一种是Nor启动,一种是Nand启动。无论是哪一种启动方式都需要BootLoader,这里说的BootLoader就是Supervivi和Uboot了,关于Bootloader重要性,网上有很多资料,我就不再重复了。PS:Supervivi比较适合初学者使用,Uboot则是更加灵活,提供TFTP、NFS、串口等下载方式。

       SUPERVIVI是友善在VIVI基础上增加新功能而成的, 最主要也最是用的是增加了USB功能, 友善开发板的声明是不提供SUPER VIVI的源代码, 但提供BIN文件。

我想学习arm 但还未碰过 高手能不能给我指教一下 谢谢了 能不能给我推荐一款开发板

       1.抓住开发ARM

       这几个月来我一直都爬在的问题,自己都有一点笑自己了,用了4个月的时间,来巩固的原理和程序,还好我自己算是走过来了,自己笨,身边的高才生又看不上的原理,他们都比较“牛”,bug源码之家说过时了,你问那个做什么?我比较郁闷!过时吗?我有一点怀疑?

        他们不愿意说有他们自己的理由,没有人强求,靠自己好了。

        我自己个人的观点:是一个基础,而且还很重要,这是再我看了ARM之后感觉到的。它可以加速你的ARM学习速度,真得!不相信你试一试好了。

        凡是要求一个速度、效率,不要做一些无用功,抓紧身边的每一个一分钟,人是活的,东西(知识、书)是死得,想要做的事情因此就简单了。

       2.我在网上看到了一篇很不错的ARM文章,粘贴过来,为了和像我一样在很少有人帮助的情况下,自学ARM 的难兄难弟们。

       “ARM怎么入门”。我不是高手,仍然是菜鸟。

        但是回想起自己当时的迷茫,特意写了这篇东西,当作给和我一样的兄弟姐妹的帮助吧。问这个问题的人多半不是已经工作的工程师,而是和我一样是学生,所以这篇笔记就把看家当成我一样的菜鸟,高手勿怪。

        首先声明:本人还没有找工作,事实上处于研究生刚毕业,还没开始找工作的空闲时间,B0只是兴趣所在,打发时间。

        所有看法完全是自己的感受,不代表任何他人。错了的观点各位帮我纠正。再次补充:很多朋友看了上面的话就问我为什么研究生毕业了还不找工作:)说是打发时间,其实是因为研究生的时候带了一个项目,申请提前毕业以后项目还有块尾巴,答应导师把项目做完再走:)就这么简单。男人总点负点责,呵呵

        以下问题常被问到,python 算法源码我就想到哪说到哪吧。

       一 首先说说ARM的发展

        可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。

       广义的嵌入式无非几种:传统的什么、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。

        客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。

        DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 射象头,大到我们军品里的控制器,应用面很广。

        FPGA的兄弟一般做ANSIC(特殊芯片设计,好象是这么翻译的)。而ARM单纯说来并不比一个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。这完全依靠于ARM公司的战略,厉害!!很佩服他们的战略眼光!!

        值得注意的是:在找工作中,企业(著名的,小的不算)对单纯的ARM硬件开发工程师并不比单片机重视,很少有大企业的职位里写“从事过ARM开发优先”。写的多的是什么?“嵌入式LINUX”到这相信大家看出来了吧,需要的是硬件中的软件。

       二 ARM是硬件还是软件

        很难说,ARM是硬件,LINUX是软件。ARM的硬件多半已经模块化了,像我这样把板子改成这样的就算动的多的了,这同样是ARM公司的战略,再次佩服。

        实际中的LINUX的开发工作更多,更耗时。从这方面说ARM应该算是软件了。

        在找工作中更是这样,举个例子,联想里和ARM最接近的是“BIOS工程师”是软件,MOTO里接近的是嵌入式LINUX工程师是软件。而其他很多公司把嵌入式产品开发归为硬件。所以,不要讨论这个,tcp app源码好好玩转自己的板子才是关键。实在不爽你就把自己叫“嵌入式开发工程师”

       三 要不要买开发板 买哪家

        我的答案是“在你个人的学习方法”,但是如果看家是需要看这骗笔记的水平,个人推荐还是买现成的。

       1 买

        买板子可以把注意力集中在软件开发上,软件开发(尤其是驱动)可以不必担心自己硬件上的问题,我就是以便调试一边写驱动和程序,每次写驱动前就要先确认硬件没问题。另外,买板子更省钱和时间,我自己做的板子,原理图PCB花了2周以上!制版又天,回来以后焊接B0 个脚!那叫一个麻烦 ~~花了多少钱呢?2层板,制版费就块!当然 我把接口都外引了,还做了个X的LCD背板,板子比较大。总体下来 元件+LCD屏+PCB =XX块!够的了。

        再有就是买的资料相对来说比较全,但是不要指望有技术支持!都是骗人的,卖你之后就不会理你。

       2 做

        自己做可以更了解底层硬件,可以按照自己的要求加东西,比如我就加了GPS模块、 GPRS模块 、SD卡模块,扩了个IIC的个键子的键盘、把LCD接口按照买的LCD改装了,可以用FPC线直接连接。做的很爽的。玩一把吗。

        当然,你可以有策略的做,比如像我一样,把RAM和ROM,网络都保持和某现成的板子一样,这样他们的资料你就可以拿过来直接用,给自己留个退路。其他的如SD了 什么的自己做。都达到了~~就是费钱,费时间。

        再有就是开源新闻源码给做的朋友几点建议:尽量拿到现成的板子,尽量多搜集其他板子的全套资料,一定要拿到一张没问题的原理图。

        网上流传的原理图多数是龚俊年画的,再这里对龚俊表达一下我的敬意!!牛人!

       但是那个图有个小BUG,我指的是版的,后来的没这问题了。那地址线和地址有问题。还有人仿照他的PDF图画的SCH,更是漏洞百出!谴责!顺便谴责把龚俊板子偷卖的人。

       3 买哪家

        个人感觉分3类吧

        1)首先是ZLG的,资料非常的全,感觉他是真正想教你怎么开发ARM,而不是像有的公司自己技术都没做好就做个板子出来卖钱。但是最大的不利就是价格太贵!而且主要是PHILIP的,货源比较麻烦~~可能有人说XX系列的不贵啊,那是总线不外扩的,只能跑UCOS,不能跑UCLINUX。但是说是话,XX系列才是ARM7的价格性能结合点。ARM7最适合做工业控制,ARM普及,销量都是怎么来的?都是ARM7来的,而B0是典型的商业片子。但是,这里如果你看中的是为工作做准备,还是选能跑UCLINUX的吧。

       但是仍然作为第一个推荐,因为菜鸟时期,合适的资料太重要了!!在这里被ZLG的务实精神感动!你看人家那代码写的。

        2)感觉立宇泰的B0不错

       硬件没别的,就是资料比较全的说,不像有些家,原理图直接拿人家的,还错的~~

        3)找个最便宜的

       好象最便宜的有卖的吧?也是没别的,就是即省了钱 还省时间搜集资料,至于资料全不全,别计较了~~硬件肯定好使就行吧。

       四 要不要有 AVR等单片机基础

        有更好,但没有也无所谓。

        两个月以前,我只是看别人做,耳濡目染~~,本科学过单片机,从来没做过。我们这的技术主干做AVR和,我就跟他们调过C语言程序。你看出来了?我是个不折不扣的菜鸟吧?

       但是做这个之前我特意找了ZLG的两本书,看了里面的例子和原理图,这很重要。例程里有汇编有C,都看懂了就OK,不用自己现写

       五 开发都需要学习哪些软件

       总结起来最主要的有以下几个吧

       1 ADS调试用

       确切的说是ADS+AXD。ADS里包含AXD。原来都用SDT后来ARM公司停止对SDT支持了,改支持ADS了,还是用ADS吧。

       有的人的程序发布的仍然是SDT版本的,但基本都可以找到相应ADS的,新人在这里不要发蒙。ADS是编译器,AXD是调试器。便宜成AXF以后再在ARM的RAM里调试。

       2 PLASHPGM

       FLASH烧写的软件。AXD在RAM里调试,掉电就没有了,方便程序修改。调试好的程序再下到FLASH里,上电直接运行。

       同类的软件还有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人还问FLASH不支持BIN格式文件的问题就要看我写的PLASHPGM使用了。

       3 BANYANT调试代理(不知道名对不,起这么个难记的,我一般都叫它“半羊”因为知道它那几天刚吃了烤羊)

       调试代理就是用它帮你使用更简单的JTAG(便宜啊)来实现原本1K才卖的JTAG仿真器的大部分功能。JTAG调试原理看我另一篇笔记。简单的就可以把他理解为你自己做的JTAG的驱动就行了。

       调试代理还有很多种,什么H-JTAG了、ARM7了(不知道具体叫什么,就记得可执行文件叫ARM7.EXE)都是,BANYANT比较好。

       需要注意的是,没种调试代理安装方法虽然都简单 但都不一样,需要看说明。而且AXD调试之前都要运行。省钱了,就别怕麻烦了。

       4 ARM-ELF-TOOLS工具链

       里面是UCLINUX开发用的工具比如ARM-ELF-GCC只类的。工具链就是把很多工具打包在一起发布的方便你开发的东西。具体安装方法看我另一篇笔记。

       另外如果你开发LINUX就要用ARM-LINUX-TOOLS,不一样,不通用。

       5 U-BOOT

       大名鼎鼎的BOOTLOADER生成工具,同类的好象还有VIVI(名字很暧昧~~)

       生成的BOOTLOADER烧到FLASH里,然后就可以用BOOTLOADER下载 烧写其他了

       有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像电脑上的BIOS。当然UCOS的不用这个,用什么我不知道:)

       最新版本是1.1.4 具体使用方法看我另一篇笔记吧。

       6 UCLINUX包

       UCLINUX的源码包,不用多说了吧?建议大家用现成的先体会一下,然后再自己编译,裁剪。因为单独UCLINUX的编辑技术上比较简单,但涉及的方面还是比较广的。

       7 VMWARE

       老牌的虚拟机软件,在一个机器上虚拟出一个机器装LINUX(PC上用的),省得你来回开关机了。记得装VMWARE-TOOLS,安装方法在我另一篇笔记里。

       六 有哪些书推荐

        主要推荐ZLG的三本书,有这3本再加网络就不用别的书了,其中主要推荐前2本,3是介绍体系结构的,也不错

       1 ARM嵌入式LINUX系统构建与驱动开发,北航版

       驱动写的很详细,前期开发介绍也很好

       2 ARM 嵌入式系统实验教程(二),北航版

       有ZLG的原理图,实验程序和注释,了解人家是怎么开发的。

       3 ARM嵌入式系统基础教程

       最重要的是体系结构,汇编部分介绍,看看吧,增加理论素质。

       4 B0数据手册

       写在这里是强调它的重要。

       不推荐ZLG早期出的红色皮的ARM什么体系结构~只类的

       写的太多,看烦了。

       其他的书没了几本,没看见好的,大家有看过的推荐吧。

       七 选UCOS?UCLINUX?LINUX?VXWORKS?还是当单片机用

        1 搞开发,工程设计,用UCOS,小巧,多进程,简单,体现了ARM7的精髓。

        2 LINUX 正根的嵌入式系统,LINUX消费与通信领域用的比较多,但缺点是必须ARM9才能跑,ARM9的板子自己做就不行了,6层板太贵。买开发板1K达底吧。但是还是推荐选ARM9+LINUX

        3 UCLINUX 算投机嵌入式系统:)ARM7上可以跑,由有LINUX近亲,学好好可以比较方便的转向LINUX,像我一样的穷鬼用吧,呵呵

        4 VXWORKS

       学好后可以找到高薪工作,但工作机会本身并不比LINUX好找。

        5 当单片机用

       不推荐,虽然我景仰的ZLG一直号召这么干。因为对于学习来说多进程的系统设计才是ARM7的玩头,至少你也要整个UCOS啊:)

       有朋友问我先学这个当基础不行吗?那当然可以~~但我当时就用了1周搞定,就是我先的ADS在RAM中调试的笔记。后来我清空FLASH用的小段程序还是当时写的LED闪烁程序呢。另外1周里其中还因为自己过于菜,没把OM设置好导致晶阵不阵

       哈哈。这个是必须做的,但一带而过。目标放的远一点。

       八 学习要用多长时间

        我从菜鸟到现在两个多月,中间被打扰数次。仍然搞定了PCB设计与制版,RAM调试,FLASH下载,UBOOT移植和下载UCLINUX(没剪裁,用现成的),LCD驱动。

       再次坦诚的说:我确实比较菜,说这些不是让大家羡慕,只是告诉你们“你们应该比这个更好”

       我相信良好的态度+合适的方法+及时的总结=成绩

       九 ARM都玩什么

       就几点

       1 硬件设计

       2 系统移植

       3 驱动开发

       4 应用开发

       没了。其中推荐把注意力放在后两个上,3有难度,4比较灵活,最重要的是都是找工作的砝码。

       十 我用的什么板子

       很多人问我这个问题,我特意写过一个的。再说一次吧。

       我是自己做的,RAM、ROM、等比较麻烦而当时的自己不理解的都按照龚俊的做的。保持其他不便的情况下做了如下改动。

       1 加了串口通信的GPS模块、 GPRS模块

       一个UART0,一个UART1,当与要用超级终端时用跳线切换。

       2 SD卡,和触摸屏

       同时挂在SPI总线上,因为SPI只能挂一个设备,同时还做了I/O模拟的准备,把两个设备又通过跳线挂在4个IO上。

       3 扩了个IIC的个键子的键盘

       用的ZLG的,不占用CPU,最大支持个键子,只上了个,其他留接口。

       4 把LCD接口按照买的LCD改装了,可以用FPC线直接连接。

       所以改动虽然多,但真正很移植了,初期调试有关的并没动,就是为了现在不那么菜的时候做准备:)

       十一 开发流程

       这里是我的开发流程

       1 设计原理图(含WIGGLER的JTAG访真器)

       2 设计PCB(含WIGGLER的JTAG访真器)

       3 制版

       4 焊接电压,确定电压没问题

       5 焊接B0+JTAG电路+WIGGLER的JTAG访真器+周边电路,用BANYANT+仿真器连接,BANYANT提示错误,但可以显示B0编号,好象是0X0F0F0F0F只类的,说明B0没问题

       6 焊接晶体+RAM+ROM+周边电路,用BANYANT+仿真器连接,可以显示正确的B0了

       7 用BANYANT+仿真器连接,开AXD,在命令行窗口操作RAM,看可不可以修改,可以的话(用内存窗口看RAM地址)RAM就没问题

       可以用这个命令“setmem 0xc,0xffffffff,”

       我的RAM挂在BANK6上 所以地址是0XC,你要是改了就也得改。

       8 用我写的《自己写了个C工程模板又写了个使用说明 》里的方法调试程序吧,写个简单的,我当时写个LED闪烁的。看好使不。

       9 把程序按照《FLASH烧写总结 》里的烧到FLASH里,测试一下

        按照《UBOOT 移植操作》移植UBOOT

        按照《UCLINUX下载简单说明》下个UCLINUX

        看看驱动开发的方法,自己写个驱动看看

        还有很多事东西着你玩 呵呵

       十二 关于JTAG访真器

       JTAG访真器现在用的多是简板的,一个那种,用的没什么不好。

       按照并口定义不同分几种,建议选WIFFLER定义的,因为支持的软件多。这个网上多的是,不多说了。

       值得提的是有的JTAG访真器原理图上有跳线用来使能复位信号,这个一般不跳上。就是不用复位信号,因为JTAG协议里本身也可以控制B0复位。

       当然,板子上的复位信号跳线也不用跳。

       十三 哪个公司的ARM

       这个是问题比较简单。

       1 ARM7主要就几个公司的

       三星,PHILIP,ATMEL的

       ATMEL的有比较便宜的ATSAM7S 和ATSAM7S 专为8位应用产品量身定做,价格很便宜好象《3刀吧。和PHILIP的XX差不多,资料太少,项目中选还不错。

       其他两家上面说了的不多说了吧

       2 ARM9

       这个玩和的多吧,现在还比较火啊 可以考虑买个了

       但是就比较便宜了,作为学习来说反到和不错,推荐整一个:)

       其实ARM9用的最多的领域应该是消费电子,比如手机PDA,而这上面用的多的应该是INTEL的和TI的吧。

       但是INTEL的TI的入门材料少,价格高,自己看情况定吧。

学习嵌入式开发要学习哪些知识?

       åµŒå…¥å¼Linux操作系统学习规划

       ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:

       ï¼ˆ1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9)

       ï¼ˆ2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定)

       ï¼ˆ3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。

       ä»Žäº‹åµŒå…¥å¼è½¯ä»¶å¼€å‘的好处是:

       ï¼ˆ1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。

       ï¼ˆ2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。

       ï¼ˆ3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

       ï¼ˆ4)兴趣所在,这是最主要的。

       ä»Žäº‹åµŒå…¥å¼è½¯ä»¶å¼€å‘的缺点是:

       ï¼ˆ1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。

       ï¼ˆ2)这方面的企业数量要远少于企业计算类企业。

       ï¼ˆ3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。

       ï¼ˆ4)平台依托强,换平台比较辛苦。

       å…´è¶£çš„由来:

       1、成功观念不同,不虚度此生,就是我的成功。

       2、喜欢思考,挑战逻辑思维。

       3、喜欢C

       C是一种能发挥思维极限的语言。关于C的精神的一些方面可以被概述成短句如下:

       ç›¸ä¿¡ç¨‹åºå‘˜ã€‚

       ä¸è¦é˜»æ­¢ç¨‹åºå‘˜åšé‚£äº›éœ€è¦åŽ»åšçš„。

       ä¿æŒè¯­è¨€çŸ­å°ç²¾å¹²ã€‚

       ä¸€ç§æ–¹æ³•åšä¸€ä¸ªæ“ä½œã€‚

       ä½¿å¾—它运行的够快,尽管它并不能保证将是可移植的。

       4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。

       5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。

       æ–¹æ³•æ­¥éª¤ï¼š

       1、基础知识:

       ç›®çš„:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。

       ç§‘目:数字电路、计算机组成原理、嵌入式微处理器结构。

       æ±‡ç¼–语言、C/C++、编译原理、离散数学。

       æ•°æ®ç»“构和算法、操作系统、软件工程、网络、数据库。

       æ–¹æ³•ï¼šè™½ç§‘目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。

       ä¸»æ”»ä¹¦ç±ï¼šthe c++ programming language(一直没时间读)、数据结构-C2。

       2、学习linux:

       ç›®çš„:深入掌握linux系统。

        方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0.版,适合学习。最后深入代码。

       ä¸»æ”»ä¹¦ç±ï¼šlinux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。

       3、学习嵌入式linux:

       ç›®çš„:掌握嵌入式处理器其及系统。

       æ–¹æ³•ï¼šï¼ˆ1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x。

        (2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。

        (3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。

        主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。

       4、深入学习:

        A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。

        B、通信协议及编程技术:TCP/IP协议、.,Bluetooth,GPRS、GSM、CDMA等。

       -8- : 回复

       ...* 2楼

        C、网络与信息安全技术:如加密技术,数字证书CA等。

        D、DSP技术:Digital Signal Process,DSP处理器通过硬件实现数字信号处理算法。

        说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。

        注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。

        不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要做的!

        技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。

        嵌入式书籍推荐

        Linux基础

        1、《Linux与Unix Shell 编程指南》

        C语言基础

        1、《C Primer Plus,5th Edition》【美】Stephen Prata着

        2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)着

        3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)

        4、《嵌入式Linux应用程序开发详解》

        Linux内核

        1、《深入理解Linux内核》(第三版)

        2、《Linux内核源代码情景分析》毛德操 胡希明著

        研发方向

        1、《UNIX Network Programming》(UNP)

        2、《TCP/IP详解》

        3、《Linux内核编程》

        4、《Linux设备驱动开发》(LDD)

        5、《Linux高级程序设计》 杨宗德著

        硬件基础

        1、《ARM体系结构与编程》杜春雷着

        2、S3C Datasheet

        英语基础

        1、《计算机与通信专业英语》

        系统教程

        1、《嵌入式系统――体系结构、编程与设计》

        2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明着

        3、《Building Embedded Linux Systems》

        4、《嵌入式ARM系统原理与实例开发》 杨宗德著

        理论基础

        1、《算法导论》

        2、《数据结构(C语言版)》

        3、《计算机组织与体系结构?性能分析》

        4、《深入理解计算机系统》【美】Randal E. Bryant David O''Hallaron着

        5、《操作系统:精髓与设计原理》

        6、《编译原理》

        7、《数据通信与计算机网络》

        8、《数据压缩原理与应用》

        C语言书籍推荐

        1. The C programming language 《C程序设计语言》

        2. Pointers on C 《C和指针》

        3. C traps and pitfalls 《C陷阱与缺陷》

        4. Expert C Lanuage 《专家C编程》

        5. Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs

        《编程精粹--Microsoft 编写优质无错C程序秘诀》

        6. Programming Embedded Systems in C and C++ 《嵌入式系统编程》

        7.《C语言嵌入式系统编程修炼》

        8.《高质量C++/C编程指南》林锐

        尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。

       è¿™é‡Œå¾ˆå¤šä¹¦å…¶å®žæ˜¯æŽ¨èè€Œå·²ï¼Œä¸å¿…太在意,关键还是基础,才是重中之重!!!