关于arm linux学习
我的基础:C语言、单片机、STM32、LabVIEW、FPGA等都有所了解,基本都能达到工作水平,本科得过两次电子大赛一等奖。以后打算搞ARMlinux驱动方向或应用程序方向,上个星期在虚拟机上装完了ubuntu,简单的linux命令也熟悉了一下,有一块友善之臂的2440开发板,2440用ADS开发裸跑基本上没有问题了。现在的问题是:一提到往linux系统方向靠拢,就无从下手,打开虚拟机,都不知道该干些什么。我感觉要是想学驱动方向编程,首先要动应用方向的编程。所以打算先从linux的应用方面下手,可不知道第一步应该干什么,用什么编译环境,第一个小实验应该是什么。哪位大虾指点一下,列一下往应用方向发展的话,各个里程碑似的试验是什么。(比如学单片机的话:第一步流水灯,第二部按键流水灯,第三部 中断流水灯之类的)。最好以试验例子为总线,有很多人说的什么先学什么 再学什么 说的太泛泛。感觉以实验为主线学东西比较快。 总结:学习linux(arm)的应用程序开发,从基础开始,各个阶段的标志性实验是什么。越详细越好,最好列出每个阶段对应的开发环境。谢谢,分数好说,我还有不少呢 楼主的基础还是比较好的,所以继续发展完全没有问题。不过从你的介绍里看出,先前你做的都比较偏硬件,不知道算法和操作系统的底子怎么样。如果没有操作系统基础的话,可以先看看操作系统的入门书籍,具体哪一本我就不说了,找一本入门的即可。有了这些基础以后,就是做你说的linux应用程序开发了,有本书是必看的,就是鼎鼎有名的APUE,中文名叫做unix环境高级编程。你希望在实验中学习,嗯,的确,软件开发必须重视实践,那么你应该把书中的程序试着自己写一下。如果apue的程序你都能自己完成,那么应用开发你已经入门了。既然你的方向是驱动开发,那么,就不向你推荐unp(unix网络编程)了。后面就应该直接看内核与驱动方面的书了,ldd3,深入理解linux内核这些书可以看看了。宋宝华的linux驱动程序开发也可以。感觉自学驱动的话环境不是很好搭,而且水比较深,不可速成。所以,如果可以的话,可以先找一份应用开发的工作,在工作中往底层发展。至于你说的开发环境,最常用的就是vim和gcc和makefile了,搞linux的都不喜欢图形界面和ide这些花里胡哨的东西。至少,我不喜欢。《linux就该这么学》免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好
高分跪求!Ubuntu中使用Skyeye运行helloworld程序
下载一个对应版本的skyeyetestsuit
静态编译你的hello:# arm-linux-gcc -static -o hello hello.c
选择一个测试实例,例如skyeyetestsuit/linux/ep7312/2.6.x,将initrd_old.img 挂载到某个目录下命令如下:
#mkdir /mnt/initrd (root权限)
#mount -t ext2 initrd_old.img /mnt/initrd -o loop
将你的hello程序放到/mnt/initrd/bin目录去
卸载initrd_old.img: #umount /mnt/initrd
启动skyeye: #skyeye -e vmlinux -c skyeye.conf
启动后进入模拟系统的bin目录就可以运行你的 hello程序了。
DSP,ARM和单片机的区别
1、单片机是一种有完整计算机体系的芯片,适用于简单的测控系统,功能相对简单。
单片机的工作ARM和DSP都能作,单片机对于数字计算方面的指令少得多,DSP为了进行快速的数字计算,提高常用的信号处理算法的效率,加入了很多指令,比如单周期乘加指令、逆序加减指令,块重复指令等等,甚至将很多常用的由几个操作组成的一个序列专门设计一个指令可以一周期完成,极大的提高了信号处理的速度。
由于数字处理的读数、回写量非常大,为了提高速度,采用指令、数据空间分开的方式,以两条总线来分别访问两个空间,同时,一般在DSP内部有高速RAM,数据和程序要先加载到高速片内ram中才能运行。
2、ARM是微处理器,具有强大的事务处理功能,可以配合嵌入式操作系统使用。
ARM最大的优势在于速度快、低功耗、芯片集成度高,多数ARM芯片都可以算作SOC,基本上外围加上电源和驱动接口就可以做成一个小系统了,基于ARM核心处理器的嵌入式系统以其自身资源丰富、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。
目前,采用ARM核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。
3、DSP适用于数字信号处理,例如FFT、数字滤波算法、加密算法和复杂控制算法等。
DSP实时运行速度可达每秒数以千万条复杂指令程序。DSP器件比16位单片机单指令执行时间快8~10倍,完成一次乘加运算快16~30倍,其采用的设计是数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠,其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式,它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
DSP芯片,由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。其主要应用是实时快速地实现各种数字信号处理算法。
DSP和ARM的区别是什么?
数据处理方面用DSP,因为他可以实现比较复杂的运算,我指的是硬件完成运算,比如除法,一般的arm没有除法器,而是把除法变成加法等运算,所以要很多步实现比较慢,这点你看看c编译成的汇编就可以看出。当然不只是除法其它微分卷积等等。arm优点在于外设,包括ad,da等等,所以一般用在控制类的电子产品上。当然高级点的arm中有的也会集成dsp处理器,起到相互补充的作用。 举例:比如数码相机用的是dsp处理的图片,实现粒子滤波算法等等。而汽车中有的电子仪表,就是有个小液晶屏上面显示各个门,油量等等那个用的是arm,因为不需要大量处理数据,只需采集显示。