TI中文支持网
TI专业的中文技术问题咨询交流网站

sysbios程序out文件的加载?

大家好 问一下
我自己制作的6657板子 裸机状态下 单核 双核加载都是好的

现在试了下sysbios程序的单核加载 加载不起来

想问一下 sysbios程序生成的out文件 和裸机生成的out文件相比 转化需要的工具是否一致 或者需要什么其他要求?

裸机用到的转化工具

Nancy Wang:

流程上是一样的。请问是通过什么方式启动的?仿真器跟一下,PC指针指向哪里?

skysteed:

回复 Nancy Wang:

用的是nand flash
那就是说没有其他特殊的设置 要求? 和裸机程序的编译 转化过程一样?
好的 我试试

skysteed:

回复 Nancy Wang:

大家好 sysbios程序的单核加载好了 和裸机的流程是一样的 只不过sysbios程序比较大 spi加载慢 所以看门狗时间要给大些

裸机的双核 我是按照网上的教程:在核0 核1的CMD文件中定义:.myboot { *.*<boot.obj>(.text) } > BOOT_CORE0

BOOT_CORE0: o = 0x10800200, l = 0x000000c0

.myboot { *.*<boot.obj>(.text) } > BOOT_CORE1

BOOT_CORE1: o = 0x11800200, l = 0x000000c0

这样定义后 核0 核1的"_c_int00"入口地址就分别对应0x10800200, 0x11800200,

同时 核0的程序中给核1发IPC中断 写Boot magic address

现在要实现sysbios程序的双核加载 有个疑问:如何在sysbios中实现:.myboot { *.*<boot.obj>(.text) } > BOOT_CORE0.myboot { *.*<boot.obj>(.text) } > BOOT_CORE1

我尝试修改为:.myboot { *.*<boot.oe66>(.text) } > BOOT_CORE0;

但报语法错误!!!

这是裸机正常编译时_c_int00的地址分配

这是sysbios正常编译时_c_int00的地址分配

Nancy Wang:

回复 skysteed:

具体报错是什么?

skysteed:

回复 Nancy Wang:

报的是语法错误!!!

看来不能这样写!!!

skysteed:

回复 skysteed:

我直接在sysbios工程添加了个cmd文件 指定如下:

SECTIONS{.myboot { boot.ae66<boot.oe66>(.text) } > BOOT_CORE0}

编译可以通过 _c_int00也指向了BOOT_CORE0内存

这样 单核都加载不起来了!!!kao kao kao

skysteed:

回复 Nancy Wang:

说错了 应该是spi nor flash

skysteed:

回复 Nancy Wang:

忘了说了
我现在核0跑的是sysbios核1跑的是裸机程序
核0单核sysbios程序可以加载 但在工程添加cmd文件 在cmd里面指定:
SECTIONS
{
.myboot
{
boot.ae66<boot.oe66>(.text)
} > BOOT_CORE0
}
反而 核0单核sysbios程序跑不起来了

skysteed:

回复 Nancy Wang:

给大家汇报下 双核加载起来了 一个核是SYSBIOS 一个核是裸机
本质和双核都是裸机的加载流程是一样的
之所以之前没有成功 问题是
在核0sysbios程序中 添加cmd文件如下:
SECTIONS
{
.myboot
{
boot.ae66<boot.oe66>(.text)
} > BOOT_CORE0
}

我当时又在cfg文件中添加了一句Program.sectMap[".myboot"]= "BOOT_CORE0";
两者冲突了
可能cfg的级别比cmd的级别高 编译出的out文件中只有"_c_int00"入口地址 没有.myboot段的信息了所以加载不起来

屏蔽Program.sectMap[".myboot"]= "BOOT_CORE0"后 生成的out文件就既有"_c_int00"入口地址 也有.myboot段的信息了
加载就OK了

赞(0)
未经允许不得转载:TI中文支持网 » sysbios程序out文件的加载?
分享到: 更多 (0)