ucos程序中多一行代码,程序就无法启动

atuwang 2012-04-15 06:13:31
请教各位大大,ucos程序中多一行代码,程序就无法启动,听说是跨页的问题,敬请提供解决的思路,谢谢!
...全文
172 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
atuwang 2012-04-27
  • 打赏
  • 举报
回复
是分bank的问题,谢谢各位。
atuwang 2012-04-17
  • 打赏
  • 举报
回复

//GROUP
g_CMeasureBuf.x = X_MAINMENU; g_CMeasureBuf.y = Y_MAINMENU-10;
LcdPrintASCII(g_CMeasureBuf.x+4,g_CMeasureBuf.y," GROUP ");
g_CMeasureBuf.y += 12;
LcdDrawRect(g_CMeasureBuf.x, g_CMeasureBuf.y, g_CMeasureBuf.x+81, g_CMeasureBuf.y+23);
PrintSubMenuItem(g_CMeasureBuf.x, g_CMeasureBuf.y,g_CurGroupandItemNo);
替换成:
g_CMeasureBuf.x = X_MAINMENU; g_CMeasureBuf.y = Y_MAINMENU-10;
LcdPrintASCII(g_CMeasureBuf.x+4,g_CMeasureBuf.y," GROUP ");
g_CMeasureBuf.y += 12;
LcdClrRect(g_CMeasureBuf.x, g_CMeasureBuf.y, g_CMeasureBuf.x+80, g_CMeasureBuf.y+22);
LcdDrawRect(g_CMeasureBuf.x, g_CMeasureBuf.y, g_CMeasureBuf.x+81, g_CMeasureBuf.y+23);
LcdPrintASCII(g_CMeasureBuf.x+8, g_CMeasureBuf.y+8,g_CurGroupandItemNo);
代码替换完后,程序无法启动,液晶屏幕不亮。
上述代码中
PrintSubMenuItem和LcdPrintASCII都是在液晶屏幕上显示字符的函数,在程序其他地方测试完全可以的,
芯片是8051F
flpotato 2012-04-17
  • 打赏
  • 举报
回复
你说的这个现象真的不太好说到底是哪儿的问题,如果有仿真器的话建议你调试一下看看,我说的acall和lcall的问题是在写汇编的时候有可能会出错,如果用c写我觉得可能编译器会避免这种问题的吧。
这种异常也有可能是堆栈出错,导致程序无法进行,也就是说你调用的那个函数需要耗费更多的堆栈,单独测可能堆栈还没溢出没问题,跟别的程序一起测的话造成溢出了,这个只是个猜测,你查一下吧,N多年没做51了,很多东西都忘了
atuwang 2012-04-17
  • 打赏
  • 举报
回复
启动后程序就停在这位置B01:0x9291 12AF3B LCALL B01:AF3BP1
atuwang 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

把函数顺序或文件编译顺序换一下试试,51汇编中有acall和lcall两种函数调用命令,acall好像是有地址跨页的错误,lcall没问题
[/Quote]
楼上的有没更多经验可以传授呢,我函数顺序能换的也换了,文件编译也换了,结果还是一样。有些函数改了,程序可以运行,某些函数稍微动动,液晶屏幕就不亮了。main函数也进不去了。谢谢哈
flpotato 2012-04-17
  • 打赏
  • 举报
回复
把函数顺序或文件编译顺序换一下试试,51汇编中有acall和lcall两种函数调用命令,acall好像是有地址跨页的错误,lcall没问题
lbing7 2012-04-16
  • 打赏
  • 举报
回复
用STM32和MSP430时,从没发现这个问题。。。
net_friends 2012-04-16
  • 打赏
  • 举报
回复
ucos内核那么点 跨什么页了
bluesea87 2012-04-16
  • 打赏
  • 举报
回复
看你具体多一行什么代码
yuanzaikang 2012-04-16
  • 打赏
  • 举报
回复
我在arm7上面跑ucos,也没有遇到这种问题啊

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