未验证 提交 132dba2e 编写于 作者: Dozingfiretruck's avatar Dozingfiretruck 提交者: GitHub

[bsp/airm2m] update:update AIR32F10xLib (#7472)

上级 50a4e8c6
......@@ -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 */
......
此差异已折叠。
......@@ -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>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册