首页>>论坛 >>技术社区 >>飞思卡尔社区论坛 >>MQX
|
我要发帖  | 我要投票  | 我要回复  | 收藏
1

MQX无法进行调试

版主: 汪浩  kap  MQXFSL  ruiyuan 
MQX无法进行调试
 

 今天在搞定无法用BDM烧写MQX后,又遇到了个问题,我在烧写成功后,点debug想启动调试,结果每次都出现同样的错误

打开log window发现每次都是在出现这样的log信息后弹出上述对话框的

即向memory address 0x08这里写入4个字节的时候出错。

我的板子和bdm应该是正常的,因为我一直用它调试,随便找个非MQX的project调试都没问题。

我也尝试了直接用MQX里面自带的那个M52259EVB的example也出现同样的错误,可以烧写,不能调试

 

BTW:BDM是开源的OSBDM-JM60

请求支援!谢谢

附件:请先登陆查看附件!
 
相关主题
专业提供freescale开发板、工控板;提供嵌入式系统和单片机应用设计服务。http://nicrosystem.taobao.com
回复 链接 收藏
 
RE:MQX无法进行调试
 
你的板子用P&E的BDM可以调试吗?如果用P&E的可以,那应该还是OSBDM的问题。如果不可以,那要查一下CW里面的设置,是否选用了正确的调试target,以及你的MQX的插件是否正确安装的CW里面了。
你的CW和MQX都是什么版本?
 
“谌”应该读shen,不读chen
回复 链接 收藏
 
RE:MQX无法进行调试
 
我没遇到过这样的问题啊,你可以从最开始的地方开始调试(默认是___boot),
如果连__boot都到不了,就应该是你配置问题了
 
回复 链接 收藏
 
回复: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这里开始调试的问题。

 

 
专业提供freescale开发板、工控板;提供嵌入式系统和单片机应用设计服务。http://nicrosystem.taobao.com
回复 链接 收藏
 
RE:MQX无法进行调试
 
很奇怪,我们一直都是用的P&E的BDM,是不是CW的选项没有选对?当然P&E的BDM没有Freescale自己的USB TAP稳定。不过USB TAB很贵。如果是版本的问题的话,我给你发一个临时的license试试。
 
“谌”应该读shen,不读chen
回复 链接 收藏
 
RE:MQX无法进行调试
 
刚才和我同事确认了一下,MQX3.5.1一定要用CW7.2 。你可以从中文服务器下载,比从英文网站下载快:http://www.freescale.com.cn/CodeWarrior/Evaluation_Software.asp
到这个目录下找CW7.2的评估板,装完之后也是30天的profession
 
“谌”应该读shen,不读chen
回复 链接 收藏
 
回复:MQX无法进行调试
 

 OK。thanks,我来试试

 
专业提供freescale开发板、工控板;提供嵌入式系统和单片机应用设计服务。http://nicrosystem.taobao.com
回复 链接 收藏
 
回复: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

 

}

 

 
专业提供freescale开发板、工控板;提供嵌入式系统和单片机应用设计服务。http://nicrosystem.taobao.com
回复 链接 收藏
 
RE:MQX无法进行调试
 
如果是Flash版本的话,调试可以不需要下载代码,因为已经下载到Flash里了,你把项目中调试选项中的下载勾掉看看
 
“谌”应该读shen,不读chen
回复 链接 收藏
 
回复:MQX无法进行调试
 
回复第 9 楼 谌利于2010-05-10 04:38:01发表:
如果是Flash版本的话,调试可以不需要下载代码,因为已经下载到Flash里了,你把项目中调试选项中的下载勾掉看看
 

       楼主,问题解决了吗?我也碰到类似问题。

 
回复 链接 收藏
 
回复:MQX无法进行调试
 
回复第 1 楼 冷火团队--bluehacker于2010-04-15 14:57:45发表:

 今天在搞定无法用BDM烧写MQX后,又遇到了个问题,我在烧写成功后,点debug想启动调试,结果每次都出现同样的错误

打开log window发现每次都是在出现这样的log信息后弹出上述对话框的

即向memory address 0x08这里写入4个字节的时候出错。

我的板子和bdm应该是正常的,因为我一直用它调试,随便找个非MQX的project调试都没问题。

我也尝试了直接用MQX里面自带的那个M52259EVB的example也出现同样的错误,可以烧写,不能调试

 

BTW:BDM是开源的OSBDM-JM60

请求支援!谢谢

 

问题觉得了吗?我遇到的情况是:

按确定之后:

附件:请先登陆查看附件!
 
回复 链接 收藏
 
RE:MQX无法进行调试
 
是怎样解决的?麻烦那位大侠帮帮忙
 
回复 链接 收藏
 
我要发帖  | 我要投票  | 我要回复  | 收藏
1