RK3308控制led灯

首先在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 <stdio.h>  
#include <linux/rtc.h>  
#include <sys/ioctl.h>  
#include <sys/time.h>  
#include <sys/types.h>  
#include <fcntl.h>  
#include <unistd.h>  
#include <errno.h>  
#include <stdlib.h>  
  
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,否则会报错
然后编译好的文件在buildroot\output\firefly_rk3308_release\build\fireflydemo-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就可以实现看到我们的结果:

在这里插入图片描述

最后的结果:

RK3308控制led

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

曾许人间第一流.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值