完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
研究了三天,坑的确不少。
1、首先多个项目一个程序打开,乱成一团,一不小心还会删掉全部文件。 强开两个程序,有时也傻傻的,几个项目也在一个程序里面打开。 太难受。 2、不知道怎么Define 3、不知道怎么查Track(崩都不知道哪里崩的)。 今天加了ADC+DMA+中断,调试老是进硬件故障中断。 但是不调试,直接上电跑呢,RTOS的任务都正常的(调试是不正常的)。 加了这几个,也不知道有没有关系。 void NMI_Handler(void) __attribute__((interrupt(/*"WCH-Interrupt-fast"*/))); void HardFault_Handler(void) __attribute__((interrupt(/*"WCH-Interrupt-fast"*/))); void SVC_Handler(void) __attribute__((interrupt(/*"WCH-Interrupt-fast"*/))); void PendSV_Handler(void) __attribute__((interrupt(/*"WCH-Interrupt-fast"*/))); void DMA1_Channel1_IRQHandler(void) __attribute__((interrupt(/*"WCH-Interrupt-fast"*/))); 中断函数声明,有的需要带WCH-Interrupt-fast,有的又需要注释。 根据什么来的呢? |
|
相关推荐
1个回答
|
|
关于你咨询的中断函数声明问题,当使用硬件压栈的中断函数需要使用 MRS 或者其提供的工具链进行编译且中断函数需要采用__attribute__((interrupt("WCH-Interrupt-fast")))声明,其用于保证中断执行完成之后程序正常运行。若不添加此函数,中断执行完成之后,中断执行之前保存的信息将不会被返回,中断会被认为一个正常程序继续执行下去,但中断之后并没有程序,从而导致程序出现类似跑飞状况。添加此函数,中断执行完成之后,中断执行之前保存的信息将会被返回,从而程序可以继续正常执行。使用软件压栈的中断函数采用__attribute__((interrupt()))声明。具体可参考下列链接手册3.4小节,如下图。
手册链接: |
|
|
|
只有小组成员才能发言,加入小组>>
481 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2877 浏览 2 评论
2366 浏览 1 评论
821浏览 2评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
654浏览 1评论
502浏览 1评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
367浏览 1评论
645浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 23:09 , Processed in 0.929837 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号