这个项目只是移植linux,没有过多涉及Linux内核,用的是linux-2.6.36.移植的平台是ARM v6的FPGA平台。最终结果操作系统终究在平台上运行起来了。
于此记录下技术细节。大部分的知识和技巧都取自互联网前辈的工作,最终在这个项目中得到实践,收获颇大。各中细节当事之时可娓娓道来,过些时日则需要时日来思索了。故录之一二。
修改最大的两处:
/bootloader
/arch/arm/mach-myplatform
其中前者有章可循,代码量约一千,后者需要借鉴其它平台的文件,书写对应的平台支持文件。
另有几处:makefile文件作对应修改,相关文件 。
需要的硬件环境还有:
烧写器, flash, fpga平台等配套
还有一处需要自我规划的是,内存布局
嵌入式平台差异性太大,但总体是相同的
其中采用的是统一编址
flash
串口
ddr
pcie
其它外设
和我们相关的有flash, ddr地址,这里是绝对物理地址
1. flash 16M 0x0000 0000 - 0x00ff ffff
2. 串口 64K 0x01e2 0000 - 0x01e2,ffff
3. ddr 2G 0x1000 0000- 0x8fff,ffff
各部分功能就很简单了,ddr相当于内存了,对应操作系统,flash就是烧写代码的区,串口就是对应接口