STM8xx swim comm timeout
STM8仿真出现swim error [30004]: comm timeout:
理解问题:
选项字节(Option Byte)写操作之IO复用,选项字节包括芯片硬件特性的配置和存储器的保护信息,这些字节保存在存储器中一个专用的块内。除了ROP(读出保护)字节,每个选项字节必须被保存两次,一个是通常的格式(OPTx)和一个用来备份互补格式的(NOPTx)。选项字节可以通过应用程序在IAP模式下修改,但是ROP选项只能在ICP模式(通过SWIM)下被修改。有关SWIM编程过程的内容可以参考STM8S相对应的芯片手册。
不同的芯片的选项字节大小不一样,具体的可以参考芯片数据手册。如用STM8S003F3来举例,选项字节如下:
STM8S003F对于20脚封装的产品的复用功能重定义位:
上图中文内容如下图:
由此可知:关于本程序PC3,PC6为一路互补PWM,PC4和PC7为一路互补PWM,均是互补PWM外加死区时间控制,PC3为复用功能TIM1_CH1N,PC4为复用功能TIM1_CH2N,PC6为复用功能TIM1_CH1,PC7为复用功能TIM1_CH2。所以需要打开AFR7与AFR0复用功能重映射选项。
采用IAR编译器设置如下: