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

XAndxiang

4年用户 48经验值
擅长:嵌入式技术 控制/MCU
私信 关注

【LuckFox Pico Plus开发板免费试用】开发环境搭建+交叉编译HELLO WORLD

1,首先我们需要从github上面获取sdk,地址在这:

git clone https://github.com/LuckfoxTECH/luckfox-pico.git

2,我们在编译之前需要安装一下依赖的库

sudo apt-get install repo git ssh make gcc gcc-multilib g++-multilib module-assistant expect g++ gawk texinfo libssl-dev bison flex fakeroot cmake unzip gperf autoconf device-tree-compiler libncurses5-dev pkg-config

你可能会遇到无法定位repo软件包的问题,没事,不去安装它就行,暂时用不到。

3,激活一下工具链的环境变量,工具链就包含在我们前面下载的sdk里面了。每次打开新终端操作的时候都要这样操作。

cd tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/
source env_install_toolchain.sh

4,回到sdk根目录,执行./build.sh lunch选择对应的板卡配置,我们这里是Luckfox_Pico_Plus,所以应该选择1。
image.png

5,执行./build.sh等待片刻,看到下面的输出没有报错就编译成功了,整个编译流程还是很顺畅的,得益于sdk把工具链什么的都弄好了。
image.png

6,编译成功后,固件存放在/home/Luckfox-Pico/luckfox-pico/output/image 目录下。

7,固件下载

打开tools/linux/SocToolKit目录下的SocToolKit工具

① 按住 BOOT 键后连接电脑后,松开 BOOT 键,瑞芯微刷机工具就会显示 MaskRom 设备。

② 加载固件的存放目录,也就是刚刚我们编译完成输出的image目录,重载 env 文件,勾选所有项。

③ 点击下载。

然后就可以愉快的更新程序了。

可能你直接鼠标打开程序会一直下载失败,这可能是权限问题,我这里用命令行启动带sudo启动就可以正常下载了。
image.png

image.png

8,写一个简单的HELLO WORLD,交叉编译传到开发板子上去

#include <stdio.h>

int main()
{
   /*  Write C code in this online editor and run it. */
   printf("Hello, World! \n");
   
   return 0;
}

然后写一个简单的makefile来帮我们编译

PROJECT 			?= app
MAKEFLAGS 			:= -j $(shell nproc)
SRC_EXT      		:= c
OBJ_EXT				:= o
CC					= ../../luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc
# CC 					?= gcc

SRC_DIR				:= ./
WORKING_DIR			:= ./build
BUILD_DIR			:= $(WORKING_DIR)/obj
BIN_DIR				:= $(WORKING_DIR)/bin

WARNINGS 			:= -Wall

CFLAGS 				:= -O0 -g $(WARNINGS)

# Add define to allow modification of source
DEFINES				:=

# Include files
INC 				:=
LDLIBS	 			:=
BIN 				:= $(BIN_DIR)/app

COMPILE				= $(CC) $(CFLAGS) $(INC) $(DEFINES)

# Automatically include all source files
SRCS 				:= $(shell find $(SRC_DIR) -type f -name '*.c' -not -path '*/\.*')
OBJECTS    			:= $(patsubst $(SRC_DIR)%,$(BUILD_DIR)/%,$(SRCS:.$(SRC_EXT)=.$(OBJ_EXT)))

all: default

$(BUILD_DIR)/%.$(OBJ_EXT): $(SRC_DIR)/%.$(SRC_EXT)
	@echo 'Building project file: $<'
	@mkdir -p $(dir $@)
	@$(COMPILE) -c -o "$@" "$<"

default: $(OBJECTS)
	@mkdir -p $(BIN_DIR)
	$(CC) -o $(BIN) $(OBJECTS) $(LDFLAGS) ${LDLIBS}

clean:
	rm -rf $(WORKING_DIR)

# install: ${BIN}
# 	install -d ${DESTDIR}/usr/lib/${PROJECT}/bin
# 	install $< ${DESTDIR}/usr/lib/${PROJECT}/bin/

我们年只需要修改ia一下CC的路径即可
然后直接nake就会在build/bin/目录下生成app文件,把这个文件传到板子上去即可。

9,完成上面步骤后我们给开发板插上USB,板载的led灯应该就开始闪烁了,这个时候我们可以选择通过adb或者调试串口登陆到开发板上去,这里我选择使用adb,应为还需要传输文件到板子上去,然后直接运行这个app文件即可。
image.png

可以看到程序已经正确的打印了。

更多回帖

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