68 lines
1.1 KiB
C
68 lines
1.1 KiB
C
#include "inter_vector.h"
|
|
#include "ucps2-intrin.h"
|
|
|
|
#include "debug.h"
|
|
|
|
|
|
|
|
int sw_debug_enable;
|
|
struct ucp_task *sw_debug_addr;
|
|
struct ucp_task *sw_debug_info;
|
|
|
|
int no_idle_sw_op = 0;
|
|
struct ucp_task *no_idle_sw_info;
|
|
|
|
|
|
int smart_os_debug_init(uint32_t debug_base_addr, uint32_t len_bytes)
|
|
{
|
|
if(debug_base_addr <= 0x10000000)
|
|
{
|
|
return -1;
|
|
}
|
|
if (len_bytes < 0x40)
|
|
{
|
|
return -2;
|
|
}
|
|
|
|
sw_debug_enable = 1;
|
|
sw_debug_addr = (struct ucp_task *)debug_base_addr;
|
|
sw_debug_info = (struct ucp_task *)sw_debug_addr;
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
void os_debug(void * addr , uint32_t v)
|
|
{
|
|
if(sw_debug_enable != 0)
|
|
{
|
|
do_write(addr,v);
|
|
}
|
|
}
|
|
|
|
|
|
int smart_no_idle_sw_init(uint32_t debug_base_addr, uint32_t lens)
|
|
{
|
|
if(debug_base_addr <= 0x10000000)
|
|
{
|
|
return -1;
|
|
}
|
|
if (lens < 0x40)
|
|
{
|
|
return -2;
|
|
}
|
|
|
|
no_idle_sw_op = 1;
|
|
no_idle_sw_info = (struct ucp_task *)debug_base_addr;
|
|
|
|
return 0;
|
|
}
|
|
|
|
void no_idle_debug(void *addr,uint32_t v)
|
|
{
|
|
if(no_idle_sw_op != 0)
|
|
{
|
|
do_write(addr,v);
|
|
}
|
|
}
|