u-boot for vdsp:“裸奔”助手
来源:互联网 发布:淘宝pid获取 编辑:程序博客网 时间:2024/04/30 19:20
前阵子研究u-boot,突发奇想,不知道u-boot 是否可以在VDSP下编译,如果可以,那岂不是大大方便调试工作。正好也可以借此熟悉u-boot的结构(猜想应该不是很复杂),也可以进一步熟悉BF561这块CPU。
说做就做,经过两个多星期的努力,终于大功告成! 此外还发现u-boot其实可以当一个开发模板来使用,如果在程序中不需要复杂的任务管理、网络栈等,完全可以以u-boot为基础进行开发!
硬件平台:
bf561,4M NorFlash, 64M SDRAM, 2G NandFlash
软件平台:
VDSP5.0, u-boot-1.1.6 for bf561
以下为修改代码的简要说明
1、修改了U_BOOT_CMD的定义,为每一个命令加上了一个dummy函数,并在board_init_f中调用这些dummy函数,如果不这样,VDSP就会在工程中将这些命令去除,因为它认为没有被引用的代码是可以删除的。
2、将u-boot.lds.s中的数据段定义改为用ldf文件实现,可自行修改。
3、B核的代码入口改为CoreB/startb.s中的start1,可在LDF文件中修改,VDSP自动生成的代码入口点是*_crt.s中的start。
4、A核的代码入口改为u_boot/cpu/bf561/start.s中的start。
5、默认未允许B核运行,可自行加上。
6、由于A核要设置PLL(在cpu/bf561/init_sdram.s中),因此在VDSP中调试时仍然需要让B核运行,当前B核代码只是简单地进行idle状态(死循环)。
7、修改了汇编代码中的一些简单语法问题,如
( R7 : 0, P5 : 0) = [ SP ++ ];
改为
( R7:0, P5:0) = [ SP ++ ];
8、将include/asm/entry.h中的.macro改为用#define实现。
9、修改了C中嵌入汇编的一些简单问题,如
#define __sti() { /
__asm__ __volatile__ ( /
"r3 = %0;" /
"sti r3;" /
::"da"(irq_flags):"R3"); /
}
改为
#define __sti() { /
__asm__ __volatile__ ( /
"r3 = %0;" /
"sti r3;" /
::"d"(irq_flags):"R3"); /
}
10、u_boot原先的全局变量gd是放在P5中的(include/asm/global_data.h),将之修改为C的全局变量,地址由VDSP分配。
11、将一些基本的函数如memcpy等改用VDSP中的库函数。
12、支持nand flash,目前所用的型号为:k9wag08u1m,为两片1G的芯片堆叠而成,CE1和CE2接到561的PF0与PF1,RB1与RB2接到561的PF4和PF5,ALE接到PF2,CLE接到PF3。
13、支持NorFlash。
14、不支持网络。
15、使用时需要将include下的asm-blackfin改为asm。
修改过的工程文件可在csdn资源中找到(http://download.csdn.net/source/276897),可解压后覆盖u-boot的所有同名文件。然后使用vdsp目录下的u-boot.dpg工程文件。
- u-boot for vdsp:“裸奔”助手
- 关于u-boot-1.1.6(bf561) for VDSP的移植
- u-boot在vdsp 4.5下的移植
- U-Boot for LPC3250
- U-Boot for Zed
- u-boot for at91sam9260ek
- 编译u-boot for at91sam9260
- U-BOOT for Mini6410 移植
- u-boot-2012.07 for FL2440
- U-BOOT FOR S3C2410 NAND-BOOT
- U-boot-1.1.6-2008R1到vdsp5(bf561)的移植记录(14):使用VDSP库
- u-boot for s3c44b0x 移植心得
- u-boot for bf561中的命令实现
- u-boot for bf561中的命令实现
- u-boot for fun (1) -- read RAEDME
- u-boot for fun (2) -- read Makefile
- Porting U-boot for SPEAr310(arm926) --- 1
- Porting U-boot for SPEAr310(arm926) --- 2
- 外壳扩展创建快捷方式和获取快捷方式的目标对象
- 明天有SUN的讲座
- 页面出现星星
- 黑客帝国动画效果
- DotFix NiceProtect v 2.8
- u-boot for vdsp:“裸奔”助手
- 鼠标移动代码(使用光标健移动)
- 时间代码1
- OpenedFilesView v1.10
- 时间函数代码.rtf
- WinHEX 14.5 Final
- Unpacker ExeCryptor 2.x.x. beta1,beta2 byRSI
- 滚动字幕.rtf
- Modified PhantOm 1.1.5 plugin for EXECryptor 2.4.1 by Computer_Angel