关于u-boot-1.1.6(bf561) for VDSP的移植

时间:2021-08-30 08:09:40
 
   
1   开发环境
仅针对Visual DSP 4.5进行了调试,5.0则没有。
2   目录结构
1、在移植过程中,基本保留了原有的目录结构不动。
2、在其根目录下新建了一个vdsp的子目录,用以保存VDSP的工程文件和生成的临时文件。最终生成的DXE文件也保存在这里。
3、将include目录下的asm-blackfin名称改为asm,因为在windows下无法使用alias。
 
3   代码修改
1、因为在移植过程中,首先用工具将所有的代码注释掉了,然后根据需要去除相应的注释。所以如果你发现在别处可以用的函数或者结构体在这里用不了,或者有链接错误等等,请不要惊讶,请在源文件中查找其声明或者实现,再去除其注释即可。
2、相应硬件配置的修改放在include/configs/bf561-ezkit.h中,请自行修改串口,SDRAM之类的参数。
3、对于自行添加的COMMAND,请添加一个dummy function,然后在main函数中引用它,否则可以无法正确的链接。
4、对于make或者configure时自动生成的文件,如include/version_autogenarated.h等,采用的办法是首先在linux下生成,然后COPY过来,如果你发现缺少什么自动生成的文件,可参考此办法。
4   crt
u-boot提供的crt是cpu/bf561/start.S,但是为了方便,没有使用此文件,而是直接使用了VDSP向导生成的CRT文件,u_boot_basic_crt.s。所以你在工程中是找不到start.s和start1.s这两个文件的。
在start.S中完成了SDRAM的初始化工作,我则将这部分代码独立出来,放在了maina/init_sdram.c文件中,然后在main函数中调用它。
因为使用了VDSP向导生成的CRT文件,你应该可以调用VDSP库中的函数。
5   链接文件
u-boot原有的链接文件是board/bf561-ezkit/u-boot.lds.s,在可种植中没有使用它,而是使用了VDSP向导生成的ldf文件,但是参照u-boot.lds.s的内容做了部分修改。