update g070cb

This commit is contained in:
pikastech 2021-12-11 21:53:33 +08:00
parent fad2c4a6ef
commit 3083034481
7 changed files with 345 additions and 4 deletions

View File

@ -338,7 +338,7 @@
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define>USE_HAL_DRIVER,STM32G070xx</Define>
<Define>USE_FULL_LL_DRIVER, USE_HAL_DRIVER,STM32G070xx</Define>
<Undefine></Undefine>
<IncludePath>..\pikascript\pikascript-lib\STM32G070CBBooter;../Drivers/STM32G0xx_HAL_Driver/Inc;../Drivers/STM32G0xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32G0xx/Include;../Drivers/CMSIS/Include;..\pikascript\pikascript-api;..\pikascript\pikascript-core;..\pikascript\pikascript-lib\STM32</IncludePath>
</VariousControls>
@ -414,6 +414,11 @@
<FileType>2</FileType>
<FilePath>..\pikascript\pikascript-lib\STM32G070CBBooter\startup_stm32g070xx.s</FilePath>
</File>
<File>
<FileName>pika_config.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\STM32G070CBBooter\pika_config.c</FilePath>
</File>
</Files>
</Group>
<Group>
@ -519,6 +524,31 @@
<FileType>1</FileType>
<FilePath>..\Drivers\STM32G0xx_HAL_Driver\Src\stm32g0xx_hal_uart_ex.c</FilePath>
</File>
<File>
<FileName>stm32g0xx_ll_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>..\Drivers\STM32G0xx_HAL_Driver\Src\stm32g0xx_ll_gpio.c</FilePath>
</File>
<File>
<FileName>stm32g0xx_ll_usart.c</FileName>
<FileType>1</FileType>
<FilePath>..\Drivers\STM32G0xx_HAL_Driver\Src\stm32g0xx_ll_usart.c</FilePath>
</File>
<File>
<FileName>stm32g0xx_ll_rcc.c</FileName>
<FileType>1</FileType>
<FilePath>..\Drivers\STM32G0xx_HAL_Driver\Src\stm32g0xx_ll_rcc.c</FilePath>
</File>
<File>
<FileName>stm32g0xx_ll_adc.c</FileName>
<FileType>1</FileType>
<FilePath>..\Drivers\STM32G0xx_HAL_Driver\Src\stm32g0xx_ll_adc.c</FilePath>
</File>
<File>
<FileName>stm32g0xx_ll_tim.c</FileName>
<FileType>1</FileType>
<FilePath>..\Drivers\STM32G0xx_HAL_Driver\Src\stm32g0xx_ll_tim.c</FilePath>
</File>
</Files>
</Group>
<Group>
@ -639,6 +669,76 @@
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\PikaStdLib-api.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_ADC-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\PikaStdDevice_ADC-api.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_GPIO-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\PikaStdDevice_GPIO-api.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_IIC-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\PikaStdDevice_IIC-api.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_PWM-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\PikaStdDevice_PWM-api.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_Time-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\PikaStdDevice_Time-api.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_UART-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\PikaStdDevice_UART-api.c</FilePath>
</File>
<File>
<FileName>STM32G0_ADC-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\STM32G0_ADC-api.c</FilePath>
</File>
<File>
<FileName>STM32G0_GPIO-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\STM32G0_GPIO-api.c</FilePath>
</File>
<File>
<FileName>STM32G0_IIC-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\STM32G0_IIC-api.c</FilePath>
</File>
<File>
<FileName>STM32G0_lowLevel-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\STM32G0_lowLevel-api.c</FilePath>
</File>
<File>
<FileName>STM32G0_PWM-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\STM32G0_PWM-api.c</FilePath>
</File>
<File>
<FileName>STM32G0_Time-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\STM32G0_Time-api.c</FilePath>
</File>
<File>
<FileName>STM32G0_UART-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\STM32G0_UART-api.c</FilePath>
</File>
<File>
<FileName>STM32G0-api.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-api\STM32G0-api.c</FilePath>
</File>
</Files>
</Group>
<Group>
@ -659,6 +759,71 @@
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\PikaStdLib\PikaStdLib_SysObj.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_ADC.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\PikaStdDevice\PikaStdDevice_ADC.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_GPIO.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\PikaStdDevice\PikaStdDevice_GPIO.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_IIC.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\PikaStdDevice\PikaStdDevice_IIC.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_PWM.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\PikaStdDevice\PikaStdDevice_PWM.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_Time.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\PikaStdDevice\PikaStdDevice_Time.c</FilePath>
</File>
<File>
<FileName>PikaStdDevice_UART.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\PikaStdDevice\PikaStdDevice_UART.c</FilePath>
</File>
<File>
<FileName>STM32G0_ADC.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\STM32G0\STM32G0_ADC.c</FilePath>
</File>
<File>
<FileName>STM32G0_common.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\STM32G0\STM32G0_common.c</FilePath>
</File>
<File>
<FileName>STM32G0_GPIO.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\STM32G0\STM32G0_GPIO.c</FilePath>
</File>
<File>
<FileName>STM32G0_IIC.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\STM32G0\STM32G0_IIC.c</FilePath>
</File>
<File>
<FileName>STM32G0_PWM.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\STM32G0\STM32G0_PWM.c</FilePath>
</File>
<File>
<FileName>STM32G0_Time.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\STM32G0\STM32G0_Time.c</FilePath>
</File>
<File>
<FileName>STM32G0_UART.c</FileName>
<FileType>1</FileType>
<FilePath>..\pikascript\pikascript-lib\STM32G0\STM32G0_UART.c</FilePath>
</File>
</Files>
</Group>
<Group>

