Browse Source

init

master
zhaohe 2 years ago
parent
commit
ec0fbbfb52
  1. 19
      chip/chip.c
  2. 124
      chip/chip.h
  3. 33
      chip/delay.c
  4. 16
      chip/delay.h
  5. 6
      chip/iflytop_no_os.c
  6. 38
      chip/iflytop_no_os.h
  7. 33
      chip/log.c
  8. 54
      chip/log.h
  9. 45
      chip/marco.h
  10. 0
      components/log/log.c
  11. 0
      components/log/log.h

19
chip/chip.c

@ -0,0 +1,19 @@
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
uint8_t g_port_exit_critical_count;
void sys_critical_enter(void) {
if (g_port_exit_critical_count == 0) {
__disable_irq();
}
g_port_exit_critical_count++;
}
void sys_critical_exit(void) {
g_port_exit_critical_count--;
if (g_port_exit_critical_count == 0) {
__enable_irq();
}
}

124
chip/chip.h

@ -0,0 +1,124 @@
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <stdbool.h>
#include <stdint.h>
#include "main.h"
#ifdef HAL_CRYP_MODULE_ENABLED
#endif
#ifdef HAL_ADC_MODULE_ENABLED
#endif
#ifdef HAL_CAN_MODULE_ENABLED
#include "can.h"
#endif
#ifdef HAL_CRC_MODULE_ENABLED
#include "crc.h"
#endif
#ifdef HAL_CAN_LEGACY_MODULE_ENABLED
#endif
#ifdef HAL_DAC_MODULE_ENABLED
#endif
#ifdef HAL_DCMI_MODULE_ENABLED
#endif
#ifdef HAL_DMA2D_MODULE_ENABLED
#endif
#ifdef HAL_ETH_MODULE_ENABLED
#endif
#ifdef HAL_NAND_MODULE_ENABLED
#endif
#ifdef HAL_NOR_MODULE_ENABLED
#endif
#ifdef HAL_PCCARD_MODULE_ENABLED
#endif
#ifdef HAL_SRAM_MODULE_ENABLED
#endif
#ifdef HAL_SDRAM_MODULE_ENABLED
#endif
#ifdef HAL_HASH_MODULE_ENABLED
#endif
#ifdef HAL_I2C_MODULE_ENABLED
#endif
#ifdef HAL_I2S_MODULE_ENABLED
#endif
#ifdef HAL_IWDG_MODULE_ENABLED
#endif
#ifdef HAL_LTDC_MODULE_ENABLED
#endif
#ifdef HAL_RNG_MODULE_ENABLED
#endif
#ifdef HAL_RTC_MODULE_ENABLED
#endif
#ifdef HAL_SAI_MODULE_ENABLED
#endif
#ifdef HAL_SD_MODULE_ENABLED
#endif
#ifdef HAL_MMC_MODULE_ENABLED
#endif
#ifdef HAL_SPI_MODULE_ENABLED
#include "spi.h"
#endif
#ifdef HAL_TIM_MODULE_ENABLED
#include "tim.h"
#endif
#ifdef HAL_UART_MODULE_ENABLED
#include "usart.h"
#endif
#ifdef HAL_USART_MODULE_ENABLED
#include "usart.h"
#endif
#ifdef HAL_IRDA_MODULE_ENABLED
#endif
#ifdef HAL_SMARTCARD_MODULE_ENABLED
#endif
#ifdef HAL_SMBUS_MODULE_ENABLED
#endif
#ifdef HAL_WWDG_MODULE_ENABLED
#endif
#ifdef HAL_PCD_MODULE_ENABLED
#endif
#ifdef HAL_HCD_MODULE_ENABLED
#endif
#ifdef HAL_DSI_MODULE_ENABLED
#endif
#ifdef HAL_QSPI_MODULE_ENABLED
#endif
#ifdef HAL_QSPI_MODULE_ENABLED
#endif
#ifdef HAL_CEC_MODULE_ENABLED
#endif
#ifdef HAL_FMPI2C_MODULE_ENABLED
#endif
#ifdef HAL_FMPSMBUS_MODULE_ENABLED
#endif
#ifdef HAL_SPDIFRX_MODULE_ENABLED
#endif
#ifdef HAL_DFSDM_MODULE_ENABLED
#endif
#ifdef HAL_LPTIM_MODULE_ENABLED
#endif
#ifdef HAL_GPIO_MODULE_ENABLED
#include "gpio.h"
#endif
#ifdef HAL_EXTI_MODULE_ENABLED
#endif
#ifdef HAL_DMA_MODULE_ENABLED
#endif
#ifdef HAL_RCC_MODULE_ENABLED
#endif
#ifdef HAL_FLASH_MODULE_ENABLED
#endif
#ifdef HAL_PWR_MODULE_ENABLED
#endif
#ifdef HAL_CORTEX_MODULE_ENABLED
#endif
void chip_critical_enter(void);
void chip_critical_exit(void);
#ifdef __cplusplus
}
#endif

33
chip/delay.c

@ -0,0 +1,33 @@
#include "delay.h"
#include <stdint.h>
static TIM_HandleTypeDef *m_dhtim;
void chip_delay_init(TIM_HandleTypeDef *htim) { m_dhtim = htim; }
void chip_delay_us(uint32_t n) {
uint16_t counter = 0;
__HAL_TIM_SET_COUNTER(m_dhtim, 0);
HAL_TIM_Base_Start(m_dhtim);
while (counter < n) {
counter = __HAL_TIM_GET_COUNTER(m_dhtim);
}
HAL_TIM_Base_Stop(m_dhtim);
}
void chip_delay_ms(uint32_t n) {
uint32_t i;
for (i = 0; i < n; i++) {
chip_delay_us(1000);
}
}
uint32_t chip_get_ticket() {
uint32_t ticket = HAL_GetTick();
return ticket;
}
uint32_t haspassedms(uint32_t ticket) {
uint32_t nowticket = HAL_GetTick();
if (nowticket >= ticket) {
return nowticket - ticket;
}
return UINT32_MAX - ticket + nowticket;
}

