嵌入式(ARM+Linux(uClinux))分为两个部分:硬件和软件。(就这两个方面而言,这两者有何侧重点吗?研发时需要注意哪些方面呢?)
一. 软件
1. bootloader
1)能够基于ADS和GCC来编写,编译等。(这两者除了在使用汇编和编译器上有所不同之外,更有什么不同呢?哪个是侧重点呢?)
2)在引导进入C语言的main()函数的时候,上面两个方面有何不同?其中ads是通过他的库函数来实现的,那用gcc研发呢?
3)编写bootloader的时候主要是要符合初始化的顺序,那除了这一点,其他还需要注意些什么?在写bootloader的时候应该把重点放在哪里(还是初始化的过程,还是一些驱动的修改)?
4)对于arm处理器的各种模式,我应该如何去理解?怎么样才能在实战中使用呢?就比如arm处理器提供了fiq模式,在uClinux内核中就根本没有去利用到这种模式,那他究竟有什么用途,我们如何去使用呢,难道是了解一下,就能够了?
2. 交叉编译器
1)就arm平台而言,arm7(一般不带MMU)和arm9(基本上都带MMU)两种,随之而来就会有了两种编译器arm-elf和arm-linux,其中arm-elf是线程的有编译好的,而arm-linux是需要自己编译的,那对于一个软件研发人员而言,这个方面我们应该达到什么需要呢?
3. 内核相关
1)2.4和2.6内核的区别(主要是内核的使用和驱动的研发上有何区别?)
2)内核的移植,主要是针对于arm处理器的板级移植,芯片级移植,这方面有哪些工作需要做呢?在移植的过程中需要注意什么呢?
3)内核编译,在内核编译中看到那么多选项,我如何是好呢?对于编译过程中产生的错误,我应该通过何种途径去解决呢?
4)内核研发,当应用时,可能需要去修改内核来实现自己的应用,那修改内核有没有一个什么准则?哪些方面是突破点呢(从哪里入手,从里到外?从外到内?)?
4. 驱动
1)正如上面提到的,在2.4和2.6的内核下研发驱动有和不同?在arm7和arm9上研发驱动有何不同(在arm9上似乎需要用内存映射访问?)?
2)在研发驱动的时候,各个外围设备是否有相同的地方和不同的地方?当您学会一种设备的驱动的时候,再写其他设备的驱动需要注意什么呢?哪些方面是和处理器相关的呢?
5. 应用程式
1)应用程式的研发,应用程式能够自己重新编写,对于网上已有的,还能够下载下来重新编译生成,在这两者的研发时,需要注意些什么呢?就比如,从网上下载源代码后,需要通过配置,编译就能够了吗(其他呢)?
2)应用程式的移植编译,对于其他平台的软件要移植到Linux平台上,应该如何研发呢?就比如windows平台上用vc编写的软件,如何快速地移植到Linux平台上呢?
6. 其他
1)各种软件研发工具的使用,推荐
二. 硬件
1. 硬件选型
1)处理器的选型,就比如arm处理器如何选型呢
2) 外围设备选型
2. 原理图设计
1)原理图设计的步骤,注意事项(比如功率是否够,电流是否够?哪些地方需要加上拉电阻等等)
2)设计原理图时,哪些方面是要先测试验证的呢?
3. PCB设计
1) PCB设计的步骤,注意事项(如何减少串扰,反射等等)
2) 对于高速PCB设计有何不同?
3)哪些基础知识是必须的(比如各种封装的使用等等)
4. EMC
1) 如何减少电磁干扰等等
5. 其他
1)各种硬件研发工具的使用,推荐。
js001sdx 于 2009-08-07 16:28:08发表:
学习
t84770 于 2008-07-20 12:08:50发表:
看了 路过
lzllinux 于 2008-07-19 23:09:41发表:
挺好!!!!!!!接着来!!!