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

tms570 bootload app 无法调试,卡死在startup.c的

我的app项目本来是好的。底层代码是由hcl生成。

由于要做bootload,app 代码放到 0x8000 以后的地方,需要修改项目的sys_link.cmd文件,

将:

VECTORS (X) : origin=0x00000000 length=0x00000020

FLASH0 (RX) : origin=0x000008020 length=0x0005FEE0

修改成

VECTORS (X) : origin=0x000000800 length=0x00000020

FLASH0 (RX) : origin=0x0000020 length =0x00057FE0

发现项目无法debug。最终调试发现启动的时候,程序卡在starpup.c文件的 void _c_int00(void) 函数中。
系统的驱动代码是用HCG产生的。sys_link.cmd文件也是HCG产生的。后期手动修改的。

而我手动建立的小工程(未使用hcg),完全没有问题,可以debug。也可以通过bootload下载并正确运行

请问
1、使用了hcg生成代码的工程,在修改sys_link.cmd需要注意什么?
2、使用HCG,是否可以配置flah从而决定sys_link.cmd(我在该配置软件中未找到配置选项)
3、是否有其它的方向!!!

Susan Yang:

请问您现在使用的芯片具体型号是什么?若是可以的话,请给出完整的sys_link.cmd文件

不过我的电脑由于限制,暂时没有成功安装HCG,所以会在汇总您的信息后,将问题发给同事来测试一下

,

wei peng:

您好:
单片机的具体型号是:TMS5700432BPZQQ1

sys_link.cmd为HCG生成,下面斜体部分是原始的文件内容(由于文件类型受限制。无法作为附件传输)

/*—————————————————————————-*/
/* sys_link.cmd                                                               */
/*                                                                            */
/* 
* Copyright (C) 2009-2016 Texas Instruments Incorporated – www.ti.com  


*  Redistribution and use in source and binary forms, with or without 
*  modification, are permitted provided that the following conditions 
*  are met:
*
*    Redistributions of source code must retain the above copyright 
*    notice, this list of conditions and the following disclaimer.
*
*    Redistributions in binary form must reproduce the above copyright
*    notice, this list of conditions and the following disclaimer in the 
*    documentation and/or other materials provided with the   
*    distribution.
*
*    Neither the name of Texas Instruments Incorporated nor the names of
*    its contributors may be used to endorse or promote products derived
*    from this software without specific prior written permission.
*
*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
*  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
*  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
*  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
*  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
*  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
*  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/

/*                                                                            */
/*—————————————————————————-*/
/* USER CODE BEGIN (0) */
/* USER CODE END */

/*—————————————————————————-*/
/* Linker Settings                                                            */

–retain="*(.intvecs)"

/* USER CODE BEGIN (1) */
/* USER CODE END */

/*—————————————————————————-*/
/* Memory Map                                                                 */

MEMORY
{
    VECTORS (X)  : origin=0x00000000 length=0x00000020
    FLASH0  (RX) : origin=0x00000020 length=0x0005FFE0
    STACKS  (RW) : origin=0x08000000 length=0x00001500
    RAM     (RW) : origin=0x08001500 length=0x00006b00

/* USER CODE BEGIN (2) */
/* USER CODE END */
}

/* USER CODE BEGIN (3) */
/* USER CODE END */

/*—————————————————————————-*/
/* Section Configuration                                                      */

SECTIONS
{
    .intvecs : {} > VECTORS
    .text    : {} > FLASH0
    .const   : {} > FLASH0
    .cinit   : {} > FLASH0
    .pinit   : {} > FLASH0
    .bss     : {} > RAM
    .data    : {} > RAM
.sysmem  : {} > RAM

/* USER CODE BEGIN (4) */
/* USER CODE END */
}

/* USER CODE BEGIN (5) */
/* USER CODE END */

/*—————————————————————————-*/
/* Misc                                                                       */

/* USER CODE BEGIN (6) */
/* USER CODE END */
/*—————————————————————————-*/

我的操作是将第57和58行的:

    VECTORS (X)  : origin=0x00000000 length=0x00000020
    FLASH0  (RX) : origin=0x00000020 length=0x0005FFE0

修改成:
       VECTORS (X)  : origin=0x00008000 length=0x00000020
    FLASH0  (RX) : origin=0x00008020 length=0x00057FE0

其它未做修改。修改后可以生成bin文件,但无法调试。会卡死在startup.c的的
void _c_int00(void)函数中。

以上, 是本次回复的全部内容,如有细节描述不清楚,请及时联系我加以补充。
期待您的回复。

谢谢!

,

wei peng:

能不能快点啊,三天了还没回复。

,

Susan Yang:

抱歉,我的电脑刚刚成功安装HCG,我会在确认后给您回复

,

Susan Yang:

若是可以话,请您私信一下您的整个工程文件,谢谢

另外在E2E上有相关的讨论,您也可以先参考一下

e2e.ti.com/…/ccs-launchxl2-tms57012-after-distributing-flash-for-bootloader-test-i-am-not-able-to-use-interrupt-in-application-code

,

Susan Yang:

我在E2E上请教了相关的专家,您可以看一下相关的回复

e2e.ti.com/…/3655655

1. You can use CCS to load the application to x08000, then debug the application.

2. No, the HAL doesn't change the linker cmd file.

,

wei peng:

您好

如何配置到0x8000呢?未找到配置的地方!

,

wei peng:

我当前做法,是在debug后,点击 view disassembly,

然后再 0x8000的位置点击:move to line。

然后开始调试。

一样会卡死!

,

Susan Yang:

链接回复:

请在链接器cmd文件中更改.intvecs的地址,如下

应用程序位于0x10020,intvecs位于0x10020

更改后,该中断将被加载到0x00,但是所有其他代码将被定位到以0x10020开头的地址。

,

wei peng:

感谢您的回复:

可是我没看懂,请直接说吧,我应该怎么改。

是将 .intvecs 修改成 0x8000吗?

如下:

SECTIONS

{

.intvecs : 0x8000

}

,

Susan Yang:

根据描述 他修改的是 VECTORS 的起始地址

赞(0)
未经允许不得转载:TI中文支持网 » tms570 bootload app 无法调试,卡死在startup.c的
分享到: 更多 (0)