×

芯片解密常见知识问答

  1、问:为何要使用嵌入式Linux? TOP
  答:Linux的能力、稳定性、弹性及scalability,再结合它所支援许多微处理机的架构、硬件设备、图形支持和通信协议,建立了Linux逐渐成为受欢迎的软件平台,并被广泛的应用在各种产品中。Linux的使用可以延伸到计算机应用的一系列产品,从IBM微小的Linux腕表到手持式装置(包括PDA和手机)和消费性娱乐系统到资讯家电产品、电话网络设备等。因为Linux以开放的和自由的原始码的形式存在,它的许多差异性和结构及支持的软件,都使Linux逐步发展,以满足市场和各种应用所需的多变化需求。有小的程序核心版本和加强即时处理的版本,而尽管最初的Linux是PC架构的作业系统,现在的Linux已经可以架构在各种非x86的CPU上,而且在不论是否具有存储器管理单元的CPU,其中包括PowerPC, ARM, MIPS, 68K 和甚至微控制器上。
  2、问:Linux和uClinux的比较?它们都支持何种文件系统? TOP
  答:1)、因为uClinux是支持没有存储管理单元的微处理器,因此多任务处理的能力变得很微妙。绝大部分在uClinux上执行的应用程序,并不需要多任务处理的能力。除此之外,大部分的二进制执行码和原始码都会被重新写过以便更紧缩和减少程序码,这意味着uClinux和Linux2.0的核心比起来将是非常非常的小。 2)、NFS、ext2、ext3、MS-DOS和FAT16/32是Linux能支持的几种文件系统,他与uClinux最大的不同点就在于uClinux没有MMU管理单元。
  3、问:开发嵌入式LINUX有哪些具体调试方法?TOP
  答:当为一个新硬件开发相应的嵌入式LINUX系统时,要用到的典型调试工具的序列和步骤是:1)、修改代码使之能读写串口,并使用gdb运行该程序。这将允许它向另一台正运行着gdb程序的LINUX主机通信;gdb通过串口与测试计算机上的gdb目标码会话并给出全部C源码级的调试信息;2)、借助gdb执行余下的,直到LINUX内核开始接管之前的所有硬件和软件的初始化代码;3)、一旦LINUX内核启动后,上述的串口就成为LINUX的控制台端口,可以利用它的便利来进行后继开发过程,并可以使用gdb的内核调试版本kgdb.
  4、问:请问在什么情况下要用到评估板?TOP
  答:JTAG仿真,要有板子才可以进行硬件调试。如果你自己手头没有板子,又想在自己的板子做好之前进行仿真调试,则需要购买一块评估板。自己在做板子的时候,也可以借鉴评估板的电路。
  5、问:同调试程序连接时为什么出现 *** Data Abort ***?TOP
  答:原因有以下几点:1)当debugger启动时,处理器将停在当前PC值指向的地方,同时读取该PC值周围一部分地址的存储器值。如果这些地址正好没有被使用或指向空,就会出现Data Abort,这种情况属于正常。 2)如果是使用了存储器(RAM或ROM),出现这种问题表明在存储器访问上可能存在数据错误,请检查你的存储器。 3)当用户下载程序到目标板时,下载的目标地址是在编译器中指定的,如果编译器里设置的目标地址与目标板上可写存取器的物理地址不能对应,也会报Data Abort,因为调试器试图往错误的物理地址写入用户程序而出错。这时候需要检查并重新设置编译器选项。 4)JTAG口的时钟速率过快。
  6、问:在调试过程中经常停止,有时候甚至进不了调试程序?TOP
  答: 在排除了调试程序本身的问题后,这一类带有随机性的问题可以考虑是硬件时序或逻辑问题引起的,最主要的可能性是nTRST和系统reset信号不可靠。Reset信号的不可靠包含两方面:正常工作时要求稳定地保持高电平;复位状态时要求有足够时间的低电平。Reset电路因为简单通常会被忽略,但事实表明很多貌似奇怪的问题最后都归结在这里,无论是从调试的角度还是最后稳定工作的要求,我们都建议你采用一个好的reset电路(或是IC)来代替简单的R-C电路。
  7、问:可以只用C语言而不用汇编进行ARM的开发吗? TOP
  答:不行,一般就启动代码与中断初始化需要用汇编。