[bsp/esp32c3] add Kconfig

This commit is contained in:
supperthomas
2022-07-03 21:40:12 +08:00
committed by guo
parent 9359ab4fa8
commit 74ed15a850
8 changed files with 747 additions and 61 deletions
File diff suppressed because it is too large Load Diff
+22
View File
@@ -0,0 +1,22 @@
mainmenu "RT-Thread Configuration"
config BSP_DIR
string
option env="BSP_ROOT"
default "."
config RTT_DIR
string
option env="RTT_ROOT"
default "../.."
config PKGS_DIR
string
option env="PKGS_ROOT"
default "packages"
source "$RTT_DIR/Kconfig"
source "$PKGS_DIR/Kconfig"
source "board/Kconfig"
+13 -12
View File
@@ -3,7 +3,7 @@
## 简介
本文档为 乐鑫ESP32-C3 开发板的[ESP32C3](http://luatos.com/t/esp32c3) BSP (板级支持包) 说明。
本文档为基于RT-THREAD的乐鑫ESP32-C3的[ESP32C3](http://luatos.com/t/esp32c3) BSP (板级支持包) 说明。
主要内容如下:
@@ -14,7 +14,7 @@
## 开发板介绍
目前测试了两款开发板,运行都正常,由于两款开发板LED小灯引脚不同,请根据自己开发板修改GPIO引脚,目前默认使用的开发板是LUATOS_ESP32C3 `GPIO 12` (HX 开发板引脚是`GPIO 8`)。已测开发板外观如下图所示:
目前测试了两款开发板,运行都正常,由于两款开发板LED小灯引脚不同,请在menuconfig中选择自己手上的开发板。已测开发板外观如下图所示:
- [LUATOS_ESP32C3](https://wiki.luatos.com/chips/esp32c3/board.html)
@@ -33,7 +33,7 @@
- 常用外设
- 红色LED2个,LED: D4 (IO12), D5IO13
- 按键:2个,K1BOOT K2(RST)
- SPI FLASH: 2M
- SPI FLASH: 4M
- 常用接口:USB UART等
开发板更多详细信息请参考 [ESP32-C3开发板介绍](https://wiki.luatos.com/chips/esp32c3/board.html)。
@@ -46,18 +46,19 @@
| :----------------- | :----------: | :------------------------------------- |
| GPIO | 支持 | |
| UART | 支持中 | |
| JTAG调试 | 支持 | ESP32C3采用USB方式和PC链接的开发板可以调试 |
## 使用说明
### 快速上手
先要搭建IDE开发环境,乐鑫官方推荐使用IDF开发。
先要搭建IDE开发环境,乐鑫官方推荐使用IDF开发,这边建议使用vscode插件
IDF的搭建方法有很多种,尝试了很多种方法之后,总结了一个最快速的方法,并且可以使用vscode跨平台安装,非常简单方便,具体方法见链接[ESP-IDF 一键式搭建环境基于VSCODE](https://blog.csdn.net/lt6210925/article/details/123699249)。 安装的时候IDF版本请选择IDF 4.4版本。如果你对官方IDF命令行的方式熟悉的话,你也可以使用命令行的方式,这边已经测试过,是可以使用的。
IDF的搭建方法有很多种,尝试了很多种方法之后,总结了一个比较好用的方法,并且可以使用vscode跨平台安装,非常简单方便,具体方法见链接[ESP-IDF 一键式搭建环境基于VSCODE](https://blog.csdn.net/lt6210925/article/details/123699249)。 安装的时候IDF版本请选择IDF 4.4版本。如果你对官方IDF命令行的方式熟悉的话,你也可以使用命令行的方式,直接在`bsp/esp32_c3`中执行`idf.py build`即可,这边已经测试过,是可以使用的。
### IDF patch加载
### ESP-IDF 添加RT-THREAD patch
由于IDF使用的是FREERTOS需要修改一些文件`0001-add-the-config-of-RTTHREAD.patch` 这个文件拷贝到安装的时候的IDF的代码目录执行命令 下面命令可以打上patch
由于IDF使用的是FREERTOS,如果需要使用rt-thread就需要修改一些文件`0001-add-the-config-of-RTTHREAD.patch` 这个文件拷贝到IDF的代码目录下面,然后在`git bash`命令行内执行命令下面几条命令可以打上patch
```
cd esp/esp-idf
@@ -65,13 +66,13 @@ git checkout v4.4
git am 0001-add-the-config-of-RTTHREAD.patch
```
如果不想用patch文件,已经将代码上传到github上面,可以进入[supperthomas/esp-idf](https://github.com/supperthomas/esp-idf) 下载最新的master分支。修改之后的IDF,原来的IDF的example还是正常使用,互不干扰。
如果不想用patch文件,已经将代码上传到github上面,可以进入[supperthomas/esp-idf](https://github.com/supperthomas/esp-idf) 下载最新的master分支代码即可。修改之后的IDF,原来的IDF的example还是正常使用,互不干扰,可以放心使用
#### 编译下载
用VSCODE 在bsp/ESP32_C3中右击打开
`bsp/ESP32_C3`中右击,然后使用vscode打开工程
编译选择最下面的按钮:
编译选择最下面的按钮即可
![build](images/build.png)
@@ -81,8 +82,8 @@ git am 0001-add-the-config-of-RTTHREAD.patch
#### 运行结果
下载程序成功之后,系统会运行,红色的 D4以 1S 周期闪烁。
刚接触ESP32, 目前仅实现LED小灯闪烁,可以print打印,后续计划将pin设备和console对接上去,也欢迎大家一起来贡献,感兴趣的可以通过公众号`Thomas的小火车`来联系
下载程序成功之后,系统会运行,红色的 LED灯以 1S 周期闪烁。
感兴趣的可以通过公众号`Thomas的小火车`来联系
## 注意事项
+46
View File
@@ -0,0 +1,46 @@
menu "Hardware Drivers Config"
config SOC_ESP32_C3
bool
select RT_USING_COMPONENTS_INIT
default y
config SOC_ESPRESSIF
bool
default y
choice
prompt "Select BSP board "
default BSP_BOARD_LUATOS_ESP32C3
config BSP_BOARD_LUATOS_ESP32C3
bool "LUATOS ESP32C3 board"
config BSP_BOARD_HX_EXP32C3
bool "HONGXU ESP32C3 board"
endchoice
menu "Onboard Peripheral Drivers"
config RT_BSP_LED_PIN
int "LED GPIO PIN SET"
default 12 if BSP_BOARD_LUATOS_ESP32C3
default 8 if BSP_BOARD_HX_EXP32C3
depends on BSP_USING_GPIO
endmenu
menu "On-chip Peripheral Drivers"
config BSP_USING_GPIO
bool "Enable GPIO"
select RT_USING_PIN
default y
config BSP_USING_UART
bool "Enable UART"
default n
endmenu
endmenu
-3
View File
@@ -25,9 +25,6 @@ idf_component_register(SRCS "board.c" "main.c"
"../../../components/drivers/ipc/ringbuffer.c"
"../../../components/drivers/ipc/workqueue.c"
"../../../components/drivers/serial/serial.c"
INCLUDE_DIRS
"../../../components/drivers/include/drivers"
+3 -4
View File
@@ -15,14 +15,13 @@
int rtt_main(void)
{
#define BLINK_GPIO 12
rt_pin_mode(BLINK_GPIO, PIN_MODE_OUTPUT);
rt_pin_mode(RT_BSP_LED_PIN, PIN_MODE_OUTPUT);
while (1)
{
printf("Hello!RT-THREAD!\r\n");
rt_pin_write(BLINK_GPIO, PIN_HIGH);
rt_pin_write(RT_BSP_LED_PIN, PIN_HIGH);
rt_thread_mdelay(1000);
rt_pin_write(BLINK_GPIO, PIN_LOW);
rt_pin_write(RT_BSP_LED_PIN, PIN_LOW);
rt_thread_mdelay(1000);
}
}
+32 -39
View File
@@ -19,6 +19,10 @@
/* Inter-Thread communication */
#define RT_USING_SEMAPHORE
#define RT_USING_MUTEX
#define RT_USING_EVENT
#define RT_USING_MAILBOX
#define RT_USING_MESSAGEQUEUE
/* Memory Management */
@@ -29,45 +33,36 @@
/* Kernel Device Object */
#define RT_VER_NUM 0x40004
#define RT_USING_DEVICE
#define RT_VER_NUM 0x40101
/* RT-Thread Components */
/* C++ features */
/* Command shell */
/* Device virtual file system */
#define RT_USING_COMPONENTS_INIT
/* Device Drivers */
#define RT_USING_DEVICE_IPC
#define RT_USING_PIN
/* Using USB */
/* POSIX layer and C standard library */
/* C/C++ and POSIX layer */
#define RT_LIBC_DEFAULT_TIMEZONE 8
/* POSIX (Portable Operating System Interface) layer */
/* Interprocess Communication (IPC) */
/* Socket is in the 'Network' category */
/* Network */
/* Socket abstraction layer */
/* Network interface device */
/* light weight TCP/IP stack */
/* AT commands */
/* VBUS(Virtual Software BUS) */
/* Utilities */
@@ -121,9 +116,6 @@
/* enhanced kernel services */
/* POSIX extension functions */
/* acceleration: Assembly language or algorithmic acceleration packages */
@@ -148,18 +140,19 @@
/* entertainment: terminal games and other interesting software packages */
#define RT_USING_DEVICE
#define RT_USING_PIN
#define RT_USING_SEMAPHORE
#define RT_USING_MUTEX
#define RT_USING_EVENT
#define RT_USING_MAILBOX
#define RT_USING_MESSAGEQUEUE
/* Hardware Drivers Config */
#define RT_USING_COMPONENTS_INIT
#define RT_DEBUG_INIT 1
#define SOC_ESP32_C3
#define SOC_ESPRESSIF
#define BSP_BOARD_LUATOS_ESP32C3
/* Onboard Peripheral Drivers */
#define RT_BSP_LED_PIN 12
/* On-chip Peripheral Drivers */
#define BSP_USING_GPIO
#define RT_USING_SERIAL
#define BSP_USING_UART1
#endif
+3 -3
View File
@@ -102,11 +102,11 @@ CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set
CONFIG_ESPTOOLPY_FLASHFREQ="80m"
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y
# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set
# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
CONFIG_ESPTOOLPY_FLASHSIZE="2MB"
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
CONFIG_ESPTOOLPY_BEFORE_RESET=y
# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set