查看: 9894|回复: 11

[MQX] MQX无法进行调试

[复制链接]

该用户从未签到

33

主题

441

帖子

0

新手上路

Rank: 1

积分
7703
最后登录
1970-1-1
发表于 2010-4-15 22:57:45 | 显示全部楼层 |阅读模式
 今天在搞定无法用BDM烧写MQX后,又遇到了个问题,我在烧写成功后,点debug想启动调试,结果每次都出现同样的错误
err1.jpg
打开log window发现每次都是在出现这样的log信息后弹出上述对话框的
err2.jpg
即向memory address 0x08这里写入4个字节的时候出错。
我的板子和bdm应该是正常的,因为我一直用它调试,随便找个非MQX的project调试都没问题。
我也尝试了直接用MQX里面自带的那个M52259EVB的example也出现同样的错误,可以烧写,不能调试
 
BTW:BDM是开源的OSBDM-JM60
请求支援!谢谢
我知道答案 目前已有11人回答
回复

使用道具 举报

该用户从未签到

3

主题

87

帖子

0

中级会员

Rank: 3Rank: 3

积分
306
最后登录
1970-1-1
发表于 2010-4-16 16:10:32 | 显示全部楼层

RE:MQX无法进行调试

你的板子用P&E的BDM可以调试吗?如果用P&E的可以,那应该还是OSBDM的问题。如果不可以,那要查一下CW里面的设置,是否选用了正确的调试target,以及你的MQX的插件是否正确安装的CW里面了。
你的CW和MQX都是什么版本?

该用户从未签到

48

主题

141

帖子

1

中级会员

Rank: 3Rank: 3

积分
385
最后登录
2020-8-7
发表于 2010-4-17 21:41:29 | 显示全部楼层

RE:MQX无法进行调试

我没遇到过这样的问题啊,你可以从最开始的地方开始调试(默认是___boot),
如果连__boot都到不了,就应该是你配置问题了

该用户从未签到

33

主题

441

帖子

0

新手上路

Rank: 1

积分
7703
最后登录
1970-1-1
 楼主| 发表于 2010-4-18 21:32:30 | 显示全部楼层

回复:MQX无法进行调试

 shenli:
我用的MQX版本是最新从FSL网站下的3.5.1
CW是for coldfire v7.1 不过打了个v71-1的patch,是special edition的
我有个怀疑,是否调试MQX必须要professional edition的CW?
另外,我这里有3种BDM,自己做的OSBDM-JM60,从苏州大学飞思卡尔那个实验室买来的tblcf,以及P&E.前两种我都试了都不行,但问题是,随便找个非MQX的工程都可以调试。而P&E的BDM就更奇怪,早先我试过它根本无法调试MCF52259,从来没有成功过一次,我现在已经不用P&E的BDM 了,感觉不是想象的那么好。
(我用P&E的BDM调试过MCF52211,说实话感觉并不怎么稳定,甚至还不如开源的稳定,我不确定是不是板子有问题)
 
njhuangyuan:
我现在是根本不能启动调试,所以也就不存在从___boot这里开始调试的问题。
 

该用户从未签到

3

主题

87

帖子

0

中级会员

Rank: 3Rank: 3

积分
306
最后登录
1970-1-1
发表于 2010-4-20 16:18:54 | 显示全部楼层

RE:MQX无法进行调试

很奇怪,我们一直都是用的P&E的BDM,是不是CW的选项没有选对?当然P&E的BDM没有Freescale自己的USB TAP稳定。不过USB TAB很贵。如果是版本的问题的话,我给你发一个临时的license试试。

该用户从未签到

3

主题

87

帖子

0

中级会员

Rank: 3Rank: 3

积分
306
最后登录
1970-1-1
发表于 2010-4-20 16:23:40 | 显示全部楼层

RE:MQX无法进行调试

刚才和我同事确认了一下,MQX3.5.1一定要用CW7.2 。你可以从中文服务器下载,比从英文网站下载快:http://www.freescale.com.cn/CodeWarrior/Evaluation_Software.asp
到这个目录下找CW7.2的评估板,装完之后也是30天的profession

