u-boot for vdsp:“裸奔”助手

前阵子研究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工程文件。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
VDSP(Vector Digital Signal Processing,向量数字信号处理)是一种用于高效处理数字信号的技术。它使用向量指令和并行处理的方式,能够同时处理多个数据元素,提高信号处理的速度和效率。 理解VDSP的情况可以从以下几个方面: 1. 并行处理能力:VDSP利用向量指令集和SIMD(Single Instruction, Multiple Data)技术,可以同时处理多个数据元素。这意味着它可以在单个指令的执行中对多个数据进行操作,从而提高信号处理的效率。 2. 数据对齐要求:VDSP通常要求数据在内存中按照特定的对齐方式存储。这是因为向量指令需要访问连续的内存地址来读取数据,如果数据没有按照对齐要求存储,可能会导致性能下降。 3. 应用领域:VDSP广泛应用于数字信号处理领域,包括音频处理、图像处理、视频编解码等。通过利用并行处理能力,VDSP可以加速这些领域中的算法和操作,提高实时性能和响应速度。 4. 硬件支持:VDSP通常需要硬件支持,例如特定的处理器或DSP芯片。这些硬件提供了向量指令集和并行处理单元,使得VDSP能够发挥其优势。 总之,VDSP是一种利用向量指令和并行处理的技术,用于高效处理数字信号。它在提高信号处理速度和效率方面具有重要作用,并广泛应用于音频、图像、视频等领域。理解VDSP的情况可以帮助我们选择合适的技术和工具来进行信号处理任务

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌云阁主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值