白姐透特今晚开什么码

打印

xc8编译器问题

[复制链接]
139|11
跳转到指定楼层
楼主
用xc8写的程序在没有做地址偏移前程序可以正常运行,在设置了地址偏移后定时器中断就不准确了。

相关资料

沙发
|2019-12-19 22:51|只看该作者

然后呢?你是怎么应对这个的呢        
板凳
 楼主|2019-12-19 22:58|只看该作者
xc8地址偏移后中断向量会自动偏移吗,还是要人工加上偏移地址。另外xc8中bootloader跳转到程序空间的汇编语句是什么
地板
|2019-12-19 23:01|只看该作者
goto应该可以
5
|2019-12-19 23:07|只看该作者
地址偏移之后中断向量也是会偏移的
6
 楼主|2019-12-19 23:11|只看该作者
偏移的是中断入口,中断向量应该还是0x0004。我这是想用bootloader烧入的程序。pic18的可以像图片上那么设置,pic16怎么设置
7
 楼主|2019-12-19 23:14|只看该作者

8
|2019-12-19 23:17|只看该作者
我也最近在搞BOOTLOADER,没加中断正常,加了中断就不行了!
还有些两次FLASE就不能重新擦除了!
9
|2019-12-19 23:24|只看该作者
//---------------------------------------------------------------------------//
void    interrupt  service_isr()
{
    //asm ("pagesel" str(NEW_INTERRUPT_VECTOR));//pagesel
    //asm ("goto" str(NEW_INTERRUPT_VECTOR));
#asm         
          goto 0x604
#endasm      
                  NOP();
}

               //asm ("pagesel" str(NEW_RESET_VECTOR));
               //asm ("goto"  str(NEW_RESET_VECTOR));  //???????????ò
#asm
               goto   0x600
#endasm
根据XC编译自己生产的这两条语句根本不行,只能有GOTO去跳转。但没加中断正常,加了中断就不行了!              
//asm ("pagesel" str(NEW_RESET_VECTOR));
//asm ("goto"  str(NEW_RESET_VECTOR));  //???????????ò
10
 楼主|2019-12-19 23:27|只看该作者

boot中不能加中断,
//asm ("pagesel" str(NEW_INTERRUPT_VECTOR));//pagesel
//asm ("goto" str(NEW_INTERRUPT_VECTOR));这两句是可以用的。
我后来做的bootloader可以用了,只是flash烧写地址会出现错误,最后只能在编译时用ff把空地址堆填满
11
|2019-12-20 00:14|只看该作者
那样跟启动文件的MAP不同了。
12
|2019-12-23 23:37|只看该作者
难以理解。
扫描二维码,随时随地手机跟帖

本版积分规则

我要发帖投诉建议创建版块

快速回复

您需要登录后才可以回帖
登录 | 注册

论坛热帖

在线客服 快速回复 返回顶部返回列表