summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZ8MAN8 <[email protected]>2023-11-27 23:15:41 +0800
committerMeco Man <[email protected]>2023-12-23 15:00:23 +0800
commit71dad1ccf2ea20a9a4ba964e892c15bbe1856a27 (patch)
treed31ab4ca1387fec6a76ec60814d9725ebe740f24
parent4d22242ea5718cd5c087d69ab98b9555c84321ce (diff)
[bsp][pico] add rtduino
-rw-r--r--bsp/raspberry-pico/Kconfig12
-rw-r--r--bsp/raspberry-pico/applications/SConscript7
-rw-r--r--bsp/raspberry-pico/applications/arduino_main.cpp24
-rw-r--r--bsp/raspberry-pico/applications/arduino_pinout/README.md54
-rw-r--r--bsp/raspberry-pico/applications/arduino_pinout/SConscript9
-rw-r--r--bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.c50
-rw-r--r--bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.h49
7 files changed, 203 insertions, 2 deletions
diff --git a/bsp/raspberry-pico/Kconfig b/bsp/raspberry-pico/Kconfig
index 2dce6c344b..909503c7ed 100644
--- a/bsp/raspberry-pico/Kconfig
+++ b/bsp/raspberry-pico/Kconfig
@@ -44,6 +44,18 @@ menu "Onboard Peripheral Drivers"
default y
endif
+ config BSP_USING_ARDUINO
+ bool "Compatible with Arduino Ecosystem (RTduino)"
+ select PKG_USING_RTDUINO
+ select BSP_USING_UART0
+ select BSP_UART0_TX_PIN_0
+ select BSP_UART0_RX_PIN_1
+ select BSP_USING_UART1
+ select BSP_UART1_TX_PIN_8
+ select BSP_UART1_RX_PIN_9
+ select BSP_USING_GPIO
+ default n
+
config BSP_USING_ON_CHIP_FLASH
bool "Enable On-Chip FLASH"
select FAL_DEBUG_CONFIG
diff --git a/bsp/raspberry-pico/applications/SConscript b/bsp/raspberry-pico/applications/SConscript
index 496584a1ae..e1c7fa5996 100644
--- a/bsp/raspberry-pico/applications/SConscript
+++ b/bsp/raspberry-pico/applications/SConscript
@@ -1,9 +1,12 @@
from building import *
import os
-cwd = GetCurrentDir()
-src = ['main.c']
+cwd = GetCurrentDir()
CPPPATH = [cwd]
+src = Glob('*.c')
+
+if GetDepend(['PKG_USING_RTDUINO']) and not GetDepend(['RTDUINO_NO_SETUP_LOOP']):
+ src += ['arduino_main.cpp']
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
diff --git a/bsp/raspberry-pico/applications/arduino_main.cpp b/bsp/raspberry-pico/applications/arduino_main.cpp
new file mode 100644
index 0000000000..d04447ae44
--- /dev/null
+++ b/bsp/raspberry-pico/applications/arduino_main.cpp
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2006-2023, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2023-11-27 ShichengChu first version
+ */
+
+#include <Arduino.h>
+
+void setup(void)
+{
+ /* put your setup code here, to run once: */
+ Serial.begin();
+}
+
+void loop(void)
+{
+ /* put your main code here, to run repeatedly: */
+ Serial.println("Hello Arduino!");
+ delay(800);
+}
diff --git a/bsp/raspberry-pico/applications/arduino_pinout/README.md b/bsp/raspberry-pico/applications/arduino_pinout/README.md
new file mode 100644
index 0000000000..60e936910d
--- /dev/null
+++ b/bsp/raspberry-pico/applications/arduino_pinout/README.md
@@ -0,0 +1,54 @@
+# xxx 开发板的Arduino生态兼容说明
+
+## 1 RTduino - RT-Thread的Arduino生态兼容层
+
+xxx 开发板已经完整适配了[RTduino软件包](https://github.com/RTduino/RTduino),即RT-Thread的Arduino生态兼容层。用户可以按照Arduino的编程习惯来操作该BSP,并且可以使用大量Arduino社区丰富的库,是对RT-Thread生态的极大增强。更多信息,请参见[RTduino软件包说明文档](https://github.com/RTduino/RTduino)。
+
+### 1.1 如何开启针对本BSP的Arduino生态兼容层
+
+Env 工具下敲入 menuconfig 命令,或者 RT-Thread Studio IDE 下选择 RT-Thread Settings:
+
+```Kconfig
+Hardware Drivers Config --->
+ Onboard Peripheral Drivers --->
+ [*] Compatible with Arduino Ecosystem (RTduino)
+```
+
+## 2 Arduino引脚排布
+
+更多引脚布局相关信息参见 [pins_arduino.c](pins_arduino.c) 和 [pins_arduino.h](pins_arduino.h)。
+
+![xxx-pinout](xxx-pinout.jpg)
+| Arduino引脚编号 | STM32引脚编号 | 5V容忍 | 备注 |
+| ------------------- | --------- | ---- | ------------------------------------------------------------------------- |
+| 0 (D0) | P | 是/否 | Serial-TX,默认被RT-Thread的UART设备框架uart1接管 |
+| 1 (D1) | P | 是/否 | Serial-RX,默认被RT-Thread的UART设备框架uart1接管 |
+| 2 (D2) | P | 是/否 | |
+| 3 (D3) | P | 是/否 | |
+| 4 (D4) | P | 是/否 | |
+| 5 (D5) | P | 是/否 | |
+| 6 (D6) | P | 是/否 | |
+| 7 (D7) | P | 是/否 | |
+| 8 (D8) | P | 是/否 | Serial2-TX,默认被RT-Thread的UART设备框架uart2接管 |
+| 9 (D9) | P | 是/否 | Serial2-RX,默认被RT-Thread的UART设备框架uart2接管 |
+| 10 (D10) | P | 是/否 | |
+| 11 (D11) | P | 是/否 | |
+| 12 (D12) | P | 是/否 | |
+| 13 (D13) | P | 是/否 | |
+| 14 (D14) | P | 是/否 | |
+| 15 (D15) | P | 是/否 | |
+| 16 (D16) | P | 是/否 | |
+| 17 (D17) | P | 是/否 | |
+| 18 (D18) | P | 是/否 | |
+| 19 (D19) | P | 是/否 | |
+| 20 (D20) | P | 是/否 | |
+| 21 (D21) | P | 是/否 | |
+| 22 (D22) | P | 是/否 | |
+| 23 (D23) | P | 是/否 | 板载用户LED |
+| 24 (D24) | P | 是/否 | |
+| 25 (D25) | P | 是/否 | |
+
+> 注意:
+>
+> 1. xxxxxxxxx
+> 2. xxxxxxxxx
diff --git a/bsp/raspberry-pico/applications/arduino_pinout/SConscript b/bsp/raspberry-pico/applications/arduino_pinout/SConscript
new file mode 100644
index 0000000000..2539929027
--- /dev/null
+++ b/bsp/raspberry-pico/applications/arduino_pinout/SConscript
@@ -0,0 +1,9 @@
+from building import *
+
+cwd = GetCurrentDir()
+src = Glob('*.c') + Glob('*.cpp')
+inc = [cwd]
+
+group = DefineGroup('RTduino', src, depend = ['PKG_USING_RTDUINO'], CPPPATH = inc)
+
+Return('group')
diff --git a/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.c b/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.c
new file mode 100644
index 0000000000..2bd98a1340
--- /dev/null
+++ b/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.c
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2006-2023, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2023-11-27 ShichengChu first version
+ */
+
+#include <Arduino.h>
+#include <board.h>
+#include "pins_arduino.h"
+
+/*
+ * {Arduino Pin, RT-Thread Pin [, Device Name, Channel]}
+ * [] means optional
+ * Digital pins must NOT give the device name and channel.
+ * Analog pins MUST give the device name and channel(ADC, PWM or DAC).
+ * Arduino Pin must keep in sequence.
+ */
+const pin_map_t pin_map_table[]=
+{
+ {D0, 0, "uart1"}, /* Serial-TX */
+ {D1, 1, "uart1"}, /* Serial-RX */
+ {D2, 2},
+ {D3, 3},
+ {D4, 4},
+ {D5, 5},
+ {D6, 6},
+ {D7, 7},
+ {D8, 8, "uart2"}, /* Serial2-TX */
+ {D9, 9, "uart2"}, /* Serial2-RX */
+ {D10, 10},
+ {D11, 11},
+ {D12, 12},
+ {D13, 13},
+ {D14, 14},
+ {D15, 15},
+ {D16, 16},
+ {D17, 17},
+ {D18, 18},
+ {D19, 19},
+ {D20, 20},
+ {D21, 21},
+ {D22, 22},
+ {D23, 25}, /* LED_BUILTIN */
+ {D24, 26},
+ {D25, 27},
+};
diff --git a/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.h b/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.h
new file mode 100644
index 0000000000..6d412fb493
--- /dev/null
+++ b/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2006-2023, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2023-11-27 ShichengChu first version
+ */
+
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+/* pins alias. Must keep in sequence */
+#define D0 (0)
+#define D1 (1)
+#define D2 (2)
+#define D3 (3)
+#define D4 (4)
+#define D5 (5)
+#define D6 (6)
+#define D7 (7)
+#define D8 (8)
+#define D9 (9)
+#define D10 (10)
+#define D11 (11)
+#define D12 (12)
+#define D13 (13)
+#define D14 (14)
+#define D15 (15)
+#define D16 (16)
+#define D17 (17)
+#define D18 (18)
+#define D19 (19)
+#define D20 (20)
+#define D21 (21)
+#define D22 (22)
+#define D23 (23)
+#define D24 (24)
+#define D25 (25)
+
+#define F_CPU 133000000L /* CPU:133MHz */
+
+#define LED_BUILTIN D23 /* Default Built-in LED */
+
+/* Serial2 : P-TX P-RX */
+#define RTDUINO_SERIAL2_DEVICE_NAME "uart2"
+
+#endif /* Pins_Arduino_h */