`
xiaoer_1982
  • 浏览: 1816102 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(73):.init.setup

阅读更多

快乐虾

http://blog.csdn.net/lights_joy/

lights@hb165.com

本文适用于

ADI bf561 DSP

优视BF561EVB开发板

uclinux-2008r1.5-rc3(smp patch)

Visual DSP++ 5.0(update 5)

欢迎转载,但请保留作者信息

在内核中,为了接收并处理引导程序传递过来的内核参数,定义了一个叫.init.setupsection,每一个内核可以处理的参数都用一个结构体来表示(参见《u-bootuClinux的参数传递》一文):

struct obs_kernel_param {

const char *str;

int (*setup_func)(char *);

int early;

};

再将所有的相关变量放在section中,这一点通过vmlinux.lds.s中的相关代码实现:

.init.setup :

{

. = ALIGN(16);

___setup_start = .;

*(.init.setup)

___setup_end = .;

}

这几行链接脚本放在vdspldf中就是:

.init.setup

{

INPUT_SECTION_ALIGN(16)

___setup_start = .;

INPUT_SECTIONS($LIBRARIES_SML3_CM(.init.setup))

___setup_end = .;

} > MEM_UCLINUX_INIT_SETUP

但是这样链接出来会有问题:

Input section

Start address

Size

Input file

.init.setup

0x1b0000

0xc

arch-kernel.dlb[early_printk.doj]

.init.setup

0x1b0010

0x18

kernel.dlb[clocksource.doj]

.init.setup

0x1b0030

0x18

kernel.dlb[panic.doj]

.init.setup

0x1b0050

0x30

kernel.dlb[printk.doj]

.init.setup

0x1b0080

0xc

kernel.dlb[resource.doj]

.init.setup

0x1b0090

0x3c

kernel.dlb[sched.doj]

.init.setup

0x1b00d0

0x54

init.dlb[do_mounts.doj]

.init.setup

0x1b0130

0xc

init.dlb[do_mounts_initrd.doj]

.init.setup

0x1b0140

0x18

init.dlb[do_mounts_rd.doj]

.init.setup

0x1b0160

0xc

init.dlb[initramfs.doj]

.init.setup

0x1b0170

0x18

init.dlb[main.doj]

.init.setup

0x1b0190

0xc

fs.dlb[dcache.doj]

.init.setup

0x1b01a0

0xc

fs.dlb[inode.doj]

.init.setup

0x1b01b0

0xc

mm.dlb[slab.doj]

.init.setup

0x1b01c0

0xc

block.dlb[elevator.doj]

也就是说,VDSP把每个doj文件中的相关section都以16做了对齐再放变量。而vmlinux.lds.s这段链接脚本显然是希望在section的开头做一次对齐,而后所有的数据都按顺序排列。

由于我们已经为这个section手工指定了一块空间,保证了section的开头是16对齐的,因此直接将开头的align改为4

.init.setup

{

INPUT_SECTION_ALIGN(4)

___setup_start = .;

INPUT_SECTIONS($LIBRARIES_SML3_CM(.init.setup))

___setup_end = .;

} > MEM_UCLINUX_INIT_SETUP

1 参考资料

uclinux-2008R1.5-RC3(bf561)VDSP5的移植(67)li1240(2009-2-14)

uclinux-2008R1.5-RC3(bf561)VDSP5的移植(68)PLL配置(2009-02-16)

uclinux-2008R1.5-RC3(bf561)VDSP5的移植(69)SHARED_MEMORY(2009-02-20)

uclinux-2008R1.5-RC3(bf561)VDSP5的移植(70):保留VDSPheap(2009-02-20)

uclinux-2008R1.5-RC3(bf561)VDSP5的移植(71)l1_data_sram_init的疑惑(2009-02-20)

uclinux-2008R1.5-RC3(bf561)VDSP5的移植(72):中断时SP的保存(2009-2-22)

分享到:
评论

相关推荐

    uclinux-2008r1到vdsp5(bf561)的移植记录_v0.1

    这份文档记录了在vdsp5下移植bfin-uclinux-2008r1-rc8内核的过程。 适用于ADSP-BF561。

    uclinux-2.6 for vdsp4.5

    这是将uclinux-2.6 for bf561的内核移植到Visual DSP 4.5下的工程文件。由于csdn空间限制,删除了Documentation及doj,dlb等中间文件或者无关的内容,请先在http://blackfin.uclinux.org/下载2.6.19.3-ADI-2007R1.1-...

    bfin-uclinux-2008r1-csdn-2008-08-28.part01

    本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...

    bfin-uclinux-2008r1-csdn-2008-08-28.part06

    本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...

    bfin-uclinux-2008r1-csdn-2008-08-28.part08

    本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...

    uClinux-dist-20080808-20090112

    uClinux-dist-20080808-20090112.patch uClinux的补丁

    bfin-uclinux-2008r1-csdn-2008-08-28.part05

    本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...

    bfin-uclinux-2008r1-csdn-2008-08-28.part03

    本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...

    bfin-uclinux-2008r1-csdn-2008-08-28.part04

    本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...

    bfin-uclinux-2008r1-csdn-2008-08-28.part07

    本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...

    bfin-uclinux-2008r1-csdn-2008-08-28.part02

    本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...

    uClinux-dist-20070130-nios2-02.diff.gz

    uClinux-dist-20070130-nios2-02.diff.gz

    uClinux-2.4.22-uc0.diff.bz2

    uClinux-2.4.22-uc0.diff.bz2

    uClinux-dist-20040408-lpc

    uClinux,LPC2200,patch

    uClinux-dist-20160919.tar.bz2

    uClinux-dist-20160919.tar.bz2

    uClinux-dist-20040408-lpc-chy-cmj.patch

    为SmartARM2200 开发板和LPC2200 芯片打补丁,将uClinux-dist-20040408-lpc-chy-cmj.patch 拷贝到当前目录下,并执行: cat uClinux-dist-20040408-lpc-chy-cmj.patch | patch –p1 –d uClinux-dist

    Skyeye-1.3.3运行uclinux-2011

    Skyeye-1.3.3运行uclinux-2011 过程详细

    uClinux-dist-20070130.tar.tar

    实时嵌入式操作系统!!

    uClinux-dist-20020927.tar.gz

    该压缩包推荐在Ubuntu环境下下载使用,用于在Ubuntu环境下开发嵌入式操作系统,资源区还有一系列与其配套使用的工具可以下载

    arm-uclinux-tools-base-gcc3.4.0-20040713.sh

    ubuntu交叉编译工具,arm-uclinux-tools-base-gcc3.4.0-20040713.sh

Global site tag (gtag.js) - Google Analytics