View File

@ -1,4 +1,5 @@
import PikaStdLib
import STM32G0
print('hello pikascript')
print('mem used max:')

View File

@ -1,3 +1,5 @@
pikascript-core==v1.2.8
PikaStdLib==v1.2.4
STM32G070CBBooter==v1.0.0
STM32G070CBBooter==v1.0.0
STM32G0==v1.0.3
PikaStdDevice==v1.4.3

View File

@ -71,7 +71,7 @@ int main(void)
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
HARDWARE_PRINTF_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */

View File

@ -29,7 +29,18 @@ extern "C" {
/* Includes ------------------------------------------------------------------*/
#include "stm32g0xx_hal.h"
#include "stm32g0xx_ll_bus.h"
#include "stm32g0xx_ll_cortex.h"
#include "stm32g0xx_ll_dma.h"
#include "stm32g0xx_ll_exti.h"
#include "stm32g0xx_ll_gpio.h"
#include "stm32g0xx_ll_pwr.h"
#include "stm32g0xx_ll_rcc.h"
#include "stm32g0xx_ll_system.h"
#include "stm32g0xx_ll_tim.h"
#include "stm32g0xx_ll_usart.h"
#include "stm32g0xx_ll_utils.h"
#include "pika_config.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */

View File

@ -0,0 +1,98 @@
#include "pika_config.h"
#include "main.h"
#include <stdio.h>
/* support interrupt */
void __platform_disable_irq_handle(){
__disable_irq();
}
void __platform_enable_irq_handle(){
__enable_irq();
}
/* support printf */
void HARDWARE_PRINTF_Init(void) {
LL_USART_InitTypeDef USART_InitStruct = {0};
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
/* Peripheral clock enable */
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1);
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
/**USART1 GPIO Configuration
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/
GPIO_InitStruct.Pin = LL_GPIO_PIN_9;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_1;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_10;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_1;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USART1 interrupt Init */
NVIC_SetPriority(USART1_IRQn, 0);
NVIC_EnableIRQ(USART1_IRQn);
USART_InitStruct.PrescalerValue = LL_USART_PRESCALER_DIV1;
USART_InitStruct.BaudRate = 115200;
USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
USART_InitStruct.StopBits = LL_USART_STOPBITS_1;
USART_InitStruct.Parity = LL_USART_PARITY_NONE;
USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX;
USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE;
USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16;
LL_USART_Init(USART1, &USART_InitStruct);
LL_USART_SetTXFIFOThreshold(USART1, LL_USART_FIFOTHRESHOLD_1_8);
LL_USART_SetRXFIFOThreshold(USART1, LL_USART_FIFOTHRESHOLD_1_8);
LL_USART_DisableFIFO(USART1);
LL_USART_ConfigAsyncMode(USART1);
LL_USART_Enable(USART1);
/* Polling USART1 initialisation */
while ((!(LL_USART_IsActiveFlag_TEACK(USART1))) ||
(!(LL_USART_IsActiveFlag_REACK(USART1)))) {
}
/* open interrupt */
LL_USART_EnableIT_RXNE(USART1);
LL_USART_EnableIT_PE(USART1);
}
int fputc(int ch, FILE* f) {
LL_USART_TransmitData8(USART1, ch);
while (LL_USART_IsActiveFlag_TC(USART1) != 1)
;
return ch;
}
/* support delay_us */
void delay_us(uint32_t udelay) {
uint32_t startval, tickn, delays, wait;
startval = SysTick->VAL;
tickn = HAL_GetTick();
delays = udelay * 64; // delay 1us when delays = 64
if (delays > startval) {
while (HAL_GetTick() == tickn) {
}
wait = 64000 + startval - delays;
while (wait < SysTick->VAL) {
}
} else {
wait = startval - delays;
while (wait < SysTick->VAL && HAL_GetTick() == tickn) {
}
}
}

