我的思路是这样的,上电前面几百个MS运行IAP程序段,检测有无IAP命令,有的话就执行IAP程序,无的话就进入APP; 编译器用的是:Cosmic IAP程序段容量:4K IAP程序段: #define APP_START_ADDRESS 0x009000 typedef @far void (*TFunction)(void); const TFunction MainUserApplication = (TFunction)APP_START_ADDRESS; 跳入APP执行的语句: _asm("JPF [_MainUserApplication]"); ///////////////////////////////////////////////////////////////////// 在APP的工程中,Link中选项设置如下:(APP程序从0x9000开始存放) APP工程按这样设置后,烧入APP程序区域,发现进不了中断,是否有地方没有设置好? 现象1) 我的APP上电时有一段在非中断中执行的IO口操作程序,用示波器测量有波形的变化,说明程序已经执行到了APP区域;只是为何不进中断? interrupt_vector应该不用更改吧: struct interrupt_vector const _vectab[] = { {0x82, (interrupt_handler_t)_stext}, /* reset */ //_stext main {0x82, NonHandledInterrupt}, /* trap */ {0x82, NonHandledInterrupt}, /* irq0 */ {0x82, NonHandledInterrupt}, /* irq1 */ {0x82, NonHandledInterrupt}, /* irq2 */ {0x82, NonHandledInterrupt}, /* irq3 */ {0x82, NonHandledInterrupt}, /* irq4 */ {0x82, NonHandledInterrupt}, /* irq5 */ {0x82, EXTI_PORTD_IRQHandler}, /* irq6 */ 。。。} 现象2) 在IAP中仿真的时候发现程序进入了: @near @interrupt void NonHandledInterrupt(void) { /* In order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruction. */ return; } 意思是在执行APP的时候进入了IAP的中断入口?是入口地址没设置好吗? 请指教,谢谢 |
从零开始操作STM8寄存器(风驰iCreate奉献)
【中文资料】初学STM8库函数的中文帮助软件
绝对经典的中文STM8学习手册,淘宝上学习板资料,友情大放送!
【原创教程】风驰iCreate独家开源STM8 27个例程和10多万字的pdf教程
STM8的LCD1602 4线驱动,为什么不工作
【精华资料】由零开始开发STM8
STM8S 的触摸库是如何在主程序中查询键的呢、
【精华资料】STM8的C语言编程1-14讲完整版
【精品教程】STM8系列单片机入门教程系列
STM8 第一次进中断不准【悬赏问答】
RE:STM8 IAP后运行APP程序段时为何进不了中断?
RE:STM8 IAP后运行APP程序段时为何进不了中断?
RE:STM8 IAP后运行APP程序段时为何进不了中断?
回复:STM8 IAP后运行APP程序段时为何进不了中断?
这个中断要怎么设置呢?