在进行内核态开发时,发现无法调用rtthread的pin设备驱动框架

Viewed 41

问题描述


在内核态,想要编写一个内核态驱动

/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/misc/drv_rgb_led.c
却出现以下错误:

scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: /home/lct1001/k230_sdk/output/k230_canmv_lckfb_defconfig/big/rt-smart
LINK rtthread.elf
/opt/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: warning: rtthread.elf has a LOAD segment with RWX permissions
/opt/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: /home/lct1001/k230_sdk/output/k230_canmv_lckfb_defconfig/big/rt-smart/kernel/components/drivers/misc/drv_rgb_led.o: in function `set_rgb_color':
/home/lct1001/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/misc/drv_rgb_led.c:62: undefined reference to `rt_pin_write'
/opt/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: /home/lct1001/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/misc/drv_rgb_led.c:63: undefined reference to `rt_pin_write'
/opt/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: /home/lct1001/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/misc/drv_rgb_led.c:64: undefined reference to `rt_pin_write'
/opt/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: /home/lct1001/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/misc/drv_rgb_led.c:67: undefined reference to `rt_pin_write'
/opt/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: /home/lct1001/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/misc/drv_rgb_led.c:68: undefined reference to `rt_pin_write'
/opt/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: /home/lct1001/k230_sdk/output/k230_canmv_lckfb_defconfig/big/rt-smart/kernel/components/drivers/misc/drv_rgb_led.o:/home/lct1001/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/misc/drv_rgb_led.c:69: more undefined references to `rt_pin_write' follow
/opt/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: /home/lct1001/k230_sdk/output/k230_canmv_lckfb_defconfig/big/rt-smart/kernel/components/drivers/misc/drv_rgb_led.o: in function `k230_rgb_led_init':
/home/lct1001/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/misc/drv_rgb_led.c:152: undefined reference to `rt_pin_mode'
/opt/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: /home/lct1001/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/misc/drv_rgb_led.c:153: undefined reference to `rt_pin_mode'
/opt/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: /home/lct1001/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/misc/drv_rgb_led.c:154: undefined reference to `rt_pin_mode'
/opt/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: /home/lct1001/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/misc/drv_rgb_led.c:158: undefined reference to `rt_device_pin_register'
collect2: error: ld returned 1 exit status
scons: *** [rtthread.elf] Error 1
scons: building terminated because of errors.
/bin/bash: line 5: exit: defconfig: numeric argument required
make: *** [Makefile:370: rt-smart-kernel] Error 2

排除为设置 pin设备

/k230_sdk/src/big/rt-smart/kernel/rt-thread/components/drivers/Kconfig

第138行显示,默认是 y

config RT_USING_PIN
    bool "Using generic GPIO device drivers"
    default y

请问大佬,可以告诉我原因吗?

硬件板卡


庐山派

1 Answers