搜索
bottom↓
回复: 6

遇到一个棘手的问题,请教

[复制链接]

出0入0汤圆

发表于 2007-9-23 22:13:54 | 显示全部楼层 |阅读模式
马老师,我遇到一个棘手的问题,我用m128嵌入ucosII时,发现无法访问高64k flash,在不用操作系统的情况下,我只需要RAMPZ=1就可以访问,一切也都正常,但是有了ucosII却发现只要在某个进程中一用RAMPZ=1或者RAMPZ|=1这种类型的指令,整个系统就会被复位,更别说访问flash了,程序好像都跑没了,这是什么原因呀,如果不访问高64k flash ucos跑的很正常,可是我需要在高64kflash里存放一些固定的数据呀,所以高 64k 必须使用,请问老师 我该怎么做呀 我用的的iccavr6.31

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2007-9-23 23:22:42 | 显示全部楼层
使用iccavr时,不是在程序中专门使用RAMPZ=1指令的。

只要是在Compiler Options的Target中将“Use RAMPZ/ELPM”项打勾即可,其它ICCAVR编译系统会自动处理了。

出0入0汤圆

 楼主| 发表于 2007-9-23 23:48:05 | 显示全部楼层
谢谢马老师,我试试看

出0入0汤圆

 楼主| 发表于 2007-9-24 09:29:21 | 显示全部楼层
不行呀马老师如果再没有操作系统的情况下 只有Compiler Options的Target中将“Use RAMPZ/ELPM”项打勾,没有RAMPZ=1我还是访问不到 高64k flash,再有操作系统的情况下啊,只要使用RAMPZ=1,系统还是复位

出0入0汤圆

发表于 2007-9-24 15:39:08 | 显示全部楼层
m128的熔丝位配置了吗?是否配置成128模式?注意确省模式为M103。

出0入0汤圆

 楼主| 发表于 2007-9-24 16:26:43 | 显示全部楼层
没错,镕丝位没有配错,要不然写普通程序的时候他也不会好使呀,我还发现一个奇怪的现象,如果我在RAMPZ=1附近加一个向串口发送字符的代码,那就可以访问高64k了,奇怪啦

出0入0汤圆

发表于 2007-9-24 16:56:28 | 显示全部楼层
在target选定M128吗?此时使用long call/jmp自动打钩,是灰色的。

首先解决通常情况下访问高64K的FLASH,应该不需要使用RAMPZ=1,系统自己会处理的。

使用UCOSII时,任务切换中要增加RAMPZ的保护和恢复。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 11:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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