打印

请教(无意中发现了一个C8051F的BUG)

[复制链接]
4080|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ayb_ice|  楼主 | 2007-11-15 11:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么我的C8051F350的程序和代码区数据加起来没有8K(接近8K),编译出错说有一些空间重叠呢,我没有用绝对定位,没有代码保护,但用4k多就可以。。。
我定义了两屏240*128的LCD数据加上程序会超过8k,我又把其中的一屏数据去掉一些,使其总和不超过8k,出现以上情况。。。

相关帖子

沙发
古道热肠| | 2007-11-15 11:37 | 只看该作者

消除警告试试看

项目中编译时存在警号,最好设法消除。

使用特权

评论回复
板凳
ayb_ice|  楼主 | 2007-11-15 14:13 | 只看该作者

没有警告,没有错误

有混合编程,但不是绝对定位,感觉应该是数组太大的原因,但应该也不会这样

使用特权

评论回复
地板
ayb_ice|  楼主 | 2007-11-15 19:00 | 只看该作者

随便说说

不小心发现了C8051F的一个小BUG。。。
C8051F加密是通过控制FLASH中的某个字节来实现的,如果=0xFF则不加密,反码即为加密的扇区数,但这个字节不是定位在最后位置,而是在中间偏后的位置,我今天的项目需要两个很大的代码区数组,这样如果预先把加密字节预留的话则数组不能连续存放导致装不下,但其实总量并没有超过FLASH大小,但如果不预留的话,加密字节会被数组占有,而值很可能不是0xFF,换句话说相当于设置了加密,这样虽然编译没有任何问题,但下载程序的时候会出现提示对被加密的区域进行写操作,这时必须取消操作,也就是不能写,导致不能正确下载,程序也就不可能正确执行。。。
当然这种问题只在比较特殊的情况下才能出现,但必竟确实是个问题,如果把加密字节放在最后位置是不会有问题的。。。
如图

使用特权

评论回复
5
ocon| | 2007-11-15 22:52 | 只看该作者

既然编译器已经明确告知原因,那就不能算BUG,只能叫特点

使用特权

评论回复
6
lws| | 2007-11-16 08:40 | 只看该作者

也不能算BUG

8K FLASH中最后一页是保留页,用户不能用。其它页是用户程序区。其中用户程序区的最后一个字节是安全字节。参考文档的93页 FLASH错误复位

使用特权

评论回复
7
xwj| | 2007-11-16 08:50 | 只看该作者

晕,怎么还有这种设置(设计)?

使用特权

评论回复
8
ayb_ice|  楼主 | 2007-11-16 08:58 | 只看该作者

编译可以没有任何问题,但下载就不行了

原因如上

使用特权

评论回复
9
hab2000| | 2007-11-16 13:44 | 只看该作者

编程前需要完全擦除!

使用特权

评论回复
10
ayb_ice|  楼主 | 2007-11-16 14:18 | 只看该作者

"编程前需要完全擦除!"

这个还用说吗

使用特权

评论回复
11
lsfsxfljj| | 2007-11-17 21:08 | 只看该作者

最后512字节的ROM不能用的,我碰到过了

使用特权

评论回复
12
kymcu51| | 2007-11-18 14:33 | 只看该作者

ayb_ice 很棒槌,数据手册没好好读

ayb_ice 很棒槌,数据手册没好好读

使用特权

评论回复
13
ayb_ice|  楼主 | 2007-11-19 08:12 | 只看该作者

kymcu51你好好看看我说的东东

要说C8051F,不是吹,肯定比你要精。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xlsbz + 1
14
ayb_ice|  楼主 | 2007-11-19 09:33 | 只看该作者

不好意思

FLASH这部分好象真的的没有清楚,以前用的都有多余的空间,而且一般把EE定位在非常靠前的地方,也就没有在乎这些。
C8051F自己保留了最后的512字节,应该做重要说明,并且在说明FLASH大小的时候应该减掉这512字节,被它忽悠了,有点不厚道。。。

使用特权

评论回复
15
cnpollux| | 2007-11-19 10:56 | 只看该作者

最后的扇区内包含加密字节

可以在程序中将这几个加密字节定义出来保留,剩下的还是可以使用的

使用特权

评论回复
16
ayb_ice|  楼主 | 2007-11-19 14:10 | 只看该作者

最后的扇区根本就不能用

可能是固定了下载代码的程序。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

222

主题

15461

帖子

34

粉丝