0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在PIC单片机中为系列号保留ROM空间的方法

麦辣鸡腿堡 来源:Microchip微芯 作者:Microchip微芯 2023-01-22 15:16 次阅读

问:我想把Page1的ROM空间里最高地址的128个字节放到一边,我们会用外部的软硬件来额外地写入这些字节位置(我将会在生产线上对这些单片机做带有系列号的串行编程SQTP),显然,这些字节是只读的。有没有什么建议来把这样一块ROM放到一边呢?

答:我们有如下建议;在你的C模块里放置下面的代码:

extern const char myarray[]; // 这里不要声明数组的大小
#asm
psect reserved,class=CODE,delta=2
global _myarray
_myarray:
ds 128 ;保留128个字
#endasm

现在来加入linker options,把下面的PICC命令行加入:

-l-preserved=0F80h

于是你就在F80地址开始得到了128个字的空间,而且这个地址空间会被链接器在分配代码空间时避开。

如果你需要预初始化这些单元到FF或者其他值,那么它应该象这样:
#asm
psect reserved,class=CODE,delta=2
global _myarray
_myarray:
retlw 0xFF
retlw 0xFF
; 重复你需要的次数

#endasm

如果要在C代码中访问这些SQTP的系列号,可以这样:

#define SQTP_table(name,size)
extern const char name[];
asm("global _" ___mkstr(name));
asm("psect " ___mkstr(name) ",class=CODE,delta=2"); asm("_" ___mkstr(name) ":"); asm("rept " ___mkstr(size)); asm("retlw 0"); asm("endm");

SQTP_table(XXX,YYY);//把XXX改成你想要的表格名称,并把YYY改成表格的大小。例如:SQTP_table(sqtp,16);
C代码可以这样访问这些系列号:
main()
{
char ch;
ch = sqtp[3]; //把表格的第四个字节赋给变量ch。
}
你可以通过额外的命令行选项来把这个表格放置到任何你需要的地址位置:(build option->global->additional command line options)。
加入
-l-pXXX=0YYYh
这里XXX是你使用的表格的名称,YYY是地址。例如:-l-psqtp=01000h
这将把表格sqtp放置到地址0x1000。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6002

    文章

    43990

    浏览量

    620954
  • ROM
    ROM
    +关注

    关注

    4

    文章

    525

    浏览量

    84850
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48635
收藏 人收藏

    评论

    相关推荐

    PIC8位单片机的基本组成

      PIC系列8位单片机适应各种不同的用途,有多种型号可供选用。但是,尽管PIC单片机有不同的
    发表于 09-30 15:55

    PIC系列单片机应用设计与实例

    本帖最后由 eehome 于 2013-1-5 10:06 编辑 PIC系列单片机应用设计与实例PIC系列
    发表于 11-16 11:59

    PIC单片机的特点及与51系列单片机的区别

    这里仅以使用广泛的中低档PIC16/PIC12/10系列为例。PIC系列单片机采用哈佛总线结构,
    发表于 03-13 11:11

    PIC系列单片机的优势所在。

    的点火器需要一个I/O较少、RAM及程序存储空间不大、可靠性较高的小型单片机,若采用40脚且功能强大的单片机,投资大不说,使用起来也不方便。PIC
    发表于 03-14 13:28

    PIC单片机与51系列单片机的区别

    用于数据,由于可以对程序和数据同时进行访问,所以提高了数据吞吐率。正因为PIC系列单片机采用了哈佛双总线结构,所以与常见的微控制器不同的
    发表于 07-21 00:07

    PIC8位单片机的基本组成

    PIC系列8位单片机适应各种不同的用途,有多种型号可供选用。但是,尽管PIC单片机有不同的档次
    发表于 12-01 13:05

    求NI Vision Acquisition Software September 2011 的系列号

    请问谁有NI Vision Acquisition Software September 2011 的系列号,谢谢大侠!
    发表于 12-09 17:18

    PIC单片机与MCS-51系列单片机的区别

    PIC单片机与MCS-51系列单片机的区别(1)总线结构:MCS-51单片机的总线结构是冯-诺依曼型,计算机
    发表于 08-26 14:23

    PIC8位单片机的基本组成

    PIC系列8位单片机适应各种不同的用途,有多种型号可供选用。但是,尽管PIC单片机有不同的档次
    发表于 07-02 03:54

    AVR、51系列PIC单片机的对比

    AVR、51系列PIC单片机的对比分析摘要:单片机诞生于20世纪70年代末,它是指一个集成一块芯片上的完整计算机系统。它包括CPU、内存
    发表于 07-13 06:15

    PIC单片机是如何命名的

    PICXXXXXXXX(X)-XXX/XX 12345678 1.前缀: PIC MICROCHIP 公司产品代号,特别地:dsPIC集成DSP功能的新型PIC单片机2.
    发表于 11-24 07:47

    PIC系列单片机的主要应用领域

    的新趋势。现在PIC系列单片机在世界单片机市场的份额排名已逐年升位,尤其8位
    发表于 11-24 07:55

    单片机程序在内存和FLASH空间分配

    这里写目录标题1.ROM、RAM和闪存2.单片机程序在内存和FLASH空间分配3.计算机启动过程1.ROM、RAM和闪存
    发表于 12-09 07:16

    PIC单片机基础知识

    PIC系列单片机简介 ◆ PIC系列单片机程序设计基础 ◆
    发表于 01-18 13:30 108次下载

    PIC系列单片机

    PIC系列单片机由美国Microchip公司推出的PIC单片机系列产品,首先采用了RISC结构的
    发表于 11-16 12:36 9次下载
    <b class='flag-5'>PIC</b><b class='flag-5'>系列</b><b class='flag-5'>单片机</b>