基于BIOS多核工程的各个核在cfg文件中的内存分配问题,我们在程序中根据DNUM来分配不同的核进入不同的处理中,但是在cfg文件各个核的代码段、far段、text段、堆栈段等如何区分呢?本人目前使用C6678中的两个核,主核0负责网口实时接收数据,核1负责算法处理。而在核1处理数据进入子函数后出现子函数返回主函数的地址被改写,以至于出现如下问题
c041490 A13=0x2
A14=0x1ffffffe A15=0x0
A16=0x861b38 A17=0x1
A18=0x861b2c A19=0x861b1c
A20=0x861b34 A21=0x861b24
A22=0x861b30 A23=0x861b3c
A24=0x1 A25=0x861b44
A26=0x861b20 A27=0x861b40
A28=0x861b10 A29=0x861b18
A30=0x8100 A31=0x1
B0=0x8100 B1=0x1
B2=0x861b08 B3=0x80856aae
B4=0x861af8 B5=0x861b28
B6=0xc053938 B7=0xc05a91a
B8=0x2 B9=0x861ad0
B10=0x861b00 B11=0x2
B12=0x861b04 B13=0x861b0c
B14=0x80856b16 B15=0x861a28
B16=0xc05957c B17=0x0
B18=0x2e20000 B19=0x0
B20=0x0 B21=0x861a60
B22=0x0 B23=0x861a60
B24=0xffffffff B25=0xffffffff
B26=0xfffffff7 B27=0x0
B28=0x66666666 B29=0x30666666
B30=0x8002c698 B31=0x8085fdb4
NTSR=0x0
ITSR=0x2
IRP=0xc053938
SSR=0x0
AMR=0x7
RILC=0x861aac
ILC=0x80856c08
Exception at 0x0
EFR=0x2 NRP=0x0
Internal exception: IERR=0x1
Instruction fetch exception
ti.sysbios.family.c64p.Exception: line 255: E_exceptionMin: pc = 0x31010b1c, sp = 0x0c05a91a.
To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;'
xdc.runtime.Error.raise: terminating execution
根据提示可以知道只是地址冲突产生的问题。我将两个核进行sys reset 后发现
这两个的main函数地址全是一样的,这样的话后面两个同时跑,出现各个段地址被相互改动就很有可能。我的问题是如何在cfg通过配置将两个核的各个段独立出来,这样互不干涉,才能使整个工程不回出现异常!请教一下各位,谢谢咯!(关于修改cmd文件的配置我知道怎么改,但是基于BIOS工程如何改,我不太清楚)
