微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 怎么去更改code区的函数的起始地址

怎么去更改code区的函数的起始地址

时间:10-02 整理:3721RD 点击:

比如说在code区中有一个SLP_ISR函数,其起始地址为0x1050,现在我要更改为0x1090,在keil C51中怎么用C语言去修改。我用的是64K的,code区为0x1000~0x4FFF,需要修改SLP_ISR在code区的起始存储地址
void slp_isr(void) interrupt 15{
    INTSTT_SLP = 0;
    if (b_SleepC){
        b_SleepC--;
    }
    report_isr();
}

你这是中断地址吧,51单片机不能能改中断地址的,而且起始地址都是中断占了

一般单片机的向量区是不可以更改的。如果你想用自固件,可以模拟出你的向量区地址。假如你的0x1000到0x107F,是向量区占用地址,你可以在0x1080-0xxxxx作为引导区。剩下的0xxxxx-0x4FFF作为你的app应用区,里面包含你的虚拟向量表和代码应用区。一般重定向编译需要在你的链接文件修改,或者option选项,选择你的rom和ram编译项。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top