什么是小奇迹暖暖bug问题反馈题

纠结小BUG(2)MSP430&_data16_memzero问题
移植uCOS-II到MSP430一切都OK,后来加了TI的一个小的TCP/IP协议栈就老是死掉,纠结了两个晚上,现在把问题解决了。uCOS-II的运行需要一个时钟信号,也就是“心跳”信号,以此来进行系统运行和任务调度,我这里开了MSP430的看门狗中断作为“心跳”信号。第一个问题是我在创建任务之前开了总中断_EINT()函数,这就打开了看门狗中断,但是任务还没建立,怎么跑任务呢,那个看门狗时钟节拍中断就是任务切换用的,如果任务还没建立起来,也就是说任务的堆栈还没初始化,那任务指向哪里呢。这个问题找到了,但是另外一个问题又来了。当在一个任务中添加一个比较大的函数时(TCP监听处理函数)几死掉,进不了main函数,死在__data16_memzero汇编指令中。我立刻就怀疑肯定是任务堆栈设小了,堆栈溢出了,但是将这个任务堆栈改成1024依然没用,数组越界?函数时TI的,之前也用过也没问题啊。查看堆栈使用情况,设置IAR:Option-&Linker-&List-&Generate
linker listing,这样在编译时Output下就可以.map文件,里面是link数据,列出了内存、堆栈等使用情况(或者Tool/Options/Meassages/show
build message:选为All就行了)。仿真发现程序死在__data16_memzero汇编指令这,通过百度此问题,解决了。
TI技术论坛一个员工这么说的:
一直在_data16_memzero里死循环可能是因为程序最开始初始化变量的时候有大数组需要初始化。导致看门狗不断复位。这个初始化的过程是在进入main之前,有2种方式你可以尝试:
1.对你的数组用
init_定义,上电编译器不产生特殊的附加函数去初始化RAM
2. B修改IAR中Cstartup.S43文件中__program_start子程序,增加一个关闭WDT的操作或者设置WDT时间长度超过32MS
C在Project--Options--Linker--Config中选择
Override default
programe,并将Entry lib 设置成__program_start
事实也确实如此,Cstartup.S43是MSP430的启动文件,里面默认是打开看门狗的,添加个宏定义把看门狗关闭就解决了问题。
具体操作如下:
在安装文件:C:\……\src\lib\430 中找到启动文件:cstartup.s43
拷一个cstartup.s43,然后将其只读属性去掉。用记事本等打开cstartup.s43文件,看到文件内有如下语句:
#ifdef DISABLE_WATCHDOG
&&&&&&&&MOV&&&&&#WDTPW
+ WDTHOLD, &WDTCTL
说明文件内已经有关闭看门狗的条件编译语句,只要我们定义条件,这样启动代码中的该语句就生效了,我们在文件头添加一句:
#define DISABLE_WATCHDOG
保存,然后再工程中将cstartup.s43文件添加到我们的工程当中。
在Project-&Options-&Linker-&Config页中选择Override
default programe ,并将Entry symb 设置成__program_start。把debugger-&setup-&Run to
main销掉,这样我们就能够从启动代码开始一句一句的看了。&
cstartup.s43在iar310a的路径如下$TOOLKIT_DIR$\src\LIB\
/question_answer/microcontrollers/msp430/f/55/p/.aspx
.cn/s/blog_4c0cb1cx.html
/link?url=D8bFWuJgYrbaFYA-x8Ni9MSQtuUkqe_OX55VMHaFb5GTDeE7fNRb_8Gus4iipUL3kYcw23CuqxrqmiJfUB7QY_
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。高频词,一定要记得哦!
n. 虫子;故障,瑕疵,缺陷;细菌,病菌;窃听器v. 装窃听器;烦扰,打扰
I haven't killed a single bug.
我再没杀过哪怕一只虫子。
Bitten by a bug, my leg became swollen.
被虫咬了,我的腿肿了起来。
It also integrates with several bug-tracking tools.
它还与许多故障追踪工具相集成。
List the steps needed to reproduce the bug.
列出复制该错误的步骤。
I think I've caught a bug.
我看我已经受细菌感染了。
I think I've got a bit of a stomach bug.
我想我的胃可能出了点儿毛病。
He was never interested in cooking before, but now he's got the bug.
他以前对烹饪从不感兴趣,但是现在可着迷了。
You're a shutter bug.
你是个摄影迷。
Plant a bug in an embassy.
在大使馆内放置窃听器。
During the surveillance, a bug caught one man recording a suicide video.
在监视期间,一个窃听器捕捉到一人正在录制自杀视频。
I found out my phone was bugged.
我发现我的电话被窃听了。
The room has been bugged.
这房间装有窃听器。
I only did it to bug my parents.
我这么做只是为了让我父母心烦。
Just don’t bug them for work unless they ask you for your help.
除非他们要求你伸出援手,否则不要打扰他们工作。
My eyes bugged when I saw the mess.
当看见这一片混乱时,我的眼睛睁大了。
1.general term for any insect or similar creeping or crawling invertebrate
2.a fault or defect in a system or machine
3.a sma for listening secretly
4.insects with sucking mouthparts and forewings thickened and
usually show incomplete metamorphosis
5.a minute life form (especially a disease-causing bacterium); the term is not in technical use
1.annoy persistently
The children teased the boy because of his stammer
2.tap a telephone or telegraph wire to get information
The FBI was tapping the phone line of the suspected spy
Is this hotel room bugged?
只有登录后,才能查看此项,现在是否?
1.They sprinkled pesticide to bug the potatoes.
他们喷撒杀虫剂给马铃薯除虫。
2.Don't bug me with petty details.
不要讲那些琐碎的细节来烦我。
3.There's a bug in my pencil-box.
我的铅笔盒里有个虫子。
4.Don't bug me with petty details.
不要讲那些琐碎的细节来烦我。
5.Plant a bug in an bbassy.
在大使馆内放置窃听器。
1.&bug,insect,pest,worm
这些名词均含“虫,昆虫”之意。bug指小昆虫,尤指吸血的臭虫,也可指细菌。insect含义广泛,多指蚂蚁、黄蜂、蝉等等。pest指有害的昆虫或有害的小动物。worm侧重指蚯蚓、蚕、毛虫等小而无骨的虫。
好文推荐:}

我要回帖

更多关于 奇迹暖暖bug问题反馈 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信