本帖最后由 donghailao 于 2014-8-4 18:29 编辑
我晓得,ICD3用来烧写编译得出的目标代码,到程序Flash存储器,是没有问题的。
我这里有一张表格数据,准备写入到Flash程序存储器的某个地址区域。
芯片手册里给出的标准写表程序固然很好,可是ICD3在仿真状态下写表命令似乎无效。这样表格的制作发布需要费些周折且必须二次作业,不能和用户代码一同完成写入。
我的问题是:既然ICD3 有烧写的功能,能否通过特殊手段,或者特殊的伪指令,
让 ICD3 把2字节长度的表格数据群组,直接写入程序存储区(强行编辑改变目标HEX文件能行吗?)。
1字节的表格数据就不讨论了,用下述第2条办法可以很方便的搞妥当。
期盼各位有经验的兄弟来说说,也不知道我说明白问题没有。
‘====================================================================
以下文字和本题目无关,是有关表格的补充知识,表格三种:
1、标准读、写表格命令形成的表格 它使用表格指令 TBLPTR 和表格寄存器 TABLAT 写表或者读表。
优点: 一行可以有 2个字节数据 节约空间 表格可以长度很长,适合大型表格。用户可以在线的生成、调整表格
缺点:制表一般需要在线,很不方便, 不能和目标代码一同发布。
2、程序计数器加入偏移量的数据表格, 它利用ADDWF PCL + 多个 RETLW nnh 完成
优点:本身就是普通的程序指令,制表方便。查表也方便,速度快
缺点:单个表格,16系列表格最长256字节 18系列表格最长128字节
3、内存临时表格 使用内存区域生成临时的表格
优点:可以根据需要在线生成 动态数据表格
缺点:表格大小受内存大小制约,临时占用内存多
|