图2列表显示的命令为:
发布于3年前
图2列表显示的命令为:
发布于4年前
问题1的解决方法:将定时器设为HWTIMER_MODE_PERIOD;
问题2的解决方法:将StartTimerLoop(&InitNodes)的SetAlarm(NULL, 0, init_callback, 0, 0);
函数中的Value值可以设一个值(这个值稍微大些,不然一直进入中断,无法执行其他任务),period为0。
发布于4年前
这个链接有具体的配置过程,我当时就是按照这个说明进行配置的,他们提供了字典对选对象配置所有文档的百度链接,如果链接失效得加一下文章下面的微信公众号才行。https://www.strongerhuang.com/CANOpen/CANOpen%E7%B3%BB%E5%88%97%E6%95%99%E7%A8%8B10_%E5%85%B3%E4%BA%8ECanfestival%E5%8F%8A%E5%AF%B9%E8%B1%A1%E5%AD%97%E5%85%B8%E7%94%9F%E6%88%90%E5%B7%A5%E5%85%B7%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA.html
发布于4年前
问题描述: GCC编译器不支持__attribute__ ((at(addr)))
指令,从而出现警告情况,提示信息为“warning: ’at’ attribute directive ignored”,
该命令__attribute__ ((at(addr)))
在Keil中给的使用方式图图1所示。
需要使用__attribute__ ((section(“name”)))
。
图1 Keil中定义数组于某个地址的方式
解决办法:使用__attribute__ ((section(“name”)))
,由于section的使用方法在国内较少,从而只能去国外查找,最后在网站 找到了解决办法。
由于使用了GCC编译器,从而一定有一个连接文件,该文件的后缀名为.lds。
(添加变量到Flash中):
打开文件后,将Flash中的变量添加到图2的②中。
①是对Flash中的函数,中断等进行内存的初始化,
③是开始对RAM中的变量进行初始化。
图2 Flash中段的添加
RAM中段的添加如图3中的
②所示。
①是栈的初始化,
③是定义的一些变量的初始化。
图3 RAM中段的添加
将数组定义到对应的段中。如定义到Flash中如图4所示。
图4 变量定义于Falsh中的方式
问 使用SINSH注册函数,部分注册函数无法显示