pure sdk for main
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
#include "typesdef.h"
|
||||
#include "osal/string.h"
|
||||
#include "csi_core.h"
|
||||
#include <k_api.h>
|
||||
#include <csi_kernel.h>
|
||||
|
||||
void csi_kernel_task_dump(k_task_handle_t task_handle, void* stack);
|
||||
|
||||
__bobj uint8_t assert_holdup;
|
||||
|
||||
void assert_call_addr(const char *__function, unsigned int __line,void* addr)
|
||||
{
|
||||
os_printf(KERN_ERR"%s failed: function: %s, line %d\tcall addr:%X\r\n", __FUNCTION__,__function, __line,(uint32_t)addr);
|
||||
}
|
||||
void assert_internal(const char *__function, unsigned int __line, const char *__assertion)
|
||||
{
|
||||
int print_loop = 0;
|
||||
uint32_t in_int = __in_interrupt();
|
||||
ktask_t *task = csi_kernel_task_get_cur();
|
||||
|
||||
disable_print(0);
|
||||
if (assert_holdup) {
|
||||
__disable_irq();
|
||||
mcu_watchdog_timeout(0); //disable watchdog
|
||||
jtag_map_set(1);
|
||||
}
|
||||
|
||||
os_printf(KERN_ERR"[%s:%p]: assertation \"%s\" failed: function: %s, line %d\r\n",
|
||||
(in_int ? "Interrupt" : task->task_name), (in_int ? 0 : task),
|
||||
__assertion, __function, __line);
|
||||
|
||||
sys_errlog_flush(0xffffffff, 0, 0);
|
||||
|
||||
if(!in_int && task){
|
||||
csi_kernel_task_dump(task, 0);
|
||||
}
|
||||
|
||||
do {
|
||||
os_printf(KERN_ERR"[%s:%p]: assertation \"%s\" failed: function: %s, line %d\r\n",
|
||||
(in_int ? "Interrupt" : task->task_name), (in_int ? 0 : task),
|
||||
__assertion, __function, __line);
|
||||
delay_us(1000*1000);
|
||||
} while (assert_holdup || print_loop++ < 5);
|
||||
|
||||
mcu_reset();
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
#include "sys_config.h"
|
||||
#include "typesdef.h"
|
||||
#include "list.h"
|
||||
#include "dev.h"
|
||||
#include "devid.h"
|
||||
#include "osal/string.h"
|
||||
#include "hal/uart.h"
|
||||
#include "lib/heap/sysheap.h"
|
||||
|
||||
#include "csi_core.h"
|
||||
|
||||
#if MPOOL_ALLOC
|
||||
void *krhino_mm_alloc(size_t size, void *caller)
|
||||
{
|
||||
#if defined(PSRAM_HEAP) && defined(PSRAM_TASK_STACK)
|
||||
return sysheap_alloc(&psram_heap, size, caller, 0);
|
||||
#else
|
||||
return sysheap_alloc(&sram_heap, size, caller, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
void krhino_mm_free(void *ptr)
|
||||
{
|
||||
#if defined(PSRAM_HEAP) && defined(PSRAM_TASK_STACK)
|
||||
os_free_psram(ptr);
|
||||
#else
|
||||
os_free(ptr);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
#include "sys_config.h"
|
||||
#include "typesdef.h"
|
||||
#include "list.h"
|
||||
#include "dev.h"
|
||||
#include "devid.h"
|
||||
#include "osal/string.h"
|
||||
#include "hal/uart.h"
|
||||
|
||||
#include "csi_core.h"
|
||||
|
||||
extern int8_t __disable_print__;
|
||||
int32_t csi_usart_getchar(void* handle, uint8_t *ch)
|
||||
{
|
||||
*ch = uart_getc((struct uart_device *)handle);
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int32_t csi_usart_putchar(void* handle, uint8_t ch)
|
||||
{
|
||||
if (__disable_print__) { return 0; }
|
||||
return uart_putc((struct uart_device *)handle, ch);
|
||||
}
|
||||
Reference in New Issue
Block a user