16
chip/delay.h

@ -0,0 +1,16 @@
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include "chip.h"
void chip_delay_init(TIM_HandleTypeDef *htim);
void chip_delay_us(uint32_t n);
void chip_delay_ms(uint32_t n);
uint32_t chip_get_ticket();
#ifdef __cplusplus
}
#endif

6
chip/iflytop_no_os.c

@ -0,0 +1,6 @@
#include "iflytop_no_os.h"
void iflytop_no_os_init(iflytop_no_os_cfg_t* os) {
chip_delay_init(os->delayhtim);
ifly_loggger_init(os->debuguart);
}

38
chip/iflytop_no_os.h

@ -0,0 +1,38 @@
/**
* @file iflytop_no_os.h
* @author zhaohe (h_zhaohe@163.com)
* @brief
* @version 0.1
* @date 2023-07-11
*
* @copyright Copyright (c) 2023
*
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <stdbool.h>
#include <stdio.h>
#include "marco.h"
//
#include "chip.h"
//
#include "delay.h"
//
#include "log.h"
//
typedef struct {
TIM_HandleTypeDef *delayhtim;
UART_HandleTypeDef *debuguart;
} iflytop_no_os_cfg_t;
void iflytop_no_os_init(iflytop_no_os_cfg_t *os);
#ifdef __cplusplus
}
#endif

33
chip/log.c

@ -0,0 +1,33 @@
#include "log.h"
#include <stdbool.h>
#include <stddef.h>
#include <stdio.h>
static UART_HandleTypeDef *m_huart;
bool g_enable_log;
/*********************************************************************
* @fn _write
*
* @brief Support Printf Function
*
* @param *buf - UART send Data.
* size - Data length
*
* @return size: Data length
*/
__attribute__((used)) int _write(int fd, char *buf, int size) {
int i;
for (i = 0; i < size; i++) {
uint8_t c = *buf++;
if (m_huart != NULL) HAL_UART_Transmit(m_huart, &c, 1, 100);
}
return size;
}
void ifly_loggger_init(UART_HandleTypeDef *huart) { m_huart = huart; }
void ifly_loggger_enable(bool enable) { g_enable_log = enable; }

54
chip/log.h

@ -0,0 +1,54 @@
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <stdbool.h>
#include <stdint.h>
#include "chip.h"
#include "delay.h"
/***********************************************************************************************************************
* =============================================================================================================== *
***********************************************************************************************************************/
extern bool g_enable_log;
#define ZLOG_RELEASE(TAG, fmt, ...) \
if (g_enable_log) { \
printf(TAG "" fmt "\n", ##__VA_ARGS__); \
}
#define ZLOGI(TAG, fmt, ...) \
if (g_enable_log) { \
printf("%08u INFO [%-8s] " fmt "\n", ifly_get_ticket(), TAG, ##__VA_ARGS__); \
}
#define ZLOGD(TAG, fmt, ...) \
if (g_enable_log) { \
printf("%08u DEBU [%-8s] " fmt "\n", ifly_get_ticket(), TAG, ##__VA_ARGS__); \
}
#define ZLOGE(TAG, fmt, ...) \
if (g_enable_log) { \
printf("%08u ERRO [%-8s] " fmt "\n", ifly_get_ticket(), TAG, ##__VA_ARGS__); \
}
#define ZLOGI_HEX(TAG, hextable, table_size) \
if (g_enable_log) { \
printf("%08u INFO [%-8s] \t", ifly_get_ticket(), TAG); \
for (int i = 0; i < table_size; i++) { \
printf(" %02X", hextable[i]); \
} \
printf("\n"); \
}
#define ZASSERT(cond) \
if (!(cond)) { \
while (1) { \
printf("ASSERT: %s [%s:%d]\n", #cond, __FILE__, __LINE__); \
ifly_delay_ms(1000); \
} \
}
void ifly_loggger_init(UART_HandleTypeDef *huart);
void ifly_loggger_enable(bool enable);
#ifdef __cplusplus
}
#endif

45
chip/marco.h

@ -0,0 +1,45 @@
#pragma once
#ifndef ZARRAY_SIZE
#define ZARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
#endif
#define ZMAX(a, b) ((a) > (b) ? (a) : (b))
#define ZMIN(a, b) ((a) < (b) ? (a) : (b))
#ifndef INT8_MIN
#define INT8_MIN (-128)
#endif
#ifndef INT16_MIN
#define INT16_MIN (-32768)
#endif
#ifndef INT32_MIN
#define INT32_MIN (-2147483647 - 1)
#endif
#ifndef INT64_MIN
#define INT64_MIN (-9223372036854775807LL - 1)
#endif
#ifndef INT8_MAX
#define INT8_MAX 127
#endif
#ifndef INT16_MAX
#define INT16_MAX 32767
#endif
#ifndef INT32_MAX
#define INT32_MAX 2147483647
#endif
#ifndef INT64_MAX
#define INT64_MAX 9223372036854775807LL
#endif
#ifndef UINT8_MAX
#define UINT8_MAX 255
#endif
#ifndef UINT16_MAX
#define UINT16_MAX 65535
#endif
#ifndef UINT32_MAX
#define UINT32_MAX 0xffffffffU /* 4294967295U */
#endif
#ifndef UINT64_MAX
#define UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */
#endif

0
components/log/log.c

0
components/log/log.h

Loading…
Cancel
Save