系统时钟与实时时钟的区别?
所谓系统时钟就是操作系统的系统时钟,如果没有重新设置的话,当系统启动后,使用 date 命令可以看出系统时钟通常是在1970 年左右,而实时时钟(RTC)就是硬件时钟,通常带有后备电源,如锂电池等,是随时更新的,与当前实际时间同步。因此,在嵌入式系统启动过程中,系统会自动去读取RTC,然后根据RTC的时间值来正确设置系统时钟,以保证系统时钟的准确性。
因此,在系统的使用过程中,正确设置 RTC 时钟后,可以只关心系统时钟即可,使用 date 命令可以看出系统时钟是同步更新的。
如何在嵌入式系统中使用WIFI?
WIFI技术已广泛使用在PC系统中,对于在嵌入式系统中使用WIFI连接,通常需要考虑如下问题:
1、硬件接口:WIFI部件WIFI模块,通过何种接口与嵌入式系统连接,目前常用的方式有USB接口或串行接口,其中USB接口方式使用较多;
2、驱动支持:几乎所有的WIFI部件或WIFI模块都支持基于Windows系统的驱动,但嵌入式系统通常使用Linux操作系统,因此,基于Linux的驱动支持通常也是嵌入式系统中使用WIFI模块的一个重要条件。
嵌入式系统中网络MAC地址是如何分配的?
PC系统中所使用的网卡,由网络设备制造商保证其生产的每个以太网设备具有一个全球唯一的 MAC 地址。而在嵌入式系统中,网卡常常是开发人员自己设计的,所以需要自行来设定网卡的 MAC 地址。
对于运行 Linux 系统的嵌入式设备,可以直接使用 ifconfig 命令来为网卡设备设定一个运行时临时 MAC 地址,同时还要保证这个临时 MAC 在整个局域网段内是唯一的。因此一个较为可行的措施是,在系统启动中,采用随机数方式为网卡设备产生一个随机的 MAC 地址,然后保存到系统文件中,系统在下次启动时,可以直接使用保存的 MAC 地址,通过这种方式就可以实现MAC地址在网络中的唯一性。
嵌入式系统几种常见存储介质的区别?
目前,嵌入式系统使用比较广泛的存储介质有SDRAM、NOR Flash和NAND Flash等,它们的大致区别如下:
SDRAM 本质上相当于PC中的内存,读写速度都非常快,而且可以直接地址访问,因此一般作为程序的运行空间,但SDARM的内容是掉电即失的,不能用作代码与数据的保存。
NOR Flash 和 NAND Flash 是嵌入式系统中使用最广泛的两种非易失闪存技术,其中,NorFlash 是 Intel 于 1988 年提出来的,它彻底改变了原来由 EPROM 和 EEPROM 一统天下的局面;而 NAND Flash 是在 1989 年由东芝公司发明的,目前 NAND Flash已成为大容量非易失性存储技术的主流。
NOR Flash 与 NAND Flash 的区别主要体现下以下几个方面:
1、读写与擦除速度: NOR Flash 的读速度比 NAND Flash 稍快一些,但NAND Flash 的写速度与擦除速度要远远快于NOR Flash;
2、接口差异: NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节,NAND Flash 器件使用复杂的 I/O 口来串行地存取数据,各个产品或厂商的方法可能各不相同,常用的方式是通过复用 8 个引脚来传送控制、地址和数据信息;
3、易用性: NOR Flash 可以直接像 SRAM 存储器那样连接,而且不需要任何的软件支持,就可以存取其内部的每一个字节,并可以直接在 NOR Flash 中运行代码。而 NAND Flash 由于是 I/O 复用的,因此在使用时,必须先写入驱动程序,才能继续执行其他操作。而且写入信息需要相当的技巧,因为绝不能向坏块写入,这就意味着在NAND Flash 器件上自始至终都必须进行虚拟映射,幸运的是,这个复杂的工作通常由操作系统完成;
4、可靠性与耐用性:由于NAND Flash 中坏块是随机分布且不可避免的,因此在使用时一般都必须采用错误探测 / 错误更正 (EDC/ECC) 算法,而在最大可擦写次数上,NAND Flash 中每个块的最大擦写次数平均是一百万次,而NOR Flash 的擦写次数平均在十万次左右;
5、容量与成本:由于NAND Flash 的单元尺寸几乎是 NORFlash 器件的一半,而且生产过程更为简单,因此在容量与成本上, NAND Flash 占有绝对优势。目前,NOR Flash 主要占据了容量为1 ~ 16MB 闪存市场,而 NAND Flash 则占据了更大容量的市场,这也说明NOR Flash 主要应用在代码存储介质中,而NAND Flash 适合于海量数据存储,如 CompactFlash 、 PC Cards 和 SD 存储卡等。
如何搭建基于Linux系统的交叉编译环境?
所谓交叉编译就是当编译器运行在一个为另一个目标系统产生可执行程序的系统上,而且两个系统使用的操作环境通常不同。交叉编译主要用于当目标系统不具有它自己的编译工具时,或者是主机系统更快或具有更多的软硬件资源的情况下,如对于嵌入式系统开发来说,由于嵌入式系统本身并没有编译工具,因此必须要借助一台PC机,完成程序的编译工作,这台PC机通常称为宿主机。
宿主机 Linux 系统的搭建主要有两种方式:
一种是选择一台 PC 作为开发服务器,然后在 PC 上安装相应的 Linux 系统,可以选择 Redhat 分发版、 Ubuntu 或者是 Mandriva ,这样相应的工具软件和文档比较多,易于上手,这种开发方式适合于团队开发,便于代码维护和节省资源。
另外一种方式是直接在个人PC上安装虚拟机软件,如 Vmware 或者 Virtual PC 等,然后在虚拟 PC 上安装相应的 Linux 系统。这种方式适合于个人用户开发或者是有移动开发需求的用户。
需要说明的是,无论是在实际 PC 上还是虚拟 PC 上搭建宿主机 Linux 系统,对于操作系统软件本身和开发过程来说是没有任何区别的,只是 PC 硬件的存在方式不一样而已。
MIPS代表何意?MIPS/MHZ又代表何意?
MIPS ( Million Instruction Per Second )表示每秒多少百万条指令,如 10MIPS ,表示每秒一千万条指令。
MIPS/MHz 表示 CPU 在每 MHz 的运行速度下可以执行多少个 MIPS ,如 10MIPS/MHz ,表示如果 CPU 运行在 1MHz 的频率下,每秒可执行一千万条指令,如果 CPU 运行在 5MHz 的频率下,每秒可执行五千万条指令。 MIPS/MHz 可以很好的反映 CPU 的运行速度。
如何进行合理的ARM器件选型?
基于ARM架构的嵌入式微处理器,本质上就是一个32 位的单片机,与常见的8位机和16位机比较,具有更高的运算能力,支持更大的地址空间。到目前为止,高端ARM处理器性能已与X86架构处理器接近,但保留了极低的功耗和成本,因此 ARM处理器在32 位嵌入式应用领域占据了领导地位。
ARM 公司一直是以知识产权(IP:Intelligence Property)提供商的身份专注于ARM架构的设计,其他的半导体生产商则通过获得授权方式,设计生产基于ARM架构的处理器,目前几乎所有的国际知名半导体厂商都包含其中,所生产的ARM处理器多大千种以上,因此,在嵌入式系统设计中,合理的器件选型是十分必要的。
合理的ARM器件选型一般应遵循如下原则:
1、选择ARM内核:目前主流的ARM内核有 ARM7、ARM9和Cortex系列等,其中 ARM7 的主频一般在 100MHz 以内,ARM9 系列则在 200MHz~600MHz 左右,Cortex系统的高端产品主频可达1GHz以上;同时,不同的ARM内核功耗差异也较大,因此,需要根据特定的应用需求,选择合适的ARM处理器内核。
2、选择器件等级与片上资源:应根据应用需求选择器件品质,如工业级、商业级或其他;然后选择器件需具备的片上资源,如扩展总线(EBI)、USART数量、LCD控制器、RTC等。在选型过程中,器件等级先于器件资源。而在器件资源中,要选择最适合的,而不是功能最多的。
3、选择器件生产商:工业级器件的代表厂家主要 TI、ATMEL 、NXP、ST等,同时,选择器件厂商中,要有一定的“从众”心理,这样可以获得更多的开放的技术资源。
4、选择器件应用方案提供商:对于大多数嵌入式应用来说,开发人员在初期都会选择1~2款应用开发系统作为参考,以加快产品的研发速度,所以选择应用方案提供商也非常重要。选择应用方案提供商的关键在于比较其提供产品的技术资源的完备性和技术支持服务的开放性,通过借助方案提供商的技术服务,可以越过初期的原始技术积累、缩短产品的开发周期。