在uclinux for bf561中使用B核(1):示例实践
来源:互联网 发布:手机悬浮拍照软件 编辑:程序博客网 时间:2024/06/09 15:52
我们知道,BF561是由两个相同的内核组成的,而ucLinux只使用了其中的A核,在正常情况下B核是不工作的。但是在uclinux for bf561以驱动的方式提供了对B核操作的可能,而且还提供了一个corebld的应用程序,它可以将指定的程序加载到B核中运行。
下面我们就按照user/blkfin_apps/corebld/README中所说的步骤尝试一下吧:
1、在User Settings -> Blackfin app programs中选上BF561 Core B support tools,这样uclinux就会在bin下编译生成corebld这个应用程序和coreb_get_testarg这个程序。此外在test_module目录下还后生成一个dualcore_test.ko的模块,但是在默认情况下这个模块是不会复制到romfs中去的,因此我们需要手工将它复制到romfs目录中去,这样下次make的时候就能打包到uImage中去了。
2、下载uclinux,运行
root:/bin> insmod ./dualcore_test.ko
dualcore_test: module license 'unspecified' taints kernel.
Dual core test module inserted: set testarg = [1]
@ [feb00000]
这个模块是在A核中运行的,在初始化的时候,它在0xfeb0 0000这个地址写入一个整数1,然后等待B核中运行的程序修改此位置的值,在卸载此模块的时候它将再一次输出0xfeb0 0000这个地址处的值,以此证明B核中的程序修改了这个值。
3、运行
root:/bin> corebld coreb_get_testarg
ffite 2Starting Core B
00000
wrote 208 bytes to 0x0xff600000
Write 4096 bytes to 0x0xff500000
wrote 4096 bytes to 0x0xff500000
此时B核中的程序coreb_get_test_arg应该修改了0xfeb0 0000的值。
从corebld.c中的代码可知,它其实是将coreb_get_test_arg作为一个普通文件读出来,再提取出相应的可执行代码,调用/dev/coreb提供的功能将这些可执行代码写入到B核的L1 Instruction Memory中,再调用驱动程序的功能开始执行这些代码。从这个过程可以看出,corebld能调用的可执行文件格式是有限的,目前corebld只能分析elf格式的文件。
4、运行
root:/bin> rmmod dualcore_test.ko
Dual core test module removed: testarg = [2]
由此可见,coreb_get_testarg已经将值修改为2了。
- 在uclinux for bf561中使用B核(1):示例实践
- 在uclinux for bf561中使用B核(4):B核代码的编写
- 在uclinux for bf561中使用B核(2): /dev/coreb提供的功能
- 在uclinux for bf561中使用B核(3):corebld的实现
- 在u-boot for bf561中使用nand flash
- uClinux for bf561中的中断处理(1):中断初始化
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(65):B核启动
- 关于uClinux-2.6(bf561) for VDSP的移植
- SQLite for uClinux(一个可以在嵌入式系统中使用的小型数据库)
- bf561-uclinux常见问题讨论
- uclinux-2008r1-rc8(bf561)内核的console(1):数据结构
- openssl for uclinux(嵌入式系统中使用openssl)
- uclinux中boa的cgi程序示例
- uclinux-2008r1(bf561)内核中与存储管理相关的几个全局变量
- uclinux-2008r1(bf561)内核中内存管理相关的几个结构体
- 在uClinux下使用Flash
- 在VDSP中编译uclinux(1):不可能的任务?
- uclinux-2008R1-RC8(bf561)到VDSP5的移植(1):前言
- ORM
- Boost库安装配置
- javascript特效翻页广告板
- IbatisNet动态SQL
- prototype.js 1.4版开发者手册
- 在uclinux for bf561中使用B核(1):示例实践
- ASP.NET中大结果集的分页[翻译]
- Hibernate的ID的标识符生成器
- ibatisnet使用心得
- netbeans和eclipse的一些使用小技巧
- 火,是无情的
- java--正则表达式(引用)
- 子曰:“吾十有五而志于学.......
- linux防火墙的启动和关闭.