TI中文支持网
TI专业的中文技术问题搜集分享网站

lib库加载问题dsp28335

我自己编写了一个SCI协议库,使用BOOTLOAD加载到FLASH里,固定的FLASH地址,想在APP程序里也使用该LIB程序,但想节省空间不想重复下载到FLASH里,在CMD配置写如下代码:

   SCI_Protocol:
   {
        SCI_PROTOCOL.lib(.text)
   }    LOAD = BOOTLOAD_SCI,
                    RUN = RAML0,
                    LOAD_START(_SCI_PROTOCOL_LoadStart),
                    LOAD_END(_SCI_PROTOCOL_LoadEnd),
                    RUN_START(_SCI_PROTOCOL_RunStart),
                    PAGE = 0,

                    TYPE = NOLOAD

可以正常的初始化,但是在BOOTLOAD可以正常的通信,在APP里不能够正常通信,使用在线仿真工具查看,发现LIB库的相关变量的地址不对,以及使用赋值语句,但是查看变量值未改变?这个原因是什么呢?可否解决一下?

Young Hu:SCI_PROTOCOL.lib
这里面有全局变量么?您可以生成symbol library去在APP中调用,将symbol和地址对应起来。

还有个思路是,在APP中也定义一个变量,使用绝对地址定义的方式去调用。

我自己编写了一个SCI协议库,使用BOOTLOAD加载到FLASH里,固定的FLASH地址,想在APP程序里也使用该LIB程序,但想节省空间不想重复下载到FLASH里,在CMD配置写如下代码:

   SCI_Protocol:
   {
        SCI_PROTOCOL.lib(.text)
   }    LOAD = BOOTLOAD_SCI,
                    RUN = RAML0,
                    LOAD_START(_SCI_PROTOCOL_LoadStart),
                    LOAD_END(_SCI_PROTOCOL_LoadEnd),
                    RUN_START(_SCI_PROTOCOL_RunStart),
                    PAGE = 0,

                    TYPE = NOLOAD

可以正常的初始化,但是在BOOTLOAD可以正常的通信,在APP里不能够正常通信,使用在线仿真工具查看,发现LIB库的相关变量的地址不对,以及使用赋值语句,但是查看变量值未改变?这个原因是什么呢?可否解决一下?

mengsheng WU:

回复 Young Hu:

里面有全局变量的,但是仅在SCI_PROTOCOL.lib内部使用,不对外开放的,symbol library是如何生成,有相关文档吗?

我自己编写了一个SCI协议库,使用BOOTLOAD加载到FLASH里,固定的FLASH地址,想在APP程序里也使用该LIB程序,但想节省空间不想重复下载到FLASH里,在CMD配置写如下代码:

   SCI_Protocol:
   {
        SCI_PROTOCOL.lib(.text)
   }    LOAD = BOOTLOAD_SCI,
                    RUN = RAML0,
                    LOAD_START(_SCI_PROTOCOL_LoadStart),
                    LOAD_END(_SCI_PROTOCOL_LoadEnd),
                    RUN_START(_SCI_PROTOCOL_RunStart),
                    PAGE = 0,

                    TYPE = NOLOAD

可以正常的初始化,但是在BOOTLOAD可以正常的通信,在APP里不能够正常通信,使用在线仿真工具查看,发现LIB库的相关变量的地址不对,以及使用赋值语句,但是查看变量值未改变?这个原因是什么呢?可否解决一下?

mengsheng WU:

回复 Young Hu:

我还想问一个问题,我如何得到程序所以的全局变量所分配的地址?有相关的途径吗?我去解析MAP文件,里面内容太多?

我自己编写了一个SCI协议库,使用BOOTLOAD加载到FLASH里,固定的FLASH地址,想在APP程序里也使用该LIB程序,但想节省空间不想重复下载到FLASH里,在CMD配置写如下代码:

   SCI_Protocol:
   {
        SCI_PROTOCOL.lib(.text)
   }    LOAD = BOOTLOAD_SCI,
                    RUN = RAML0,
                    LOAD_START(_SCI_PROTOCOL_LoadStart),
                    LOAD_END(_SCI_PROTOCOL_LoadEnd),
                    RUN_START(_SCI_PROTOCOL_RunStart),
                    PAGE = 0,

                    TYPE = NOLOAD

可以正常的初始化,但是在BOOTLOAD可以正常的通信,在APP里不能够正常通信,使用在线仿真工具查看,发现LIB库的相关变量的地址不对,以及使用赋值语句,但是查看变量值未改变?这个原因是什么呢?可否解决一下?

Young Hu:

回复 mengsheng WU:

比较简单的方法就是解析map文件,根据函数或者变量名搜索即可

赞(0)
未经允许不得转载:TI中文支持网 » lib库加载问题dsp28335
分享到: 更多 (0)