前言
本期博客介绍使用库编写gpio驱动RGB灯。
如果想要使用下面流程,请先查看Linux Ubuntu下烧录固件的过程,点击此链接进行查看
一、具体流程
第1步 进入目录
cd ~/Ai-Thinker-WB2/applications/get-started
创建目录gpio
第2步 进入gpio目录并创建如下文件/目录
第3步 编写Makefile文件(代码如下)
#
# This is a project Makefile. It is assumed the directory this Makefile resides in is a
# project subdirectory.
#
PROJECT_NAME := gpio
PROJECT_PATH := $(abspath .)
PROJECT_BOARD := evb
export PROJECT_PATH PROJECT_BOARD
#CONFIG\_TOOLPREFIX :=
-include ./proj_config.mk
ifeq ($(origin BL60X\_SDK\_PATH), undefined)
BL60X_SDK_PATH_GUESS ?= $(shell pwd)
BL60X_SDK_PATH ?= $(BL60X\_SDK\_PATH\_GUESS)/../../..
$(info \*\*\*\*\*\* Please SET BL60X\_SDK\_PATH \*\*\*\*\*\*)
$(info \*\*\*\*\*\* Trying SDK PATH [$(BL60X\_SDK\_PATH)])
endif
COMPONENTS_BLSYS := bltime blfdt blmtd bloop loopadc looprt loopset
COMPONENTS_VFS := romfs
INCLUDE_COMPONENTS += freertos_riscv_ram bl602 bl602_std newlibc hosal mbedtls_lts lwip vfs yloop utils cli blog blog_testc coredump
INCLUDE_COMPONENTS += $(COMPONENTS\_NETWORK)
INCLUDE_COMPONENTS += $(COMPONENTS\_BLSYS)
INCLUDE_COMPONENTS += $(COMPONENTS\_VFS)
INCLUDE_COMPONENTS += $(PROJECT\_NAME)
include $(BL60X\_SDK\_PATH)/make_scripts_riscv/project.mk
第4步编写proj_config.mk文件(代码如下)
#
#compiler flag config domain
#
#CONFIG\_TOOLPREFIX :=
#CONFIG\_OPTIMIZATION\_LEVEL\_RELEASE := 1
#CONFIG\_M4\_SOFTFP := 1
#
#board config domain
#
CONFIG_BOARD_FLASH_SIZE := 2
#firmware config domain
#
#set CONFIG\_ENABLE\_ACP to 1 to enable ACP, set to 0 or comment this line to disable
#CONFIG\_ENABLE\_ACP:=1
CONFIG_BL_IOT_FW_AP:=1
CONFIG_BL_IOT_FW_AMPDU:=0
CONFIG_BL_IOT_FW_AMSDU:=0
CONFIG_BL_IOT_FW_P2P:=0
CONFIG_ENABLE_PSM_RAM:=1
#CONFIG\_ENABLE\_CAMERA:=1
#CONFIG\_ENABLE\_BLSYNC:=1
#CONFIG\_ENABLE\_VFS\_SPI:=1
CONFIG_ENABLE_VFS_ROMFS:=1
CONFIG_EASYFLASH_ENABLE:=0
CONFIG_SYS_APP_TASK_STACK_SIZE:=4096
CONFIG_SYS_APP_TASK_PRIORITY:=15
CONFIG_FREERTOS_TICKLESS_MODE:=0
CONFIG_SYS_VFS_ENABLE:=1
CONFIG_SYS_VFS_UART_ENABLE:=1
CONFIG_SYS_AOS_CLI_ENABLE:=0
CONFIG_SYS_AOS_LOOP_ENABLE:=1
CONFIG_SYS_BLOG_ENABLE:=1
CONFIG_SYS_DMA_ENABLE:=0
CONFIG_SYS_USER_VFS_ROMFS_ENABLE:=0
CONFIG_BL602_USE_ROM_DRIVER:=1
CONFIG_BT_CENTRAL:=1
CONFIG_BT_OBSERVER:=1
CONFIG_BT_PERIPHERAL:=1
CONFIG_BT_STACK_CLI:=1
CONFIG_BT_WIFIPROV_SERVER:=1
CONFIG_WIFI:=0
CONF_ENABLE_COREDUMP:=1
LOG_ENABLED_COMPONENTS:=blog_testc hosal loopset looprt bloop gpio
第5步 编写README.md文件(代码如下,该文件不参与执行)
# Blink Example
## Example Output
As you run the example, you will see the log :
Booting Ai-WB2 Modules...
------------------------------------------------------------
RISC-V Core Feature:RV32-ACFIMX
Build Version: release_bl_iot_sdk_1.6.38
Build Date: Oct 8 2022
Build Time: 15:42:26
------------------------------------------------------------
blog init set power on level 2, 2, 2.
[IRQ] Clearing and Disable all the pending IRQ...
[ 0][INFO: hal_boot2.c: 282] [HAL] [BOOT2] Active Partition[0] consumed 596 Bytes
[ 0][INFO: hal_boot2.c: 82] ======= PtTable_Config @0x4200d158=======
[ 0][INFO: hal_boot2.c: 83] magicCode 0x54504642; version 0x0000; entryCnt 7; age 0; crc32 0x12DF9A26
[ 0][INFO: hal_boot2.c: 89] idx type device activeIndex name Address[0] Address[1] Length[0] Length[1] age
[ 0][INFO: hal_boot2.c: 91] [00] 00 0 0 FW 0x00010000 0x000e8000 0x000d8000 0x00088000 0
[ 0][INFO: hal_boot2.c: 91] [01] 02 0 0 mfg 0x00170000 0x00000000 0x00032000 0x00000000 0
[ 0][INFO: hal_boot2.c: 91] [02] 03 0 0 media 0x001a2000 0x00000000 0x00047000 0x00000000 0
[ 0][INFO: hal_boot2.c: 91] [03] 04 0 0 PSM 0x001e9000 0x00000000 0x00008000 0x00000000 0
[ 0][INFO: hal_boot2.c: 91] [04] 05 0 0 KEY 0x001f1000 0x00000000 0x00002000 0x00000000 0
[ 0][INFO: hal_boot2.c: 91] [05] 06 0 0 DATA 0x001f3000 0x00000000 0x00005000 0x00000000 0
[ 0][INFO: hal_boot2.c: 91] [06] 07 0 0 factory 0x001f8000 0x00000000 0x00007000 0x00000000 0
[ 0][INFO: bl_flash.c: 391] ======= FlashCfg magiccode @0x42049c18=======
[ 0][INFO: bl_flash.c: 392] mid 0x5E
[ 0][INFO: bl_flash.c: 393] clkDelay 0x1
[ 0][INFO: bl_flash.c: 394] clkInvert 0x1
[ 0][INFO: bl_flash.c: 395] sector size 4KBytes
[ 0][INFO: bl_flash.c: 396] page size 256Bytes
[ 0][INFO: bl_flash.c: 397] ---------------------------------------------------------------
[ 0][INFO: hal_board.c:1249] [MAIN] [BOARD] [FLASH] addr from partition is 001f8000, ret is 0
[ 0][INFO: hal_board.c:1257] [MAIN] [BOARD] [XIP] addr from partition is 231e7000, ret is 0
Note: The color order could be different according to the LED model.
## Troubleshooting
For any technical queries, please open an [issue]( ) on GitHub. We will get back to you soon.
第6步 进入gpio目录并创建如下文件
第7步 根据原理图编写main.c文件(代码如下)
#include <stdio.h>
#include <string.h>
#include <FreeRTOS.h>
#include <task.h>
#include <bl\_gpio.h>
#define GPIO\_B\_PIN 3
#define GPIO\_R\_PIN 14
#define GPIO\_G\_PIN 17
void blink\_test(void \*param)
{
## 最后
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/57abbf5292369f2ba284ab933f5da23a.png)
![img](https://img-blog.csdnimg.cn/img_convert/cac590f5f5d44a40d218c0e3eeb27c95.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/cb1c376ece52738044f3ff51bd9f795c.png)
![img](https://img-blog.csdnimg.cn/img_convert/f1968817b1c6fd94f54b24b7b1bfd838.png)
![img](https://img-blog.csdnimg.cn/img_convert/5ab7147ea8353ab46b4009bd8b0b4d20.png)
![img](https://img-blog.csdnimg.cn/img_convert/fe228f27a3b219362cef3b983b7b20f9.png)
![](https://img-blog.csdnimg.cn/img_convert/153e84126152c582be630f48d3212850.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!
3)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!