首先在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