该用户从未签到

33

主题

441

帖子

0

新手上路

Rank: 1

积分
7703
最后登录
1970-1-1
 楼主| 发表于 2010-4-23 08:35:20 | 显示全部楼层

回复:MQX无法进行调试

 OK。thanks,我来试试

该用户从未签到

33

主题

441

帖子

0

新手上路

Rank: 1

积分
7703
最后登录
1970-1-1
 楼主| 发表于 2010-4-26 13:02:59 | 显示全部楼层

回复:MQX无法进行调试

 晕啊,用cw7.2试了下,问题依旧。
我怀疑是不是link文件有问题。下面是.lcf文件,贴出来请大家帮我看看(注:这个文件原先是mcf52259evb bsp下的,我直接考过来,改了下,因为我的板子上没有MRAM,只有 外扩的SRAM,其他没做任何改动)
 
MEMORY
{
## external sram        (RW): ORIGIN = 0x80000000, LENGTH = 0x0002000  # SRAM is not used for linking
## sram        (RW): ORIGIN = 0x20000000, LENGTH = 0x00010000
 
 
   vectorrom   (RX): ORIGIN = 0x00000000, LENGTH = 0x00000400
   cfmprotrom  (RX): ORIGIN = 0x00000400, LENGTH = 0x00000020
   rom         (RX): ORIGIN = 0x00000420, LENGTH = 0x0007FBE0    # Code + Const data
##   flashx      (RW): ORIGIN = 0x00000420, LENGTH = 0x0007FBE0    # Internal flash
   
   ram         (RW): ORIGIN = 0x20000000, LENGTH = 0x00010000  # SRAM - RW data
 
   # kernel space starts after RAM variables (Location of MQX Kernel data + MQX heap)
   end_of_kd   (RW): ORIGIN = 0x2000FFF0, LENGTH = 0x00000000
   
   # Boot stack reused by MQX Kernel data
   bstack      (RW): ORIGIN = 0x2000FA00, LENGTH = 0x00000200  # Boot stack
   end_bstack  (RW): ORIGIN = 0x2000FBFF, LENGTH = 0x00000000
}
 
KEEP_SECTION { .vectors_rom, .vectors_ram, .cfmconfig }
 
