瑞芯微Rockchip开发者社区
直播中

英雄孤寂

11年用户 1187经验值
私信 关注
[问答]

请问RK3308如何实现对led灯的控制?

请问RK3308如何实现对led灯的控制?

回帖(1)

郎渐海

2022-3-9 11:33:56
首先在linux的服务器上建立好环境。
在buildroot/package/rockchip文件夹下创建一个fireflydemo文件夹

在fireflydemo的文件夹中创建一个Config.in文件Config.in文件的内容如下:

config BR2_PACKAGE_FIREFLYDEMO
bool "Simple Firefly Demo"

再创建一个文件叫做 fireflydemo.mk,将源码的目录指向 external/fireflydemo/src/,fireflydemo.mk的内容如下:

##################################################
###########
#
## fireflydemo
#
###################################################
###########
ifeq ($(BR2_PACKAGE_FIREFLYDEMO), y)
    FIREFLYDEMO_VERSION:=1.0.0
    FIREFLYDEMO_SITE=$(TOPDIR)/../external/fireflydemo/src
    FIREFLYDEMO_SITE_METHOD=local
define FIREFLYDEMO_BUILD_CMDS
    $(TARGET_MAKE_ENV) $(MAKE) CC=$(TARGET_CC) CXX=$(TARGET_CXX) -C $(@D)
endef
define FIREFLYDEMO_CLEAN_CMDS
    $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) clean
endef
define FIREFLYDEMO_INSTALL_TARGET_CMDS
    $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
endef
define FIREFLYDEMO_UNINSTALL_TARGET_CMDS
    $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) uninstall
endef
$(eval $(generic-package))
endif

创建源码的目录,在extennal文件夹进行创建:
external/fireflydemo/src/

开始编写源码demo.c:

#include   
#include   
#include   
#include   
#include   
#include   
#include   
#include   
#include   
  
int main(int argc, char* argv[])  
{
        while(1){
                system("echo 0 >/sys/class/leds/firefly:blue:user/brightness ");
                sleep(1);
                system("echo 1 >/sys/class/leds/firefly:blue:user/brightness");
                system("echo 0 >/sys/class/leds/firefly:red:power/brightness ");
                sleep(1);
                system("echo 1 >/sys/class/leds/firefly:red:power/brightness");

        }
}

编写Makefile:

DEPS =
OBJ = demo.o
CFLAGS =
%.o: %.c $(DEPS)
    $(CC) -c -o $@ $< $(CFLAGS)
demo: $(OBJ)
    $(CXX) -o $@ $^ $(CFLAGS)
.PHONY: clean
clean:
    rm -f *.o *~ demo
.PHONY: install
install:
    cp -f demo $(TARGET_DIR)/usr/bin/
.PHONY: uninstall
uninstall:
    rm -f $(TARGET_DIR)/usr/bin/demo

最后在/buildroot/package/rockchip/Config.in 最后加入以下代码:

source "package/rockchip/fireflydemo/Config.in"

在编译环境中使用make menuconfig ,去选中前面编写的fireflydemo:


进入选项后,使用上下键选择Target packages,按下enter键



选中rockchip BSP packages:



选中该目录下的最后一个,切换到Simple Firefly Demo 后使用空格键选中:



之后,使用左右键选择退出
运行make fireflydemo:



运行make命令:


下次重新编写了之后使用make fireflydemo-rebuild,否则会报错
然后编译好的文件在buildrootoutputfirefly_rk3308_releasebuildfireflydemo-1.0.0目录下,将demo文件下载到本地



在保存的demo文件夹中运行cmd,将demo push到RK 3308的板子上adb push demo usr/bin(首先得安装好adb)



运行 adb shell 进入到板子的操作系统:



切换到usr/bin文件夹,可以查看到我们的demo文件,使用ls自行查看:



运行chmod 777 demo ,再运行demo就可以实现看到我们的结果:

举报

更多回帖

发帖
×
20
完善资料,
赚取积分