b***i 发帖数: 3043 | 1 去年发了这片文章,当时项目尚未开始,所以发了这个问题。现在,学了一个课程,理
解了一些,稍微总结一下。
1 Zynq这个SoC (ARM + FPGA + 各类外设如I2C, spi, Ethernet MAC, SD)有片上ROM,
里面有程序,能够理解FAT32,所以,可以选择性从板上QSPI Flash或者SD卡启动。
QSPI读取过程非常简单,可以像RAM一样线形地址读取。
2 ROM把最初的信息Boot Loader从Flash或者SD上调入片上内存(不是DDR),然后执行
。这个程序初始化FGPA的外设,然后执行U-BOOT。这个Boot Loader和u-Boot是在SD卡
上的同一个文件里(或者都在Flash里面)。UBOOT能够读取Linux Kernel。这个是在SD
卡的另一个文件中,或者在Flash里面另一个偏移地址后,然后被放入RAM Disk里面形
成文件系统。
3 对于嵌入式系统,编译Linux就可以选择需要的Driver,不需要的统统不要。所以启动
过程能够优化提速。整个Kernel最多10MB。据老师说,6-7秒是常态。这个我很满意。
当然2秒更好。这个Zynq有Gb Ethernet, SD, USB等所有外设,所以,这些driver都包
含就不用自己开发这些driver了。
课上我们玩笑,如何在Linux上运行C#? 目前还有一定难度,比如微软说了开源,但是
还没有看到runtime发布。对于嵌入式,我们最需要的外设是串口,而Java官方不支持
。后来又想,如果Windows可以运行在ARM上不就行了?现在看到Windows Embedded
Compact 7(2013)。好像要7美元,还有个开发费500什么的。 |
|