123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- /**
- * @file common.c
- * @author chipsea
- * @brief
- * @version 0.1
- * @date 2020-11-30
- * @copyright Copyright (c) 2020, CHIPSEA Co., Ltd.
- * @note
- */
- #include "sdk_config.h"
- #include "global_config.h"
- #include "OSAL_Tasks.h"
- #include "rf_phy_driver.h"
- #include "pwrmgr.h"
- #include "gpio.h"
- #include "timer.h"
- #include "uart.h"
- #include "log.h"
- #include "common.h"
- #include "spi.h"
- __asm uint32_t get_msp_addr()
- {
- mrs r0, msp;
- bx lr;// cppcheck-suppress missingReturn
- }
- #define DUMP_LOG
- #ifdef DUMP_LOG
- unsigned int cur_sp;
- unsigned int sp_data[16];
- void Dump_Record(void)
- {
- cur_sp = __current_sp();
-
- for(int i = 0; i< 0x10; i++)
- {
- sp_data[i] = ((uint32_t*)cur_sp)[i];
- }
- LOG("DUMP LOG V1\r\n");
- LOG("Hard Fault SP is %x\n",cur_sp);
- LOG("crash fun:0x%x\r\n", sp_data[9]);
- LOG("crash addr:0x%x\r\n", sp_data[12]);
- for(int i = 0; i< 0x10; i++)
- {
- LOG("crash data:0x%x\r\n", sp_data[i]);
- }
- }
- #endif
- void hard_fault(void)
- {
- #ifdef DUMP_LOG
- Dump_Record();
- #endif
- while(1);
- }
- __ATTR_SECTION_XIP__ uint32_t osal_memory_statics(uint32 memTotalSize)
- {
- osalMemHdr_t *header, *current;
- void *ptr;
- uint32 sum_alloc = 0;
- ptr = (void *)(g_largeHeap);
- header = (osalMemHdr_t *)ptr;
- current = (osalMemHdr_t *)ptr;
-
- HAL_ENTER_CRITICAL_SECTION(); // Hold off interrupts.
-
- do
- {
- if ((uint32)ptr >= (uint32)header + memTotalSize)
- {
- break;
- }
- // seek to the last block, return
- if ( current->val == 0 ) /// val = 0, so len = 0
- {
- break;
- }
-
- if (current->hdr.inUse)
- {
- sum_alloc += current->hdr.len;
- }
- current = (osalMemHdr_t *)((uint8 *)current + current->hdr.len);
- } while (1);
- HAL_EXIT_CRITICAL_SECTION(); // Re-enable interrupts.
- return sum_alloc;
- }
- #ifdef DBG_SPI_USE
- void dbg_spi_init(AP_SSI_TypeDef* SPIx)
- {
- spi_Cfg_t cfg;
-
- cfg.ssn_pin = P31;
- cfg.sclk_pin = P32;
- cfg.MISO = GPIO_DUMMY;
- cfg.MOSI = P33;
- cfg.baudrate = 12000000;
- cfg.spi_tmod = SPI_TRXD;
- cfg.spi_scmod = SPI_MODE0;
- cfg.spi_dfsmod = SPI_1BYTE;
- cfg.dma_rx_enable = false;
- cfg.dma_tx_enable = false;
- cfg.int_mode = false;
- cfg.evt_handler = NULL;
- cfg.force_cs = false;
- cfg.is_slave = false;
- HalSpiMasterConfig(SPIx, &cfg);
- }
- void dbg_spi_out_buf(uint8_t connId, uint8_t *buf, uint8_t len)
- {
- AP_SPI1->DataReg=0xA0+connId;
- while(len--)
- {
- AP_SPI1->DataReg = *buf++;
- }
- }
- #endif
|