Board logo

标题: [讨论]关于使用TBDML,CW3.1编译,CW4.5下载有操作系统程序的问题。 [打印本页]

作者: yjbmtc    时间: 2007-5-25 14:17     标题: [讨论]关于使用TBDML,CW3.1编译,CW4.5下载有操作系统程序的问题。

问题的环境是:已经在CW4.5中成功建立SMALL模式的PROJECT完成UCOS系统的移植,并有调试信息和成功运行。
但由于手头上只有没有限制的CW3.1的liscence,所以采用了使用TBDML,CW3.1编译,CW4.5下载的方式。
情况如下:在CW3.1中建立PROJECT时,如果选中SMALL模式,则利用CW4.5的HIWAVE下载后的调试界面出现warning:NO Debug Information,但程序能够成功下载并运行。
该PROJECT的.MAP文件中显示

TARGET SECTION
Processor : Motorola HC12
Memory Model: SMALL
File Format : ELF (no debug info)
Linker : SmartLinker V-5.0.22 Build 4047, Feb 17 2004
—————————————疑惑的分割线————————————————————
而在CW3.1中建立PROJECT时,如果选中BANKED模式,则利用CW4.5的HIWAVE下载后的调试界面则会出现调试信息,但程序不能运行,出现Manual Stopped。
该PROJECT的.MAP文件中显示

TARGET SECTION
Processor : Motorola HC12
Memory Model: BANKED
File Format : ELF\Dwarf 2.0
Linker : SmartLinker V-5.0.22 Build 4047, Feb 17 2004
请问版主这是什么问题?我觉得跟ucos的移植是不是有关系,怀疑是OS_CPU_C.C里面的页面保存有关系?


作者: strongchen    时间: 2007-5-25 15:21

如果只是做一个简单的project,用CW3.1编译然后用CW4.5下载调试,也会有这样的问题吗?
作者: yjbmtc    时间: 2007-5-25 15:30

不用操作系统的PROJECT不会出现这个问题 所以我怀疑是移植的时候和这种下载方式有冲突
作者: strongchen    时间: 2007-5-25 17:55

有可能是操作系统本身不支持分页模式?
作者: yjbmtc    时间: 2007-5-26 08:17

确有这个问题,因为OS_CPU_C.C中对页面寄存器的保存是0X30的形式,而分页面存放任务则是利用了页面寄存器作为任务指针传递的方法(清华邵贝贝书上提供的例子),也就是说如果利用现有的移植范例只能建立SMALL类型的PROJECT了,不知版主和各位大侠有何高见??
作者: strongchen    时间: 2007-5-28 10:25

我记得清华做的uCOS是将不同的TASK放入不同的页面,操作系统本身会进行页面的操作。所以如果用户本身的程序也进行页面的设置和操作的话,可能会发生冲突。
作者: yjbmtc    时间: 2007-5-28 10:31

版主说的清华的范例是这么做的,可我现在就是把所有的任务放在一个页面中,可是现在的问题是怎么用SMALL模式建立的工程文件会出现 NO DEBUG INFORMATION 的错误,我怀疑是用CW3.1调试,CW4.5下载,以及TBDML硬件不兼容的问题,不知版主使用的是什么下载器,我想如果是支持CW3.1的Multilink 会不会出现这个问题呢?我能把工程给您发过去吗?谢谢!!
作者: strongchen    时间: 2007-5-28 10:35

我只有CW4.5和P&E的Multilink。如果需要你可以发给我试试。
作者: yjbmtc    时间: 2007-5-28 10:41

这是按照清华的例子做的,能编译通过 也能运行,就是没有调试信息 ,您试一下,麻烦您试一下,拜谢。。。
作者: yjbmtc    时间: 2007-5-28 10:42

就是用附件上传吗?呵呵,第一次用,不知收到没有。
作者: strongchen    时间: 2007-5-28 10:54

没有上传。或者发到strongchen_free@yahoo.com.cn吧。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0