View File

@ -0,0 +1,64 @@
#ifndef __STM32G030_PIKA_PORT__H
#define __STM32G030_PIKA_PORT__H
#define use_mem_pool 1
#include <stdint.h>
#include "pikaObj.h"
typedef struct _CodeHeap {
char* content;
uint32_t size;
uint8_t ena;
uint32_t reciveTime;
uint32_t oldSize;
} CodeHeap;
/* support std lib for stm32 */
#define delay_ms HAL_Delay
#undef u16
#undef u8
#undef u32
#define u16 uint16_t
#define u8 uint8_t
#define u32 uint32_t
#define GPIO_Pin_0 GPIO_PIN_0
#define GPIO_Pin_1 GPIO_PIN_1
#define GPIO_Pin_2 GPIO_PIN_2
#define GPIO_Pin_3 GPIO_PIN_3
#define GPIO_Pin_4 GPIO_PIN_4
#define GPIO_Pin_5 GPIO_PIN_5
#define GPIO_Pin_6 GPIO_PIN_6
#define GPIO_Pin_7 GPIO_PIN_7
#define GPIO_Pin_8 GPIO_PIN_8
#define GPIO_Pin_9 GPIO_PIN_9
#define GPIO_Pin_10 GPIO_PIN_10
#define GPIO_Pin_11 GPIO_PIN_11
#define GPIO_Pin_12 GPIO_PIN_12
#define GPIO_Pin_13 GPIO_PIN_13
#define GPIO_Pin_14 GPIO_PIN_14
#define GPIO_Pin_15 GPIO_PIN_15
/* support pinrtf */
void HARDWARE_PRINTF_Init(void);
/* support write asm to flash */
#define FLASH_SCRIPT_START_ADDR \
(FLASH_BASE + ((FLASH_PAGE_NB - 2) * FLASH_PAGE_SIZE))
#define FLASH_SCRIPT_END_ADDR (FLASH_BASE + FLASH_SIZE - 1)
#define FLASH_PIKA_ASM_START_ADDR FLASH_SCRIPT_START_ADDR
#define FLASH_PIKA_ASM_END_ADDR FLASH_SCRIPT_END_ADDR
#define RX_BUFF_LENGTH 64
/* support download python script by uart1 */
uint8_t STM32_Code_reciveHandler(char* data, uint32_t rxSize);
void STM32_Code_Init(void);
void STM32_Code_flashHandler(void);
/* handler for usart1 */
void __PIKA_USART1_IRQHandler(char rx_char);
#endif
/* delay_us */
void delay_us(uint32_t udelay);