Zephyr 使用问题记录

…undefined reference to `__device_dts_ord_N’

链接失败

提示如下

...undefined reference to `__device_dts_ord_N' 
collect2: error: ld returned 1 exit status

解决方案

引自https://docs.zephyrproject.org/latest/build/dts/howtos.html

This likely means there’s a Kconfig issue preventing the device driver
from being built, resulting in a reference that does not exist. If
your code compiles successfully, the last thing to check is if the
device is ready, like this:

由上可知检查Kconfig方面。如_defconfig文件中,功能选项开关是否=y


  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Zephyr使用ESP32-C3的定时器,需要使用Zephyr提供的API来配置和控制该定时器。以下是使用Zephyr API配置ESP32-C3定时器的一些步骤: 1. 引入头文件 在你的代码中,你需要引入Zephyr提供的头文件,如下所示: ```c #include <zephyr.h> #include <device.h> #include <drivers/timer/esp_timer.h> ``` 2. 定义定时器 定义一个定时器的结构体变量,如下所示: ```c struct esp_timer { struct device dev; esp_timer_isr_t isr; void *user_data; }; ``` 其中,`dev`字段是定时器设备对象,`isr`字段是中断服务函数指针,`user_data`字段是用户数据指针。 3. 配置定时器 使用`device_get_binding()`函数获取定时器设备对象,并使用`esp_timer_start()`函数启动定时器,如下所示: ```c static struct esp_timer timer = { .dev = DEVICE_DT_GET(DT_NODELABEL(timer)), }; void timer_callback(struct esp_timer *timer, void *user_data) { /* 定时器超时后的回调函数 */ // TODO: do something } void timer_init(void) { esp_timer_isr_register(&timer, timer_callback, NULL); esp_timer_start(&timer, ESP_TIMER_MODE_PERIODIC, 1000); // 定时器周期为1秒 } ``` 在这个例子中,`esp_timer_isr_register()`函数用于注册定时器中断服务函数,`esp_timer_start()`函数用于启动定时器,参数`ESP_TIMER_MODE_PERIODIC`指定了定时器的工作模式为周期性定时器,参数`1000`指定了定时器的周期为1秒。 4. 处理定时器中断 定时器中断服务函数由`timer_callback()`函数实现,当定时器超时后,会自动调用该函数。在该函数中,你可以执行一些操作,比如更新显示、发送数据等。 ```c void timer_callback(struct esp_timer *timer, void *user_data) { /* 定时器超时后的回调函数 */ // TODO: do something } ``` 以上就是使用Zephyr API配置ESP32-C3定时器的一些基本步骤,你可以根据具体的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才不要写代码呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值