This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

请教函数绝对地址定位问题



    很多函数都用 #pragma CODE_SECTION("xxx");分配到了xxx段,但各函数的地址会在xxx段中不固定。请问如何让各函数位置固定又都属于xxx段呢?

    目前是把需要定位的函数单独分配到了某一段中,再在cmd文件中分别分配绝对位置。但这样做就需要把各段分别拷贝到内存中了。

  • 据我所知,在CCS下,基本上就是这么操作了。不知道为什么要精确到某个地址?使用的时候取函数地址或者函数名,就可以了。

  • 因为我这里dsp flash中有一部分代码需要要更新,另一部分保持不动不烧写,更新的代码要用到不动部分的函数,目前是用绝对地址访问不动部分的函数。

  • 可以专门划一个用于更新的区域,另一个区域是不动的函数。,

  • 这个可以用cmd分配来搞定。

    首先,flash硬件上的每个扇区在cmd中可以灵活划分,所以你可以把flashA扇区一分为二,为三 等等。

    你应该是在线升级设计,如果要固定一个函数的话,你先通过编译,知道这个函数大概多大,然后比如在flashA这个扇区中画出一部分flash出来,定义个段,然后用

    #pragma CODE_SECTION(函数名, "自定义段名");

    函数

    ……

    当然,这个flash扇区就不可以擦除了。

    所以用cmd是很方便的,甚至还可以把库文件中的函数固定住地址。