1.BOOT方式
2.内存,寄存器映射
3.片上设备控制
比如,DM642可以从PCI BOOT可以从Flash BOOT,到底如何BOOT是由外部引脚配置的,即硬配置,对于编程来说是不需要理解太多的,硬件工程师说明的。如果是PCI BOOT就多看看PCI BOOT方面的资料。有时开发板提供例子,比如BSP/BSL/(板级支持包什么名字都一个意思,一套软件上的接口),Ti为DM642提供了CSL(芯片支持库,主要是片上设备控制的C库)。需要说明的时,没有CSL一样可以编DSP,那就是查设备的寄存器的用法,这些都是芯片厂家肯定会提供的。
除此之外,Ti为DSP提供了一个内核环境。作为coder,先可以不了解很多内核机制,只要知道这个内核怎么用就可以了,事实上我也没有去了解很多内核的机制,当然所有内核的机制都差不多。如果有其他内核编程经验就很容易理解了。
然后,C语言当然是必须掌握的。先不说软件思想有多少,至少要很清楚源代码到二进制是如何的一个过程。这些都不是DSP特有的。
最后,底层编程调试工作一般都是仿真,所以对仿真也是要有一定理解的,简单地提一下,DSP仿真就是J-tag。通过捕获DSP 的Jtag口就可以仿真了,其内部是一种通讯。比如仿真时要观察DSP的RAM,就是通讯的方式通知DSP,DSP内部得到RAM的数据,发到J-tag,一切都是厂商和硬件做好的,不多解释了。
下面解释一下DM642从和PC配合时启动
1.上电后,DM642处于RESET状态
2.PC上电后,BIOS为DM642分配资源
3.PC启动操作系统,操作系统发现PCI设备,加载设备驱动
4.设备驱动得到DM642的RAM(包括寄存器)到PC的资源映射(IO或者Memory)
5.PC像控制别的设备一样写寄存器,写内存,最终就是把固件写到DM642外部RAM里
6.然后就是让DSP脱离RESET,控制一个寄存器或者什么的 |