stm8启动过程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
stm8启动过程

STM8启动流程 HYPERLINK /bbs/tag-%25E6%25B5%2581%25E7%25A8%258B.html流程 说明:原创文章,转载请注明出处。 STM8启动过程: 1)首先bootloader(ROM中)从0x6000地址启动。 2)从bootloader跳转到0x8000(内部FLASH起始地址),0x8000后面才是软件设计可以控制的。很多人不明白的是stm8库里面提供的相关代码,具体流程如下: a)中断向量表:大家都知道0x8000地址放的是中断函数的地址,而‘0x82’则是stm8内部的中断指令。程序执行到这会自动跳转到中断向量地址所在函数。 b)mian函数到底从哪开始? 这也许是大家最纳闷的了,起始原来很简单:关键是stm8有个复位中断,定义在 stm8_interrupt_vector.c中: (void @near (*)())0x8200, _stext, /* RESET */” extern void @near _stext(); /* startup routine */ void @near (* const _vectab[])() = { (void @near (*)())0x8200, _stext, /* RESET */ (void @near (*)())0x8200, TRAP_IRQHandler, /* TRAP - Software interrupt */ (void @near (*)())0x8200, TLI_IRQHandler, /* irq0 - External Top Level interrupt (TLI) */ (void @near (*)())0x8200, AWU_IRQHandler, /* irq1 - Auto Wake Up from Halt interrupt */ (void @near (*)())0x8200, CLK_IRQHandler, /* irq2 - Clock Controller interrupt */ (void @near (*)())0x8200, EXTI_PORTA_IRQHandler, /* irq3 - External interrupt 0 (GPIOA) */ (void @near (*)())0x8200, EXTI_PORTB_IRQHandler, /* irq4 - External interrupt 1 (GPIOB) */ (void @near (*)())0x8200, EXTI_PORTC_IRQHandler, /* irq5 - External interrupt 2 (GPIOC) */ (void @near (*)())0x8200, EXTI_PORTD_IRQHandler, /* irq6 - External interrupt 3 (GPIOD) */ (void @near (*)())0x8200, EXTI_PORTE_IRQHandler, /* irq7 - External interrupt 4 (GPIOE) */ #ifdef STM8S208 (void @near (*)())0x8200, CAN_RX_IRQHandler, /* irq8 - CAN Rx interrupt */ (void @near (*)())0x8200, CAN_TX_IRQHandler, /* irq9 - CAN Tx/ER/SC interrupt */ #elif defined (STM8S903) (void @near (*)())0x8200, EXTI_PORTF_IRQHandler, /* irq8 - External interrupt 5 (GPIOF) */ (void @near (*)())0x8200, NonHandledInterrupt, /* irq9 - Reserved */ #else /*STM8S207, STM8S105 or STM8S103*/ (void @near (*)())0x8200, NonHandledInterrupt, /* irq8 - Reserved */ (void @near (*)())0x8200, NonHandledInterrupt, /* irq9 - Reserved */ #endif /*STM8S208*/ (void @near (*)())0x8200, SPI_IRQHandler, /* irq10 - SPI End of transfer interrupt */ (void @near (*)(

文档评论(0)

ww90055 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档