1. arm 与 nios2性能能比较,qiartus12.0 中的nios2 相当于ARM几
性能要看运算能力。 单位DMIPSniosII F 高性能版本,我记得大约1DMIPS/MHZ。 性能和你给的输入时钟有关系,EP4CE系列估计可以跑80-100MHZ,具体没试过不清楚,总之性能在80-100DMIPS。E经济版本性能可能只有F的1/10,你有15K的资源足够安排F性能的nios arm分很多核心的啊,cortex A M等,性能差距也很大,给你一个参考,NIOS2 F 高性能版本接近 cortex M3性能。 处理普通单片机功能足够,跑linux可能略有吃力,不建议。
2. 现我有一个FPGA的开发板,我需要用nios生成软核,然后再把嵌入式操作系统μclinux移植进去,具体步骤是
如果你是初学者,我建议你马上停止你的举动,NIOS在现实工作中用到很少,建议你好好学学FPGA的时序,比如你怎么保证你的程序跑到200M没有问题,你的程序综合出来是什么电路。UCLINUX就更扯了,去用ARM做。FPGA不适合去做。不用看就知道你是初学者。你真想学FPGA,就把DDR2给好好搞搞,那个人认为是最有技术含量的IPCORE,直接在程序里调用IPCORE。很多工作五六年的兄弟还搞不定呢。
3. 濡備綍瀹夎滾inux鐗堟湰鐨凲uartus II
1銆佽蒋浠朵笅杞斤細鍏充簬quartus ii杞浠讹紝閮藉彲浠ヤ粠altera鐨勫畼鏂圭綉绔欎笅杞藉埌瀵逛簬linux鐗堟湰鐨剄uartus ii锛屼笅杞戒簡浠ヤ笅杞浠讹細11.0_quartus_linux.sh11.0_devices_linux.sh11.0_modelsim_ase_linux.sh11.0_legacy_nios2_linux.sh11.0_dsp_builder_linux.sh2銆佷笅杞戒笅鏉ヤ箣鍚庯紝鐩存帴鍔犱笂鍙鎵ц屾潈闄愶紝鐒跺悗瀹夎呭嵆鍙锛chmod 755 ./11.0_quartus_linux.sh./11.0_quartus_linux.sh鍏朵粬杞浠朵篃涓鏍峰畨瑁呮ゆ柟娉曞畨瑁呭氨鍙浠ヤ簡銆傝繖閲岃佹彁閱掍竴涓嬶紝鎵鏈夎蒋浠跺畨瑁呭畬鍚庯紝闇瑕15G鐨勭┖闂达紝鎵浠ュ缓璁瀹夎呯殑鏃跺欙紝閫夋嫨涓涓绌洪棿澶х殑鍒嗗尯銆3銆佸畨瑁呭畬鍚庝箣鍚庯紝闇瑕侀厤缃涓涓媢sb-blaster锛屼笉鐒剁殑璇濓紝铏界劧quartus杞浠惰兘璇嗗埆锛屼絾鏄鏃犳硶鎺㈡祴鍒癋PGA鏉垮瓙鑰屾棤娉曚娇鐢ㄣ傝繖閲屼互fedora 17绯荤粺涓轰緥锛鏂板缓 /etc/udev/rules.d/51-usb-blaster.rules鏂囦欢锛屽姞鍏ヤ互涓嬪唴瀹癸細# USB-BlasterSUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProct}=="6001", MODE="0666", SYMLINK+="usbblaster"4銆佸皢USB-Blaster杩炴帴鍒扮數鑴戜笂锛屽苟灏嗗畠杩炴帴鍒癋PGA鏉垮瓙鐨凧TAG鎺ュ彛涓婏紝缁橣PGA鏉垮瓙涓婄數銆傜劧鍚庢墦寮/home/niutao/diskA/altera/11.0/quartus/bin/quartus杞浠讹紝鐐瑰嚮Tool -> JTAG Chain Debugger锛岃屽悗鍦↗TAG Chain Debugger鐣岄潰鐐瑰嚮Edit -> Hardware setup閲岄潰閫夋嫨USB-Blaster锛涔嬪悗杩斿洖JTAG Chain Debugger鐣岄潰锛岀偣鍑籹tart锛屽氨鍙浠ョ湅鍒癋PGA鑺鐗囦簡銆
4. 考研想了解更多关于这个专业的东西,Linux与嵌入式系统
这篇文章指引了我,希望它也能指引你近些年来,嵌入式系统的发展在国内可谓如火如荼,很多公司都急需嵌入式系统方面的开发人员。然而,在高校中,嵌入式系统的教学却较为滞后,很多高年级的本科生和刚入学的研究生都苦于不知从何学起。在本文中,笔者将根据自己的嵌入式系统开发和教学经验,简要介绍嵌入式系统的学习方法,力求能帮助初学者找到一条入门之路。什么是嵌入式系统? 学习嵌入式系统,首先应该明确什么是嵌入式系统,否则费力去学,却不知所学为何物,岂不惘然?嵌入式系统的定义很多,这也是困扰嵌入式系统学习的一个因素。笔者根据自己开发和教学过程中的理解,以及对各种嵌入式系统的应用进行总结,提出了嵌入式系统的简单定义:嵌入式系统是嵌入式计算机系统的简称,这个定义突出嵌入式计算机系统和普通计算机系统的共性。下表列出了嵌入式系统的一些典型的应用:智能机器人(S D R 4,火星登陆车)娱乐和消费电子(Gameboy Advance,Sony PSP)网络通信产品(Smartphone)军用设备(军用PDA )汽车(车载导航,自动驾驶,娱乐系统)智能仪器(虚拟仪器)安全防护(防火,防盗)环境保护(探空气球)银行和商业消费(ATM)以火星登陆车为例来分析一下嵌入式系统的定义。火星登陆车虽然听起来感觉在技术上有些高不可测,但是本质就是嵌入式计算机系统的应用,其核心就是一个计算机系统,而这个计算机系统的组成同传统的计算机系统在本质上没有什么差别。两者的显著不同之处就在于,用于火星登陆车的计算机系统被安装到了火星登陆车上。当然,一个计算机系统能够被安装在火星登陆车上,是需要进行很多特殊设计的。但是从本质上讲,嵌入式系统的核心概念还在计算机系统。嵌入式系统学习的重点也在计算机系统上。一方面,学习者需要牢固掌握计算机系统本身的概念,更重要的是学习嵌入系统的开发过程同传统计算机系统开发过程的差别。这里需要指出的是,很多学习者本来就没有从事过完整计算机系统的开发,高校的教学是以程序设计为中心的,计算机系统的构成,操作系统的原理,编程语言等课程都是为了能够让学生更好的使用计算机系统进行程序设计,在现有的计算平台上来设计实现各种应用,学生一般没有机会学习一个完整的计算机系统是如何构建,并亲身参与到构建的每一个过程。而对于嵌入式系统而言,从事平台开发的人就是要亲自去开发出一个完整的计算机系统,这个过程包括l 需求分析2 硬件设计3 驱动程序4 Bootloader & BSP (板级支持包)5 操作系统的移植6 应用程序的开发7 性能检查嵌入式系统教学的目的就是教会学生如何根据需求去建立满足某种特殊行业需求的嵌入式计算机系统。让学生学会如何构件硬件平台,进行硬件设计,选择能够满足应用要求的最佳的嵌入式操作系统,并完成Bootloader,BSP 和驱动程序的编写,移植,调试等过程。为了满足行业需求,最终要在所建立的系统上编写调试相应的应用程序,并进行性能的测试和检查。你是谁,你需要学习哪些东西? 如果你的工作只是需要在PC 机上编写一个图片浏览程序,那么你就没有必要去了解当系统收到一个ARP 请求包后应该如何回应。同样的道理,嵌入式系统的学习也是有很多方面的。就嵌入式系统的设计和实现而言,基本上需要四种不同的工作:系统设计工作,硬件设计工作,驱动程序和操作系统移植工作和应用程序设计开发工作。系统设计工作 在系统的设计阶段,系统分析师将根据需求确定系统的硬件的基本构成,根据系统的需求选择使用那种处理器,使用哪种操作系统,使用那些软件开发工具。系统分析师往往是较为完整的参与过嵌入式系统设计的全过程,对于系统应用的行业较为了解,对于嵌入式系统本身的开发流程十分清楚的人。硬件设计工作 系统硬件设计人员需要根据系统分析师的设计结果,进行硬件原理图的设计。通常需要硬件设计人员熟悉嵌入式系统的硬件构成。硬件设计人员需要了解常用的嵌入式系统处理器,存储器(Flash,SDRAM),以太网MAC芯片,音频/ 视频编解码芯片,电源管理芯片,总线接口电路 (USB, PCI),液晶显示模块,可编程逻辑器件(FPGA/CPLD),无线网络通信模块(Bluetooth, WLAN,GPRS)等硬件电路构成元素的基本工作原理,连接使用方法,使用注意事项,基本调试方法等内容。在网络上能找到很多公司的评估板的原理图,对于这些原理图要仔细研究,摸清处理器同存储器,网卡,液晶模块等器件的连接方法和原因。通过对这些电路的研究,能够较快地了解整个嵌入式系统的构成,这些电路同实际产品中的电路虽有一定差别的,特别是对于手持设备,但这些差别不影响初学者学习嵌入式系统的硬件设计基本构成。 以上这些知识,往往需要较长时间的学习和积累,需要亲自参与实践的机会。对于刚刚接触嵌入式系统硬件开发的学生来讲,一般不可能全部了解这些知识,但也不会是通通一无所知。笔者结合自己开发和教学的经验认为:首先应该选定一款主流且较为简单的嵌入式系统处理器,比如基于ARM7TDMI 内核的AT91M40800,S3C44B0 等嵌入式系统处理器,学习32 位RISC 处理器的编程模型,指令集。高校教学中,单片计算机课程一般以8051系列单片为核心讲解,由于现代32位处理器的结构和开发方式同8 位单片机有着较大的差别,学习者还是需要花一点力气来研究以下32 位处理器的。以ARM处理器为例,学习者就需要理解处理器的多种工作模式,备份寄存器,RISC 指令集的特点,MMU 和虚拟地址,中断处理过程等内容。在学习指令集的过程中,最好能够每学习几条指令,就使用这几条指令在模拟器上实验以下,观察处理器执行的结果。这个过程一方面是学习者对于指令本身的学习能够取得一个比较好的效果,另外也是对开发工具本身的一种学习。接着,就可以开始学习片上资源的使用和配置方法。这时就需要一个方便使用的开发板,学习者能够通过JTAG 仿真器将开发板同调试PC 机相连,进行程序的下载,调试。特别是要仔细研究系统的初始化过程和中断处理的过程。在开发过程中如果遇到问题,应自己分析问题产生的原因,通过分析缩小问题可能产生的范围,最终找到问题的所在。最重要的就是要保持一种解决问题的信心,面对困难如何处理,往往能够决定最终系统是否能够调试成功。然后,学习者可以开始仔细学习处理器同存储器的连接,存储空间的配置,各种外扩器件,如网卡,AC97声卡的工作原理和使用方法。嵌入式系统硬件设计中往往需要使用可编程器件,学习者还需要一定的时间来学习使用常用的可编程器件(C P L D / F P G A ),常用的有Xilinx和Altera公司的产品。进行系统硬件原理图设计,就需要使用原理图设计的E D A 工具,常用的E D A 原理图设计工具主要包括Cadence公司的Capture,Protel公司的Protel99 SE等。接下来就可以参照评估板的电路图,根据系统的设计要求,开始进行原理图的绘制了。在原理图绘制过程中,一定要搞清评估板电路连接的原因,对于一时没有搞清楚的问题切不可蒙混过关。例如,有些处理器的地址线是以字节位单位的,而另一些处理器的地址线则是以两个字节为单位的,当连接16 位的存储器的时候,切不可想当然的把处理器的A 0 直接连接到存储器的A 0 上面。另外,学生还应具有一定的P C B 板图绘制能力,因为在现阶段,很多公司还不能完全把原理图的设计工作和PCB 的绘制工作分开,往往要求硬件设计人员既能进行原理图设计又能进行板图设计。即使是PCB设计和原理图设计分开的公司,也需要原理图设计者能为PCB 的设计者对于不同的信号提出布板要求。驱动程序和操作系统移植工作 现代嵌入式系统的开发同传统8 位单片机系统的开发相比,一个显著的区别就是嵌入式操作系统的广泛使用。在拿到焊接完毕的电路板,并进行基本的测试后,就要进行驱动程序和操作系统的移植工作了。首先要进行的Bootloader的编写和移植工作。Bootloaer相当于PC系统的BIOS。对于有些嵌入式操作系统,如uc/OSII 没有bootloader同样可以开发调试。但是对于Windows CE和嵌入式linux系统而言Bootloader就是必须的了。本文以Windows CE 为例,做一个简要的说明。 Windows CE 系统的移植工作主要就是BSP(板级支持包)的开发过程。B S P 将具体的硬件差异同操作系统的核心隔离开来,主要由Bootloaer ,OAL (OEMAbstractionLayer)和设备驱动程序三部分组成。WindowsCE系统中Bootloader叫做Eboot。Eboot被写入系统的引导Flash。系统启动时运行 Eboot,完成通过网卡将调试PC 机中Windows CE 操作系统映像下载到目标系统的S D R A M 中并开始执行的功能。对于一个系统移植人员,首先需要阅读文档,了解Windows CE系统Bootloader和BSP的基本概念和开发过程。(呵,还要做这工作啊,我还没想到(初学^_^))Windows CE的开发系统Platform Builder提供了详细的文档和例程,开发人员需要仔细的阅读文档和例程。搞清楚各个函数之间的调用关系。在开发过程中的一个重要的步骤就是打通串口,使得目标板能够通过PC 机串口向调试PC 机发送数据。由于A R M 系统的仿真器比较昂贵,而且操作系统的调试往往不使用JTAG 调试器进行单步调试。所以能从串口观察程序的执行过程和结果对于调试就显得十分重要了。串口打通之后一个比较棘手的问题就是网卡芯片的调试。刚刚接触嵌入式系统开发的人往往没有直接在寄存器级上使用网卡芯片的经验,而网卡芯片的说明一般都较为简短,这就要求开发者学习一些以太网的基础知识,对以太网的 MAC 层有一个基本的认识。另外,各种网络调试(抓包)工具的使用也能大大降低系统调试的难度。系统的O A L 需要根据具体硬件的不同做出相应的修改,这个部分可次参照文档进行,在调试过程中根据串口的信息分析出错的地方。要充分发挥跨文件字符串搜索工具的功能,在浩如烟海的源文件中找到出错的位置。当然,随着开发者对系统文件目录结构的熟悉和了解,错误定位的速度会不断加快。Windows CE 的驱动程序相对而言是比较好写的。程序结构较为简单,学习者可参照 http://msdn.microsoft.com/library/default.asp MSDN Home > MSDN Library >Mobile and Embedded Development > Embedded OperatingSystem Development > Columns SPOT the Geek and WindowsCE Drivers 这篇文章。应用程序的开发 嵌入式系统的应用程序开发同在PC 机上开发应用程序的区别不是很大。对于W i n d o w s C E 系统而言,Microsoft已经提供了较为完善的开发工具。特别是.NET Compact Framework 的使用,使得基于Windows CE.NET Compact Framework的应用程序有了跨平台性。开发人员可以使用Windows 的C# 语言直接在PC 上进行CE .NET应用程序的开发和模拟调试,也可将目标系统同PC 机相连,进行联机调试。现在有很多系统支持J2ME(JAVA 的嵌入式系统版本) ,这使得JAVA 在嵌入式系统应用开发中占有较大的优势。另外,作为专业的嵌入式系统软件开发人员,还需要充分了解面向对象技术和设计模式等方面的知识,当然作为初学者可以先不深入研究这方面的内容。常用嵌入式系统处理器和操作系统处理器 常用嵌入式系统处理器主要包括A R M 处理器,Power PC 处理器,基于MIPS 内核的嵌入式处理器,软核处理器(如Alter 的Nios和Xilinx的MicroBlaze等)和D S P(数字信号处理器)等。A R M 处理器的主要特点是具有较高的性能功耗比。A R M 处理器被广泛的应用在手机,P D A 等领域,其中较为著名的有Intel 公司生产的基于ARM 内核的XScale系列处理器。由于所有公司生产的基于ARM 内核的处理器具有相同的编程模型,在手持和电池供电的系统中,基于A R M 的嵌入式系统处理器往往被首先选用。PowerPC (简称PPC)处理器具有较强的运算性能和数据吞吐能力,在网络和数据通信领域基于PPC 的嵌入式系统处理器有着广泛的应用。其中Motorola公司生产的MPC860/MPC8260 被大量地应用在嵌入式网络产品中。MIPS 处理器的特点表现在十分强大的处理能力上。作为高性能处理器,MIPS 处理器适用于网络、企业及高级消费类电子应用,特别是在机顶盒系统中,MIPS 处理器具有较高的市场占有率。随着可编程器件的规模不断扩大,使得人们能够根据需要定制处理器,并方便的将针对某种特殊应用定制的处理器方便的在可编程器件内部实现。除了处理器外,计算机系统还需要许多其他构成部分,比如在多通道媒体数据处理系统中,经常需要使用可编程器件来实现高速的数据处理功能,使用软核DSP 来实现复杂的数字信号处理算法,同时还需要处理器进行事务处理,软核处理器将可编程器件,D S P 同处理器结合在一起,为系统级设计提供了极大的灵活性。D S P (数字信号处理器)有别于通用处理器,集中表现在其强大的数字信号处理能力上。在DSP 内部提供了硬件乘累加器,处理器在设计上对于特殊的寻址方式做了优化,一些DSP 还支持零耗循环(Zero OverheadLoop)。为了方便嵌入式系统设计,主流DSP 一般也都提供了丰富的外设。特别值得一提的是A D I 公司的Blackfin 系列DSP 和TI 公司的DM64X 系列DSP,两种处理器都提供了丰富的片上外设,非常适用嵌入式系统应用。操作系统Window CE.NET/5.0作为Microsoft的产品,Window CE.NE/5.0提供了功能完备的平台开发工具Platform Builder和应用开发工具Embedded Visual C++/Visual Studio 2003。Windows CE由于拥有广大使用者所熟悉的windows 界面,系统提供了众多驱动程序,并且有完备的文档支持。对于应用开发而言,熟悉Windows 系统开发的程序员很容易转到WindowsCE 应用程序的开发。Windows CE将会是一个非常有前途的嵌入式操作系统。VxWorksVxWorks 是由Windriver(风河)公司出品的嵌入式实时操作系统,大名鼎鼎的火星登陆车就是使用了VxWorks。Windriver 为VxWorks 提供了集成开发环境tornado。υC/OSIIυC/OS是由Jean Labrosse设计编写的开放源代码的嵌入式实时操作系统,笔者最早接触的嵌入式操作系统就是它。阅读并深入理解υ C/OS 的源代码对于理解实时系统是大有裨益的。ARM LinuxARM linux是由Russell King和其他开发者开发移植的用于ARM 处理器的linux操作系统。 ARM Linux系统在GNU GPL下发布。有兴趣的读者可以参看http://www.arm.linux.org.uk/docs/whatis.shtml的介绍。υ CLinuxυ Clinux 是适用于没有MMU 的嵌入式处理的LinuxOS 版本。υ Clinux 同样在GNU GPL 下发布,有兴趣的读者可以参看http://www.uclinux.org/index.html嵌入式系统开发过程中的常见问题和解决方法Bootloader如何写入Flash ?初学者一般都会遇到如何将程序写入处理器的问题。对于不同的处理器,可以采用不同的方法。例如Intel的Xscale处理器可以使用Intel公司提供的JFlash工具烧写。对于具有JTAG 调试工具软件的处理器,可以使用如下思路:编写一段程序,这段程序能将位于SDRAM/SRAM 固定地址中的数据写入Flash 中。烧写时,首先,将这段软件下载到SDRAM 中,然后通过调试软件将要写入Flash的数据下载到S D R A M / S R A M 的某个固定地址开始的缓冲区,然后通过调试器开始执行程序,将数据写入Flash。除此以外,网络上还提供了很多专用的写Flash的工具,开发者可以根据自己的需要选用。(现在明白了我在学的那个BF533为什么先下个flashProgramer.dxe先了)什么是arm-elf-gcc?arm -elf-gcc是一个交叉C语言编译器。我们在PC平台下编译程序,编译器运行的处理器同生成的代码将要运行的处理器相同。但是,在PC 机上编译ARM 程序时,编译器运行的处理器同生成的代码运行的处理器不同,这种编译器叫做交叉编译器。其中的elf是指编译器生成的目标文件格式。(其实我们平时用的单片机编译器如GCC—AVR等已是交叉编译器了,我到现在才弄清楚什么是交叉编译器)走了哪条编译路径?系统程序和驱动程序往往包含很多的编译选项,很多选项都是在编译时通过命令行定义的,如果想知道编译的是那一段程序可以使用如下的方法:#ifdef PLAT_AAA#error Code for Platform AAA#else#error Code NOT for Platform AAA#endif这样在编译的时候就知道,编译的是哪一条路经了。对于支持#pragma message( “I am here”)的编译器也可使用#pragma message预编译指令。我怎么知道那段代码在那个文件中?系统编程中经常需要使用在多个文件中搜索字符串,在windows平台下可以使用平台提供的多文件字符串搜索工具。在linux平台下,可以使用grep来搜索字符串。Grep 的搜索功能十分强大,支持正则表达式搜索,熟练使用grep对于阅读系统和驱动程序代码是很有帮助的。系统是从那个文件开始运行的?对于W i n d o w s C E 系统,一般从W I N C E 4 2 0 \PLATFORM\YourPlatform\KERNEL\HAL 目录的某个汇编文件中。对于Linux 系统版本不同会存在一定差异,以arm处理器为例,一般会在linux2.4.x\arch\arm\kernel的head-armv.S中。程序执行到了那里?可以在程序中插入如下代码来实现printf( “I am here %s, %d\n”,__FILE__, __LINE__);代码将打出printf语句所在的文件名和行号。推荐书目Jean J.Labrosse MicroC/OS-II The Real-Time Kernel,Second Edition这本书是笔者接触嵌入式实时系统的入门书,在国内能够买到中文版。这本书较为清楚地讲述了实时系统的概念,各个组成部分的工作原理,特别是公开了实时系统内核的源代码,仔细研究定会受益匪浅。有个小的提示,对于初学者,这本书可以先不看第一章,直接从第二章看起。Abraham Silberschatz, Peter Baer Galvin,Greg Gagne Operating System Concepts笔者在教学过程中发现,无论是计算机还是电子工程专业都有很多学生对于操作系统的基本概念都没有搞清,很少有学生有完整的系统编程经验。Operating SystemConcepts这本书对操作系统的感念讲述只能用经典来形容。对于嵌入式系统有兴趣深入研究的同学,首先要把基础打好,这本书就成了必读之物了。Andrew S. Tanenbaum Computer Networks提起Andrew S. Tanenbaum 学习计算机的同学一定都知道OPERATINGSYSTEMs:Design and Implementation这本书,笔者对于Tanenbaum 这样的教授由衷佩服。网络协议栈是嵌入式系统中的支柱性组成部分。愿意致力于网络深层技术研究的同学,这本书将你们建立一个坚实的网络基础。Karim Yaghmour Building Embedded Linux Systems本书详尽的介绍了嵌入式linux系统的组成,基本概念和如何去建立各个部分。全书篇幅较小,可谓短小精悍。即可以作为嵌入式linux 系统的入门读物,又是开发过程各个部分的指南。Advanced RISC Machines Ltd (ARM) ARM7 TDMIData SheetAdvanced RISC Machines Ltd (ARM) ARM920TTechnical Reference Manual学习嵌入式系统不了解当前应用最广泛的嵌入式处理器怎么行? ARM7 TDMI 的 data sheet是学习ARM编程模型,指令集的好东西。在嵌入式系统中,M M U (内存管理单元)是很重要的部分,又是较难理解和掌握的部分。ARM920T Technical Reference Manual 正好可以帮你讲解这方面的内容。Perter Van Der LinDen Expert C Programming嵌入式系统级编程最常用的语言还是C 。很多同学都自认为自己的C 语言学的很好,那好,就看看这本书吧,找找自己和Experts差距。注:这篇文章是我在2004年第12期的学习园地看到的。文章的作者是袁通作者简介袁通,北京工业大学实验学院嵌入式系统课程教师,曾于2 0 0 4 年以访问学生身份工作于微软亚洲研究院。看完这篇文章后,我就迫不及待得贴出来,因为确实是写的好啊。我搞嵌入式一年多了,从8051到ARM,学习过,彷徨过,高兴过,郁闷过。。。近来甚至有放弃的想法,终归到底是对嵌入式开发认识不全面造成的,一开始就一头钻到技术里,学习各种技术,最终迷失在自己一手造成的泥坑里。这篇文章非常清晰的讲述了嵌入式开发的方方面面,对我这样迷惑的人起到了醍醐灌顶的作用。嵌入式开发与桌面开发既有不同,又有非常大的联系,而且十分注重实际操作能力。搞桌面开发的人在一开始接触嵌入式的时候,通常转换不过来,这主要体现在定位上。如文中所说,你是谁,你要做什么?我对硬件的了解仅限于编程领域,PCB设计一窍不通,但并不能说你不懂硬件就不能从事嵌入式开发。一个系统的开发设计方方面面,在自己感兴趣和熟悉的领域做出自己的贡献才是最主要的。1。硬件设计: 需要有硬件设计的经验,对各种嵌入式器件有很好的了解。2。系统移植:需要汇编经验,操作系统原理以及底层驱动的了解3。应用程序:需要桌面编程经验
5. 嵌入式系统和DSP的区别和联系
嵌入式系统和DSP的联系:DSP是嵌入式系统的一种。
嵌入式和DSP之间的区别:
1、制造商:
DSP的制造商主要是Agree、ADI、Motorola和TI四大厂商;而嵌入式的供应商超过100家,产品种类繁多。
2、领域:
DSP主要完成高速数据处理的功能;而嵌入式则更多地与ASIC、ASSP、FPGA、MCU等共处一体,目前,DSP的应用更集中在通信领域;而DSP是消费类电子产品的主要选择。
3、支持性:
DSP的发展趋势是更高的计算速度,已有1GHz时钟的DSP问世,而且越来越关注整体性能的优化;而嵌入式更面向特定的应用,备业界更广泛的第三方DSP开发网络支持。
4、维护利用性:
嵌入式由于应用的要求,具备相对较低的功耗,DSP的软件具有更强的可维护性和再利用性。
6. ThreadX是什么操作系统,怎么没有这个版本的软件
ThreadXThreadX是优秀的硬实时操作系统(RTOS),适用于深嵌入式应用中,具有规模小、实时性强、可靠性高、无产品版权费、易于使用等特点,并且支持大量的处理器和SoC,包括ARM、PowerPC、SH 4、MIPS、ADI DSP、TI DPS、Nios II等,因此广泛应用于消费电子、汽车电子、工业自动化、网络解决方案、军事与航空航天等领域中。 ThreadX RTOS和中间件支持Tensilica最新产品Diamond Standard 106Micro 32位微控制器IP核。ThreadX RTOS支持全线Tensilica Xtensa可配置处理器IP核以及Diamond标准系列处理器IP核产品。新添加106Micro延续ThreadX 对全部Tensilica处理器系列支持。 ThreadX是Express Logic针对高要求实时应用小面积速度快免版税的RTOS。免版税的业务模式令ThreadX对于高容量器件来说极具吸引力。ThreadX的简单易用也使带ThreadX的器件既能按时面市又不超预算,这些都是ThreadX在市场上成功并被大量使用的原因所在。ThreadX已被广泛的用户接纳,并且目前在超过4亿5千万电子产品中得到广泛应用。ThreadX配有Express LogicTCP/IP协议栈NetX、文件系统FileX、USB协议栈USBX以及GUI开发包PEGX,所有这些都支持Tensilica最新的Diamond Standard 106Micro产品。 低功耗Diamond Standard 106Micro是针对SoC(片上系统)设计中简单控制器应用而设计,为那些将产品从8位/16位控制器移植到32位处理器上的设计工程师理想选择。所有钻石标准系列处理器都拥有优化钻石系列软件工具支持和广泛产业基础架构合作伙伴,这些合作伙伴将提供操作系统、设计服务、硬件原型和模拟仿真、库和存储器、EDA工具和外设等支持。Tensilica为其钻石标准系列处理器IP核提供了一个已经通过验证的基础架构,该架构包括由Tensilica直接提供软件开发工具,以及由Bytetools公司、FS2公司、Macraigor Systems公司和Sophia Systems公司提供的JTAG探针支持、由ARM(Artisan)公司和Virage Logic公司提供的存储器和库、由Cadence公司、CoWare公司、Magma公司和Synopsys公司提供的流行的EDA工具支持和CoWare公司的CoWare Platform Architect上Diamond 106Micro模型。 下面是ThreadX的应用实例: 2005年7月4日,美国国家航空航天局(NASA)成功实施了“深度撞击”飞船对坦普尔1号彗星的准确撞击,其中,ThreadX在其中发挥了关键作用,控制其中全部三套彗星成像仪的运行; 惠普公司的多款数码相机中应用了ThreadX RTOS和配套的FileX文件系统组件,同时,惠普公司也在全系列打印机产品中使用了ThreadX RTOS; ThreadX成功应用于Panasonic公司的11Mbs无线网卡; 在Konica-Minolta、Toshiba、Ricoh、Samsung等公司的数码产品中,ThreadX得到了广泛的应用; 据CMP统计表明,ThreadX RTOS已经占有全球第三大硬实时操作系统市场份额; TreadX 支持的CPU有:PowerPC,680×0/683xx,ColdFile,ARM7,ARM/Thumb,MCORE,ARC,TriCore,X86,StrongARM,MIPS,SH,I960,V8xx,SPARC,Xscale,H8/300H,TMS320C. 该操作系统已经应用在国产手机上面了,比如国内的中兴u860手机,酷派F600手机
7. 学FPGA,verilog,暑假看完了夏宇文的那本《verilog数字系统设计》,接下来应该看什么书fpga该怎么学
1接下来学SOPC技术(片上可编程系统):是在FPGA芯片里面移植一个nios软核,然后用c语言编程,进行软件开发。把这个也学了之后就可以学习ucos或者uclinux操作系统,还有ucgui是图形界面,可以显示桌面了。2如果继续学习硬件的话就学fpga设计高级教程。 3想学dsp的话。fpga可以用硬件实现传统dsp的功能,而且速度快得多,那么你可以学dspbuilder.