【前言】
相比于传统的fsp开发板,zephyr可以快速的实现上手,今天我就如何快速实现blink分享如下:
【环境】
1、zephyr 4.4.0
2、zephyr sdk 1.0.1
3、vscode
【代码】
在src中创建main.c
/*
* CPKCOR-RA8D1B:LED 闪烁
* 硬件连接:用户 LED1 = PA01(绿色,高电平点亮)
* 工作流:每 500ms 翻转一次 LED,通过 printk 输出心跳计数
* 调试:板载 J-Link,日志默认走 J-Link 虚拟串口(JDBG Type-C)
*/
#include <zephyr/kernel.h>
#include <zephyr/drivers/gpio.h>
#define SLEEP_TIME_MS 500
static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(DT_ALIAS(led0), gpios);
int main(void)
{
int ret;
uint32_t count = 0;
if (!gpio_is_ready_dt(&led)) {
printk("led0 device not ready\n");
return 0;
}
ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
if (ret != 0) {
printk("led0 cfg failed ret=%d\n", ret);
return 0;
}
printk("ra8d1_blink start\n");
while (1) {
ret = gpio_pin_toggle_dt(&led);
if (ret != 0) {
printk("led0 toggle failed ret=%d\n", ret);
return 0;
}
printk("blink %u\n", ++count);
k_msleep(SLEEP_TIME_MS);
}
return 0;
}2、CMakeLists.txt
cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(ra8d1_blink)
target_sources(app PRIVATE src/main.c)3、prj.conf
CONFIG_GPIO=y
【编译与下载】
west build -b cpkcor_ra8d1b app/ra8d1_blink -p
159/159] Linking C executable zephyr\zephyr.elf Memory region Used Size Region Size %age Used FLASH: 23572 B 2016 KB 1.14% RAM: 4984 B 896 KB 0.54% OFS_OFS0_MEMORY: 4 B 4 B 100.00% OFS_OFS2_MEMORY: 4 B 4 B 100.00% OFS_DUALSEL_MEMORY: 4 B 4 B 100.00% OFS_OFS1_SEC_MEMORY: 4 B 4 B 100.00% OFS_BANKSEL_SEC_MEMORY: 4 B 4 B 100.00%
west flash -- west flash: rebuilding ninja: no work to do. -- west flash: using runner jlink -- runners.jlink: reset after flashing requested -- runners.jlink: JLink version: 9.56 -- runners.jlink: Flashing file: D:\luglZephyrproject\build\zephyr\zephyr.hex
【效果观察】
开发板上的LED已经闪起,打开串口终端可以看到周期打印:

【总结】
ra8d1现瑞萨已经非常完整的接入zephyr生态。不需要自己去配置复杂的fsp,一键生成!
我要赚赏金
