mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-02-06 09:02:20 +08:00
[bsp/airm2m] update:update AIR32F10xLib (#7472)
This commit is contained in:
@@ -58,7 +58,6 @@ CONFIG_RT_USING_MESSAGEQUEUE=y
|
||||
#
|
||||
# Memory Management
|
||||
#
|
||||
CONFIG_RT_PAGE_MAX_ORDER=11
|
||||
CONFIG_RT_USING_MEMPOOL=y
|
||||
CONFIG_RT_USING_SMALL_MEM=y
|
||||
# CONFIG_RT_USING_SLAB is not set
|
||||
@@ -82,7 +81,7 @@ CONFIG_RT_USING_DEVICE=y
|
||||
CONFIG_RT_USING_CONSOLE=y
|
||||
CONFIG_RT_CONSOLEBUF_SIZE=256
|
||||
CONFIG_RT_CONSOLE_DEVICE_NAME="uart1"
|
||||
CONFIG_RT_VER_NUM=0x50000
|
||||
CONFIG_RT_VER_NUM=0x50001
|
||||
# CONFIG_RT_USING_STDC_ATOMIC is not set
|
||||
# CONFIG_RT_USING_CACHE is not set
|
||||
CONFIG_RT_USING_HW_ATOMIC=y
|
||||
@@ -116,6 +115,10 @@ CONFIG_FINSH_USING_DESCRIPTION=y
|
||||
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
|
||||
# CONFIG_FINSH_USING_AUTH is not set
|
||||
CONFIG_FINSH_ARG_MAX=10
|
||||
|
||||
#
|
||||
# DFS: device virtual file system
|
||||
#
|
||||
# CONFIG_RT_USING_DFS is not set
|
||||
# CONFIG_RT_USING_FAL is not set
|
||||
|
||||
@@ -439,6 +442,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
|
||||
# CONFIG_PKG_USING_HASH_MATCH is not set
|
||||
# CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
|
||||
# CONFIG_PKG_USING_VOFA_PLUS is not set
|
||||
# CONFIG_PKG_USING_RT_TRACE is not set
|
||||
|
||||
#
|
||||
# system packages
|
||||
@@ -510,6 +514,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
|
||||
# CONFIG_PKG_USING_QPC is not set
|
||||
# CONFIG_PKG_USING_AGILE_UPGRADE is not set
|
||||
# CONFIG_PKG_USING_FLASH_BLOB is not set
|
||||
# CONFIG_PKG_USING_MLIBC is not set
|
||||
|
||||
#
|
||||
# peripheral libraries and drivers
|
||||
@@ -664,13 +669,13 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
|
||||
# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
|
||||
# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
|
||||
# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
|
||||
# CONFIG_PKG_USING_BL_MCU_SDK is not set
|
||||
# CONFIG_PKG_USING_SOFT_SERIAL is not set
|
||||
# CONFIG_PKG_USING_MB85RS16 is not set
|
||||
# CONFIG_PKG_USING_RFM300 is not set
|
||||
# CONFIG_PKG_USING_IO_INPUT_FILTER is not set
|
||||
# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
|
||||
# CONFIG_PKG_USING_LRF_NV7LIDAR is not set
|
||||
# CONFIG_PKG_USING_AIP650 is not set
|
||||
# CONFIG_PKG_USING_FINGERPRINT is not set
|
||||
|
||||
#
|
||||
|
||||
@@ -22,7 +22,7 @@ Air32F103为系列芯片,首发型号为Air32F103CBT6,其外设和硬件设
|
||||
|
||||
该开发板常用 **板载资源** 如下:
|
||||
|
||||
- MCU:Air32F103CBT6,主频 216MHz,128K FLASH ,32K RAM
|
||||
- MCU:Air32F103CBT6,主频 216MHz,128K FLASH ,96K RAM
|
||||
- 调试下载接口,UART0 To Type-c USB 接口
|
||||
|
||||
开发板更多详细信息请参考 [合宙Air32F103开发板 - LuatOS 文档](https://wiki.luatos.com/chips/air32f103/board.html)。
|
||||
|
||||
@@ -24,8 +24,8 @@ extern "C" {
|
||||
#define AIR32_FLASH_SIZE (128 * 1024)
|
||||
#define AIR32_FLASH_END_ADDRESS ((uint32_t)(AIR32_FLASH_START_ADRESS + AIR32_FLASH_SIZE))
|
||||
|
||||
/* Internal SRAM memory size[Kbytes] , Default: 32*/
|
||||
#define AIR32_SRAM_SIZE 32
|
||||
/* Internal SRAM memory size[Kbytes] , Default: 96*/
|
||||
#define AIR32_SRAM_SIZE 96
|
||||
#define AIR32_SRAM_END (0x20000000 + AIR32_SRAM_SIZE * 1024)
|
||||
|
||||
#if defined(__ARMCC_VERSION)
|
||||
|
||||
@@ -581,7 +581,7 @@ FLASH_Status FLASH_EraseAllBank2Pages(void)
|
||||
#if defined(__CC_ARM)
|
||||
__ASM void SetStrt(void)
|
||||
{
|
||||
LDR R0, [PC,#0]
|
||||
MOV R0, PC
|
||||
LDR R1, [R0,#16]
|
||||
LDR R1, [R0,#32]
|
||||
LDR R0, =0x40022010
|
||||
@@ -624,6 +624,29 @@ void SetStrt(void)
|
||||
"BNE FLAGLABLE\n"
|
||||
"BX lr");
|
||||
}
|
||||
#elif defined(__clang__)
|
||||
__STATIC_INLINE void SetStrt(void)
|
||||
{
|
||||
__ASM("MOV R0, PC");
|
||||
__ASM("LDR R1, [R0,#16]");
|
||||
__ASM("LDR R1, [R0,#32]");
|
||||
__ASM("LDR R0, =0x40022010");
|
||||
__ASM("LDR R1, =0x60");
|
||||
__ASM("STR R1,[R0]");
|
||||
__ASM("NOP");
|
||||
__ASM("NOP");
|
||||
__ASM("NOP");
|
||||
__ASM("NOP");
|
||||
__ASM("NOP");
|
||||
__ASM("NOP");
|
||||
__ASM("FLAGLABLE:");
|
||||
__ASM("LDR R1, =0x4002200C");
|
||||
__ASM("LDR R2, [R1]");
|
||||
__ASM("AND R2, #0x01");
|
||||
__ASM("CMP R2, #0x00");
|
||||
__ASM("BNE FLAGLABLE");
|
||||
__ASM("BX lr");
|
||||
}
|
||||
#elif defined(__GNUC__)
|
||||
void SetStrt(void)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include "air32f10x.h"
|
||||
#include "air32f10x_rcc_ex.h"
|
||||
|
||||
/* ------------ RCC registers bit address in the alias region ----------- */
|
||||
#define RCC_OFFSET (RCC_BASE - PERIPH_BASE)
|
||||
@@ -158,7 +159,6 @@ static __I uint8_t ADCPrescTable[4] = {2, 4, 6, 8};
|
||||
|
||||
uint32_t AIR_RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul, FlashClkDiv Latency)
|
||||
{
|
||||
volatile uint32_t sramsize = 0;
|
||||
// uint32_t pllmul = 0;
|
||||
// FunctionalState pwr_gating_state = 0;
|
||||
/* Check the parameters */
|
||||
@@ -169,15 +169,12 @@ uint32_t AIR_RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul, FlashClk
|
||||
*(volatile uint32_t *)(0x40016C00) = 0xa7d93a86;//解一、二、三级锁
|
||||
*(volatile uint32_t *)(0x40016C00) = 0xab12dfcd;
|
||||
*(volatile uint32_t *)(0x40016C00) = 0xcded3526;
|
||||
sramsize = *(volatile uint32_t *)(0x40016C18);
|
||||
*(volatile uint32_t *)(0x40016C18) = 0x200183FF;//配置sram大小, 将BOOT使用对sram打开
|
||||
*(volatile uint32_t *)(0x4002228C) = 0xa5a5a5a5;//QSPI解锁
|
||||
|
||||
SysFreq_Set(RCC_PLLMul,Latency ,0,1);
|
||||
RCC->CFGR = (RCC->CFGR & ~0x00030000) | RCC_PLLSource;
|
||||
|
||||
//恢复配置前状态
|
||||
// *(volatile uint32_t *)(0x40016C18) = sramsize;
|
||||
*(volatile uint32_t *)(0x400210F0) = 0;//开启sys_cfg门控
|
||||
*(volatile uint32_t *)(0x40016C00) = ~0xa7d93a86;//加一、二、三级锁
|
||||
*(volatile uint32_t *)(0x40016C00) = ~0xab12dfcd;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
|
||||
; </h>
|
||||
|
||||
Stack_Size EQU 0x00001000
|
||||
Stack_Size EQU 0x00000400
|
||||
|
||||
AREA STACK, NOINIT, READWRITE, ALIGN=3
|
||||
Stack_Mem SPACE Stack_Size
|
||||
@@ -23,7 +23,7 @@ __initial_sp
|
||||
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
|
||||
; </h>
|
||||
|
||||
Heap_Size EQU 0x00001000
|
||||
Heap_Size EQU 0x00000000
|
||||
|
||||
AREA HEAP, NOINIT, READWRITE, ALIGN=3
|
||||
__heap_base
|
||||
@@ -202,6 +202,22 @@ BOOT_RAM PROC
|
||||
; Reset handler
|
||||
Reset_Handler PROC
|
||||
EXPORT Reset_Handler [WEAK]
|
||||
LDR R0,=0x400210F0
|
||||
MOV R1,#0x00000001
|
||||
STR R1,[R0]
|
||||
LDR R2,=0x40016C00
|
||||
LDR R3,=0xa7d93a86
|
||||
STR R3,[R2]
|
||||
LDR R3,=0xab12dfcd
|
||||
STR R3,[R2]
|
||||
LDR R3,=0xcded3526
|
||||
STR R3,[R2]
|
||||
LDR R3,=0x200183FF
|
||||
STR R3,[R2,#0x18]
|
||||
LDR R4,=0x4002228c
|
||||
LDR R5,=0xa5a5a5a5
|
||||
STR R5,[R4]
|
||||
MOV R1,#0x00000000
|
||||
IMPORT __main
|
||||
IMPORT SystemInit
|
||||
LDR R0, =SystemInit
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
** File : AIR32F103XB_FLASH.ld
|
||||
**
|
||||
** Abstract : Linker script for AIR32F103xB Device with
|
||||
** 128KByte FLASH, 20KByte RAM
|
||||
** 128KByte FLASH, 96KByte RAM
|
||||
**
|
||||
** Set heap size, stack size and stack location according
|
||||
** to application requirements.
|
||||
**
|
||||
** Set memory bank area and size if external memory is used.
|
||||
**
|
||||
** Target : STMicroelectronics AIR32
|
||||
** Target : AIR32
|
||||
**
|
||||
**
|
||||
** Distribution: The file is distributed as is, without any warranty
|
||||
@@ -42,7 +42,7 @@ _Min_Stack_Size = 0x400; /* required amount of stack */
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128K
|
||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
|
||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 96K
|
||||
}
|
||||
|
||||
/* Define output sections */
|
||||
|
||||
@@ -66,6 +66,23 @@ LoopFillZerobss:
|
||||
cmp r2, r4
|
||||
bcc FillZerobss
|
||||
|
||||
ldr r0,=0x400210F0
|
||||
mov r1,#0x00000001
|
||||
str r1,[r0]
|
||||
ldr r2,=0x40016C00
|
||||
ldr r3,=0xa7d93a86
|
||||
str r3,[r2]
|
||||
ldr r3,=0xab12dfcd
|
||||
str r3,[r2]
|
||||
ldr r3,=0xcded3526
|
||||
str r3,[r2]
|
||||
ldr r3,=0x200183FF
|
||||
str r3,[r2,#0x18]
|
||||
ldr r4,=0x4002228c
|
||||
ldr r5,=0xa5a5a5a5
|
||||
str r5,[r4]
|
||||
mov r1,#0x00000000
|
||||
|
||||
/* Call the clock system intitialization function.*/
|
||||
bl SystemInit
|
||||
/* Call static constructors */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -33,7 +33,6 @@
|
||||
|
||||
/* Memory Management */
|
||||
|
||||
#define RT_PAGE_MAX_ORDER 11
|
||||
#define RT_USING_MEMPOOL
|
||||
#define RT_USING_SMALL_MEM
|
||||
#define RT_USING_SMALL_MEM_AS_HEAP
|
||||
@@ -45,7 +44,7 @@
|
||||
#define RT_USING_CONSOLE
|
||||
#define RT_CONSOLEBUF_SIZE 256
|
||||
#define RT_CONSOLE_DEVICE_NAME "uart1"
|
||||
#define RT_VER_NUM 0x50000
|
||||
#define RT_VER_NUM 0x50001
|
||||
#define RT_USING_HW_ATOMIC
|
||||
#define RT_USING_CPU_FFS
|
||||
#define ARCH_ARM
|
||||
@@ -72,6 +71,9 @@
|
||||
#define FINSH_USING_DESCRIPTION
|
||||
#define FINSH_ARG_MAX 10
|
||||
|
||||
/* DFS: device virtual file system */
|
||||
|
||||
|
||||
/* Device Drivers */
|
||||
|
||||
#define RT_USING_DEVICE_IPC
|
||||
|
||||
@@ -11,12 +11,12 @@
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
|
||||
<uAC6>0</uAC6>
|
||||
<uAC6>1</uAC6>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>AIR32F103CB</Device>
|
||||
<Vendor>Generic</Vendor>
|
||||
<PackID>Keil.AIR32F103_DFP.1.1.0</PackID>
|
||||
<PackID>Keil.AIR32F103_DFP.1.1.5</PackID>
|
||||
<PackURL>https://luatos.com/t/air32f103/</PackURL>
|
||||
<Cpu>IRAM(0x20000000,0x8000) IROM(0x08000000,0x20000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
@@ -247,7 +247,7 @@
|
||||
<IRAM>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x20000000</StartAddress>
|
||||
<Size>0x8000</Size>
|
||||
<Size>0x18000</Size>
|
||||
</IRAM>
|
||||
<IROM>
|
||||
<Type>1</Type>
|
||||
@@ -302,7 +302,7 @@
|
||||
<OCR_RVCT9>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x20000000</StartAddress>
|
||||
<Size>0x8000</Size>
|
||||
<Size>0x18000</Size>
|
||||
</OCR_RVCT9>
|
||||
<OCR_RVCT10>
|
||||
<Type>0</Type>
|
||||
@@ -314,7 +314,7 @@
|
||||
</ArmAdsMisc>
|
||||
<Cads>
|
||||
<interw>1</interw>
|
||||
<Optim>1</Optim>
|
||||
<Optim>2</Optim>
|
||||
<oTime>0</oTime>
|
||||
<SplitLS>0</SplitLS>
|
||||
<OneElfS>1</OneElfS>
|
||||
@@ -323,16 +323,16 @@
|
||||
<PlainCh>0</PlainCh>
|
||||
<Ropi>0</Ropi>
|
||||
<Rwpi>0</Rwpi>
|
||||
<wLevel>2</wLevel>
|
||||
<wLevel>3</wLevel>
|
||||
<uThumb>0</uThumb>
|
||||
<uSurpInc>0</uSurpInc>
|
||||
<uC99>1</uC99>
|
||||
<uGnu>0</uGnu>
|
||||
<useXO>0</useXO>
|
||||
<v6Lang>1</v6Lang>
|
||||
<v6LangP>1</v6LangP>
|
||||
<vShortEn>1</vShortEn>
|
||||
<vShortWch>1</vShortWch>
|
||||
<v6Lang>6</v6Lang>
|
||||
<v6LangP>4</v6LangP>
|
||||
<vShortEn>0</vShortEn>
|
||||
<vShortWch>0</vShortWch>
|
||||
<v6Lto>0</v6Lto>
|
||||
<v6WtE>0</v6WtE>
|
||||
<v6Rtti>0</v6Rtti>
|
||||
|
||||
Reference in New Issue
Block a user