SECTIONS
{
    ___INTERNAL_SRAM_BASE  = 0x20000000;
    ___INTERNAL_SRAM_SIZE  = 0x00010000;
    ___INTERNAL_FLASH_BASE = 0x00000000;
    ___INTERNAL_FLASH_SIZE = 0x00080000;
    ___EXTERNAL_SRAM_BASE  = 0x80000000;
    ___EXTERNAL_SRAM_SIZE  = 0x00020000;
    ___EXTERNAL_SRAM_ROM_BASE = 0x80000000;
    ___EXTERNAL_SRAM_ROM_SIZE = 0x00010000;
    ___EXTERNAL_SRAM_RAM_BASE = 0x80010000;
    ___EXTERNAL_SRAM_RAM_SIZE = 0x00010000;
 
    ___IPSBAR              = 0x40000000; # Peripherals/FlexCAN
    ___VECTOR_TABLE_START  = 0x20000000; # Runtime vector table in sram
 
    # MQX link time configurations
    ___DEFAULT_PROCESSOR_NUMBER = 1;
    ___DEFAULT_INTERRUPT_STACK_SIZE = 1024;
    ___KERNEL_DATA_VERIFY_ENABLE = 0;    # Test SDRAM read/write
    
    # Flashx configurations
    ___FLASHX_SECT_SIZE = 0x1000;
 
        .vectors :
        {
        ___VECTOR_TABLE_ROM_START = .;                # Runtime vector table in sram
                *(.vectors_rom)
                . = ALIGN (0x4); 
        } > vectorrom
 
        .cfmprotect :
        {
                *(.cfmconfig)
                . = ALIGN (0x4);
        } > cfmprotrom
 
    .main_application :
    {
        *(KERNEL)
        *(S_BOOT)
        *(IPSUM)
        *(.text)
        *(.init)
        *(.fini)
        *(.eini)
        *(.ctors)
        *(.dtors)
        .= ALIGN(0x4);
        *(.rodata)
        .= ALIGN(0x4);
        *(.rdata)
        . = ALIGN(0x4);
        *(.exception)
        . = ALIGN(0x4);
        __exception_table_start__ = .;
        EXCEPTION
        __exception_table_end__ = .;
        ___sinit__ = .;
        STATICINIT
    
        .= ALIGN(0x4);
        __COPY_OF_DATA = .;
    } > rom
 
    .main_application_data : AT(__COPY_OF_DATA)
    {
        . = ALIGN(0x10000);
        ___VECTOR_TABLE_RAM_START = .;                # Runtime vector table in sram
                *(.vectors_ram)
 
        . = ALIGN(512);
        __BDT_BASE = .;
        *(.usb_bdt)
        __BDT_END = .;
      
        __START_DATA = .;
        *(.data)
        __END_DATA = .;
 
        . = ALIGN(0x4);
        __START_SDATA = .;
        *(.sdata)
        __END_SDATA = .;
 
        . = ALIGN(0x4);
        __SDA_BASE  = .;
        __SDA_BASE_ = __SDA_BASE;
    } > ram
 
    # Locate the ROM copy table into ROM after the initialized data
    _romp_at = __COPY_OF_DATA + SIZEOF(.main_application_data);
 
    .romp : AT (_romp_at)
    {
        __S_romp = _romp_at;
        WRITEW(__COPY_OF_DATA);   #ROM start address
        WRITEW(ADDR(.main_application_data));      #RAM start address
        WRITEW(SIZEOF(.main_application_data));    #size
        WRITEW(0);
        WRITEW(0);
        WRITEW(0);
    }
 
    _flashx_start = __COPY_OF_DATA + SIZEOF(.main_application_data) + 
                                SIZEOF(.romp);
 
        # flashx working area spans across the whole rest of Flash memory
    ___FLASHX_START_ADDR = (_flashx_start + 0xfff) / 0x1000 * 0x1000;
    ___FLASHX_END_ADDR = ___INTERNAL_FLASH_BASE + ___INTERNAL_FLASH_SIZE;
 
    .main_application_bss :
    {
        __START_SBSS = .;
        *(.sbss)
        *(SCOMMON)
        __END_SBSS = .;
 
        __START_BSS = .;
        *(.bss)
        *(COMMON)
        __END_BSS = .;
    } >> ram
 
    .kernel_data : #AT(ADDR(.main_application_bss) + SIZEOF(.main_application_bss))
    {
        ___KERNEL_DATA_START = ALIGN(0x10);
    }
    
    .end_of_kernel_data :
    {
        ___KERNEL_DATA_END = .;
    } > end_of_kd
 
    .boot_stack :
    {
        _stack_end = .;
    } > bstack
    
    .end_of_boot_stack :
    {
        _stack_addr  = .;
        __SP_INIT    = .;
        ___BOOT_STACK_ADDRESS = .;
    } > end_bstack
 
}
 

该用户从未签到

3

主题

87

帖子

0

中级会员

Rank: 3Rank: 3

积分
306
最后登录
1970-1-1
发表于 2010-5-10 12:38:01 | 显示全部楼层

RE:MQX无法进行调试

如果是Flash版本的话,调试可以不需要下载代码,因为已经下载到Flash里了,你把项目中调试选项中的下载勾掉看看

该用户从未签到

1

主题

12

帖子

0

新手上路

Rank: 1

积分
22
最后登录
1970-1-1
发表于 2011-5-14 11:28:27 | 显示全部楼层

回复:MQX无法进行调试

回复第 9 楼 谌利于2010-05-10 04:38:01发表:
如果是Flash版本的话,调试可以不需要下载代码,因为已经下载到Flash里了,你把项目中调试选项中的下载勾掉看看 

       楼主,问题解决了吗?我也碰到类似问题。
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-25 06:40 , Processed in 0.111506 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表