请教新华龙单片机的几个问题-PLC技术网(www.plcjs.com)-可编程控制器技术门户


请教新华龙单片机的几个问题

 (点击题目可以在互联网中搜索该题目的相关内容)
日期:2006-7-17 22:19:05     来源:   作者: 点击:
点击【 大  中  小 】,可以选择字体的大小,以便你阅读.

   1、新华龙单片机CODE存储器是顺序存储的吗?即比如我我的代码段有2K大,那么从0到2K之间就是代码,不写到2K以后的地方。
2、如果1成立,那么我想对FLASH擦写距离多少地址比较合理或者说可靠,不被程序代码有可能擦除。
如果我阐述的不太清楚,请留言。

以下是对《请教新华龙单片机的几个问题》的回复: 
匿名回复:
    请 周公和亦云人云 发表一下意见。
8951是否程序是顺序写入的?
匿名回复:
    Flash 单片机怎样写入代码,取决于你自己,但是写入代码后再要改写或擦除就由不得你了,通常只可整片擦除或擦除整个扇区后再次写入,请看:
http://www.xhl.com.cn/xhl/downfile/c8051f0xx.pdf
C8051F000/1/2/5/6/7
C8051F010/1/2/5/6/7 混合信号 32KB ISP FLASH 微控制器
摘自 11.1 FLASH存储器编程
“可以用软件使用MOVX指令对FLASH存储器编程,象一般的操作数一样为MOVX指令提供待编程的地址和数据字节。在使用MOVX指令对FLASH存储器写入之前,必须将程序存储写允许位PSWE(PSCTL.0)设置为逻辑‘1’,以允许FLASH写操作,在用软件清除PSWE位之前将一直允许写操作。
写FLASH存储器可以清除数据位,但不能使数据位置‘1’。只有擦除操作能将FLASH中的数据位置‘1’。所以在写入新值之前,必须先擦除待编程的地址。32k字节的FLASH存储器是以512字节的扇区为单位组织的。一次擦除操作将擦除整个扇区(将扇区内的所有字节设置为0xFF)。将程序存储擦除允许位PSEE(PSCTL.1)和PSWE(PSCTL.0)设置为逻辑‘1’后,用MOVX命令写一个数据字节到扇区内的任何地址将擦除整个512字节的扇区。”

匿名回复:
    Flash 单片机怎样写入代码,取决于你自己,

请问人云亦云老师这句怎么理解?比如我想顺序写入,程序有2K大,我想把程序写在FALSH的2K内,传程序是怎么设置。(调试器和编程器都可)。
匿名回复:
    下载线或编程器=>看下载线或编程器说明书
自己写程序=〉看厂家产品的说明书
匿名回复:
    谢谢,我自己看书了。
匿名回复:
    对了我忘说了,我用的是C51。
匿名回复:
    1. ‘新华龙单片机’——我没有用过,无法回答。
2. ‘8951是否程序是顺序写入的?’、‘CODE存储器是顺序存储的吗?’、‘如果用即比如我我的代码段有2K大,那么从0到2K之间就是代码,不写到2K以后的地方。’——如果你用汇编做程序自己汇编,可以控制代码段的存储位置,用跳转语句控制执行顺序;汇编程序自动生成代码,通常也是按顺序存放的。如果你用高级语言编制程序并且没有定义存放的地址,编译程序就按连续地址存放,但其中各段代码的位置由优化过程决定。
提醒一下:编译后生成的代码长度链接后的代码长度相同,存放的地址不同:中断向量是固定地址,中间有间隔。具体位置可观察 .HEX 文件。
3. Flash 单片机内部存储器差异比较大,需要说明具体芯片才好讨论。


匿名回复:
    首先谢谢周公的答复,让我清晰了不少。我使用的是c8051f310。
主要是我还没学习c51的编译那部分,要不也不能提这种问题了。今天我想到了用编程器往外读程序来试程序的存储位置,不过还没开始。
再次谢谢!

上一篇: DCS供电系统的改造经验一例
下一: 变频器控制柜设计时应注意的问题