Merge branch 'dev_ck_v2.1_new_feature_1113' into 'dev_ck_v2.1'
update rtos code New Feature#1113 See merge request ucp/driver/ucp4008_platform_spu!57
This commit is contained in:
commit
7dafcd3d11
@ -1,40 +1,90 @@
|
||||
#include "ucps2-intrin.h"
|
||||
#include "hwque.h"
|
||||
#include "osp_io.h"
|
||||
|
||||
void hwq_debug(void * addr , uint32_t v);
|
||||
#define hwq_do_write(a,v) __ucps2_store_ext_mem((void *)a, (uint32_t)v, f_W)
|
||||
#define hwq_do_read(ptr) __ucps2_load_ext_mem_v((char*)ptr, f_W)
|
||||
#define hwq_do_write(a,v) __ucps2_store_ext_mem((void *)(a), (uint32_t)v, f_W)
|
||||
#define hwq_do_read(ptr) __ucps2_load_ext_mem_v((char*)(ptr), f_W)
|
||||
|
||||
#define CPSM_QUE_BASE 0x04d50000
|
||||
#define JSSM_QUE_BASE 0x05f70000
|
||||
|
||||
#define CPSM_MEM_BASE 0x09300000ul
|
||||
|
||||
#define JS_MEM_BASE 0x04d80000ul
|
||||
|
||||
#define dire_in 0
|
||||
#define dire_out 1
|
||||
|
||||
int que_map_depth_array[16] = {
|
||||
|
||||
0x04d51014,0x04d51018,0x04d5101c,0x04d51020,
|
||||
0x04d51024,0x04d51028,0x04d5102c,0x04d51030,
|
||||
|
||||
0x05f71014,0x05f71018,0x05f7101c,0x05f71020,
|
||||
0x05f71024,0x05f71028,0x05f7102c,0x05f71030
|
||||
|
||||
};
|
||||
|
||||
int que_map_start_addr_array[16] ={
|
||||
|
||||
0x09300000,0x09303F00,0x09307E00,0x0930BD00,0x0930FC00,0x09313B00,0x09317A00,0x931B900,
|
||||
|
||||
0x04d80000,0x04d83F00,0x04d87E00,0x04D8BD00,0x04D8FC00,0x04D93B00,0x04D97A00,0x04D9B900
|
||||
};
|
||||
|
||||
//#define HWQUE_HEADER_ADDR (0x931fc00 - 0x400)
|
||||
|
||||
|
||||
extern int int_default_val;
|
||||
hwq_debug_t *q_debug_info;
|
||||
int q_debug_enable = 0;
|
||||
uint32_t q_debug_addr = 0;
|
||||
|
||||
|
||||
unsigned int out_failed_cnt;
|
||||
unsigned int in_failed_cnt;
|
||||
unsigned int out_success_cnt;
|
||||
unsigned int in_success_cnt;
|
||||
unsigned int cur_que_depth;
|
||||
unsigned int out_failed_cnt[QUE_MAX_NR] = {0};
|
||||
unsigned int in_failed_cnt[QUE_MAX_NR] = {0};
|
||||
unsigned int out_success_cnt[QUE_MAX_NR] = {0};
|
||||
unsigned int in_success_cnt[QUE_MAX_NR] = {0};
|
||||
//unsigned int cur_que_depth[QUE_MAX_NR] = {0};
|
||||
unsigned int bind_cpuid;
|
||||
int g_coreid = 0;
|
||||
|
||||
|
||||
const uint32_t com_header_addr = (0x931fc00 -0x400);
|
||||
|
||||
mpu_shm_obj *shm_head = NULL;
|
||||
|
||||
void hw_que_panic(int queid,int addr,int mode)
|
||||
{
|
||||
|
||||
int g_coreid = 0;
|
||||
if(que_map_depth_array[queid] != addr)
|
||||
{
|
||||
if(mode == dire_in)
|
||||
{
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].in_que_depth_addr), addr);
|
||||
}
|
||||
else
|
||||
{
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].out_que_depth_addr), addr);
|
||||
}
|
||||
__ucps2_IntEn(f_Disable);
|
||||
while(1);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int smart_hq_init(int cpuid)
|
||||
{
|
||||
shm_head = (mpu_shm_obj*)com_header_addr;
|
||||
|
||||
shm_head = (mpu_shm_obj*)com_header_addr;
|
||||
g_coreid = cpuid;
|
||||
return 0;
|
||||
if((cpuid > 12)||(cpuid < 0))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
g_coreid = cpuid;
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/************************************
|
||||
@ -43,41 +93,138 @@ int smart_hq_init(int cpuid)
|
||||
|
||||
int smart_get_hq_vector(int cpuid,int queid)
|
||||
{
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
|
||||
if((cpuid >= 0)&&(cpuid < 12))
|
||||
{
|
||||
return que_ptr->ape_vector_id;
|
||||
}
|
||||
else if(cpuid == 12)
|
||||
{
|
||||
return que_ptr->arm_vector_id;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
|
||||
if((cpuid >= 0)&&(cpuid < 12))
|
||||
{
|
||||
return que_ptr->ape_vector_id;
|
||||
}
|
||||
else if(cpuid == 12)
|
||||
{
|
||||
return que_ptr->arm_vector_id;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/***************
|
||||
函数名称:smart_intr_in_que
|
||||
函数参数:queid 队列编号
|
||||
函数参数:val 入队值
|
||||
函数功能:硬件队列入队
|
||||
|
||||
函数使用注意1 : 当前函数只能在中断处理函数中调用
|
||||
函数使用注意2 :当前多生产使用时需要外部加锁
|
||||
|
||||
******************/
|
||||
int smart_intr_in_que(int queid,uint32_t val)
|
||||
{
|
||||
uint32_t tp_val;
|
||||
int ret;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
hw_que_panic(queid,que_ptr->hw_depth_reg,dire_in);
|
||||
tp_val = hwq_do_read(que_ptr->hw_depth_reg);
|
||||
if(((tp_val >> 16)&0xffff) > B_128_16BLCOKS)
|
||||
{
|
||||
hwq_do_write(que_ptr->hw_start_addr,val);
|
||||
++in_success_cnt[queid];
|
||||
ret = 0;
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].in_success_cnt), in_success_cnt[queid]);
|
||||
}
|
||||
else
|
||||
{
|
||||
++in_failed_cnt[queid];
|
||||
ret = -1;
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].in_failed_cnt), in_failed_cnt[queid]);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/***************
|
||||
函数名称:smart_in_que
|
||||
函数参数:queid 队列编号
|
||||
函数参数:val 入队值
|
||||
函数功能:硬件队列入队
|
||||
函数使用注意 :当前函数不能在中断处理函数中调用
|
||||
函数使用注意 :多核并发使用时需要外部加锁保护
|
||||
******************/
|
||||
|
||||
int smart_in_que(int queid,uint32_t val)
|
||||
{
|
||||
uint32_t tp_val;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
tp_val = *(volatile uint32_t*)(que_ptr->hw_depth_reg);
|
||||
if(((tp_val >> 16)&0xffff) > B_128_16BLCOKS)
|
||||
{
|
||||
*(volatile uint32_t*)(que_ptr->hw_start_addr) = val;
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].in_success_cnt), ++in_success_cnt);
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].cur_que_depth), *(volatile uint32_t*)que_ptr->hw_depth_reg);
|
||||
return 0;
|
||||
}
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].in_failed_cnt), ++in_failed_cnt);
|
||||
|
||||
return -1;
|
||||
int ret = 0;
|
||||
int int_state = __ucps2_readIntEn();
|
||||
if(int_state == 1)
|
||||
{
|
||||
__ucps2_IntEn(f_Disable);
|
||||
ret = smart_intr_in_que(queid,val);
|
||||
__ucps2_IntEn(f_Enable);
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = smart_intr_in_que(queid,val);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*********************************
|
||||
函数名称:smart_intr_out_que
|
||||
函数参数:queid 队列编号
|
||||
函数参数:出队val 值
|
||||
函数功能:硬件队列出队
|
||||
函数使用注意 当前函数只能在中断处理函数中调用
|
||||
|
||||
********************************/
|
||||
int smart_intr_out_que(int queid,uint32_t *val)
|
||||
{
|
||||
uint32_t tp_val;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
if(hwq_do_read(&que_ptr->cpuid) != g_coreid)
|
||||
{
|
||||
return -EMATCH;
|
||||
}
|
||||
hw_que_panic(queid,que_ptr->hw_depth_reg,dire_out);
|
||||
tp_val = hwq_do_read(que_ptr->hw_depth_reg);
|
||||
if((tp_val&0xffff) != 0)
|
||||
{
|
||||
++out_success_cnt[queid];
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].out_success_cnt), out_success_cnt[queid]);
|
||||
*val = hwq_do_read(que_ptr->hw_start_addr);
|
||||
return 0;
|
||||
}
|
||||
++out_failed_cnt[queid];
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].out_failed_cnt), out_failed_cnt[queid]);
|
||||
|
||||
return -EQUEEMPTY;
|
||||
}
|
||||
|
||||
/**********************
|
||||
函数名称:smart_out_que
|
||||
函数参数:queid 队列编号
|
||||
输出参数:val
|
||||
函数功能:队列出队获取当前出队值
|
||||
函数使用注意 : 当前函数不能在中断处理函数中使用
|
||||
|
||||
*********************/
|
||||
|
||||
int smart_out_que(int queid,uint32_t *val)
|
||||
{
|
||||
int ret = 0;
|
||||
int int_state = __ucps2_readIntEn();
|
||||
if(int_state == 1)
|
||||
{
|
||||
__ucps2_IntEn(f_Disable);
|
||||
ret = smart_intr_out_que(queid,val);
|
||||
__ucps2_IntEn(f_Enable);
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = smart_intr_out_que(queid,val);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*********************
|
||||
函数名称:smart_que_is_full
|
||||
函数参数:queid 队列编号
|
||||
@ -87,144 +234,138 @@ int smart_in_que(int queid,uint32_t val)
|
||||
|
||||
int smart_que_is_full(int queid)
|
||||
{
|
||||
uint32_t tp_val;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
tp_val = *(volatile uint32_t*)(que_ptr->hw_depth_reg);
|
||||
if(((tp_val >> 16)&0xffff) <= B_128_16BLCOKS)
|
||||
{
|
||||
return 1; // que is full
|
||||
}
|
||||
return 0; // que is not full
|
||||
}
|
||||
|
||||
/*********************
|
||||
函数名称:smart_out_que
|
||||
函数参数:queid 队列编号
|
||||
输出参数:idx 获取当前队列的索引值
|
||||
函数功能:队列出队获取当前队列的索引值
|
||||
|
||||
*********************/
|
||||
|
||||
int smart_out_que(int queid,uint32_t *val)
|
||||
{
|
||||
uint32_t tp_val;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
if(que_ptr->cpuid != g_coreid)
|
||||
{
|
||||
return -EMATCH;
|
||||
}
|
||||
tp_val = *(volatile uint32_t*)(que_ptr->hw_depth_reg);
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].cur_que_depth), tp_val);
|
||||
if((tp_val&0xffff) != 0)
|
||||
{
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].out_success_cnt), ++out_success_cnt);
|
||||
*val = (*(volatile uint32_t*)(que_ptr->hw_start_addr));
|
||||
return 0;
|
||||
}
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].out_failed_cnt), ++out_failed_cnt);
|
||||
return -EQUEEMPTY;
|
||||
uint32_t tp_val;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
tp_val = hwq_do_read(que_ptr->hw_depth_reg);
|
||||
if(((tp_val >> 16)&0xffff) == B_128_16BLCOKS)
|
||||
{
|
||||
return 1; // que is full
|
||||
}
|
||||
|
||||
return 0; // que is not full
|
||||
}
|
||||
|
||||
|
||||
int smart_que_is_empty(int queid)
|
||||
{
|
||||
uint32_t tp_val;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
tp_val = *(volatile uint32_t*)(que_ptr->hw_depth_reg);
|
||||
if((tp_val&0xffff) == 0)
|
||||
{
|
||||
return 1; // que is empty true
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0; // que is not empty FALSE
|
||||
}
|
||||
uint32_t tp_val;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
tp_val = hwq_do_read(que_ptr->hw_depth_reg);
|
||||
if((tp_val&0xffff) == 0)
|
||||
{
|
||||
return 1; // que is empty true
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0; // que is not empty FALSE
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int smart_get_que_info(int queid,int *dep,int *width,int *used,int *cpuid)
|
||||
{
|
||||
uint32_t tmp;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
if(queid >= 0 && queid < 8)
|
||||
{
|
||||
*dep = shm_head->shm_type_s[CPSM_SM].que_depths - B_128_16BLCOKS;
|
||||
*width = shm_head->shm_type_s[CPSM_SM].width_bits;
|
||||
}else if(queid >=8 && queid < 16)
|
||||
{
|
||||
*dep = shm_head->shm_type_s[JSSM_SM].que_depths - B_128_16BLCOKS;
|
||||
*width = shm_head->shm_type_s[JSSM_SM].width_bits;
|
||||
}
|
||||
*cpuid = que_ptr->cpuid;
|
||||
tmp = *(volatile uint32_t*)(que_ptr->hw_depth_reg);
|
||||
*used = (tmp&0xffff);
|
||||
uint32_t tmp;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
if(queid >= 0 && queid < 8)
|
||||
{
|
||||
*dep = shm_head->shm_type_s[CPSM_SM].que_depths - B_128_16BLCOKS;
|
||||
*width = shm_head->shm_type_s[CPSM_SM].width_bits;
|
||||
}else if(queid >=8 && queid < 16)
|
||||
{
|
||||
*dep = shm_head->shm_type_s[JSSM_SM].que_depths - B_128_16BLCOKS;
|
||||
*width = shm_head->shm_type_s[JSSM_SM].width_bits;
|
||||
}
|
||||
*cpuid = que_ptr->cpuid;
|
||||
tmp = *(volatile uint32_t*)(que_ptr->hw_depth_reg);
|
||||
*used = (tmp&0xffff);
|
||||
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void smart_enable_q_nempty(int queid)
|
||||
static int test_bit(void *s,unsigned int index)
|
||||
{
|
||||
volatile uint32_t *empty_reg;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
empty_reg = (volatile uint32_t*)(que_ptr->hw_base_reg+0x103c);
|
||||
if(queid < 8)
|
||||
{
|
||||
*empty_reg |= 1<< (queid+8);
|
||||
}
|
||||
else if((queid >= 8)&&(queid < 16))
|
||||
{
|
||||
*empty_reg |= 1<< ((queid -8)+8);
|
||||
}
|
||||
else if((queid >= 16)&&(queid < 24))
|
||||
{
|
||||
*empty_reg |= 1<< ((queid -16)+8);
|
||||
}
|
||||
else if((queid >= 24)&&(queid < 32))
|
||||
{
|
||||
*empty_reg |= 1<< ((queid - 24)+8);
|
||||
}
|
||||
unsigned char *f_bit = s;
|
||||
f_bit += index >>3;
|
||||
return ((*f_bit&(1 <<((index%8)))) != 0);
|
||||
}
|
||||
|
||||
|
||||
int smart_enable_q_nempty(int queid)
|
||||
{
|
||||
volatile uint32_t *empty_reg;
|
||||
int tmp_val = 0;
|
||||
int ret = 0;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
empty_reg = (volatile uint32_t*)(que_ptr->hw_base_reg+0x103c);
|
||||
if(queid < 8)
|
||||
{
|
||||
*empty_reg |= 1<< (queid+8);
|
||||
tmp_val = *empty_reg;
|
||||
__ucps2_synch(0);
|
||||
ret = !(test_bit(&tmp_val,(queid+8)) != 0);
|
||||
}
|
||||
else if((queid >= 8)&&(queid < 16))
|
||||
{
|
||||
*empty_reg |= 1<< ((queid -8)+8);
|
||||
tmp_val = *empty_reg;
|
||||
__ucps2_synch(0);
|
||||
ret = !(test_bit(&tmp_val,((queid -8)+8)) != 0);
|
||||
}
|
||||
else if((queid >= 16)&&(queid < 24))
|
||||
{
|
||||
*empty_reg |= 1<< ((queid -16)+8);
|
||||
tmp_val = *empty_reg;
|
||||
__ucps2_synch(0);
|
||||
ret = !(test_bit(&tmp_val,((queid -16)+8)) != 0);
|
||||
}
|
||||
else if((queid >= 24)&&(queid < 32))
|
||||
{
|
||||
*empty_reg |= 1<< ((queid - 24)+8);
|
||||
tmp_val = *empty_reg;
|
||||
__ucps2_synch(0);
|
||||
ret = !(test_bit(&tmp_val,((queid -24)+8)) != 0);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void smart_disable_q_nempty(int queid)
|
||||
{
|
||||
volatile uint32_t *empty_reg;
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
empty_reg = (volatile uint32_t*)(que_ptr->hw_base_reg+0x103c);
|
||||
if(queid < 8)
|
||||
{
|
||||
*empty_reg &= ~(1<< (queid+8));
|
||||
}
|
||||
else if((queid >= 8)&&(queid < 16))
|
||||
{
|
||||
*empty_reg &= ~(1<< ((queid -8)+8));
|
||||
}else if((queid >= 16)&&(queid < 24))
|
||||
{
|
||||
*empty_reg &= ~(1<< ((queid -16)+8));
|
||||
}else if((queid >= 24)&&(queid < 32))
|
||||
{
|
||||
*empty_reg &= ~(1<< ((queid -24)+8));
|
||||
}
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
empty_reg = (volatile uint32_t*)(que_ptr->hw_base_reg+0x103c);
|
||||
if(queid < 8)
|
||||
{
|
||||
*empty_reg &= ~(1<< (queid+8));
|
||||
}
|
||||
else if((queid >= 8)&&(queid < 16))
|
||||
{
|
||||
*empty_reg &= ~(1<< ((queid -8)+8));
|
||||
}else if((queid >= 16)&&(queid < 24))
|
||||
{
|
||||
*empty_reg &= ~(1<< ((queid -16)+8));
|
||||
}else if((queid >= 24)&&(queid < 32))
|
||||
{
|
||||
*empty_reg &= ~(1<< ((queid -24)+8));
|
||||
}
|
||||
}
|
||||
|
||||
int smart_que_bind(int cpuid,int queid)
|
||||
{
|
||||
if((queid >15)||(queid < 0))
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
hwq_debug(&(q_debug_info->per_hwq[queid].bind_cpuid), cpuid);
|
||||
if(que_ptr->cpuid == -1)
|
||||
{
|
||||
que_ptr->cpuid = cpuid;
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if((queid >15)||(queid < 0))
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
hw_reg_desc_t * que_ptr = ((hw_reg_desc_t*)shm_head->v_map_queid[queid]);
|
||||
if(que_ptr->cpuid == -1)
|
||||
{
|
||||
que_ptr->cpuid = cpuid;
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -232,48 +373,48 @@ int smart_que_bind(int cpuid,int queid)
|
||||
*/
|
||||
int smart_hq_debug_init(uint32_t debug_base_addr, uint32_t len_bytes)
|
||||
{
|
||||
if(debug_base_addr <= 0x10000000)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (len_bytes < 192)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
if(debug_base_addr <= 0x10000000)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (len_bytes < 384)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
|
||||
q_debug_enable = 1;
|
||||
q_debug_addr = debug_base_addr;
|
||||
q_debug_info = (hwq_debug_t *)q_debug_addr;
|
||||
q_debug_enable = 1;
|
||||
q_debug_addr = debug_base_addr;
|
||||
q_debug_info = (hwq_debug_t *)q_debug_addr;
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int smart_get_inque_ok_cnt(int queid)
|
||||
{
|
||||
return q_debug_info->per_hwq[queid].in_success_cnt;
|
||||
return in_success_cnt[queid];
|
||||
}
|
||||
|
||||
int smart_get_inque_failed_cnt(int queid)
|
||||
{
|
||||
return q_debug_info->per_hwq[queid].in_failed_cnt;
|
||||
return out_failed_cnt[queid];
|
||||
}
|
||||
|
||||
int smart_get_outque_ok_cnt(int queid)
|
||||
{
|
||||
return q_debug_info->per_hwq[queid].out_success_cnt;
|
||||
return out_success_cnt[queid];
|
||||
}
|
||||
|
||||
int smart_get_outque_failed_cnt(int queid)
|
||||
{
|
||||
return q_debug_info->per_hwq[queid].out_failed_cnt;
|
||||
return out_failed_cnt[queid];
|
||||
}
|
||||
|
||||
void hwq_debug(void * addr , uint32_t v)
|
||||
{
|
||||
if(q_debug_enable == 1)
|
||||
{
|
||||
hwq_do_write(addr, v);
|
||||
}
|
||||
if(q_debug_enable == 1)
|
||||
{
|
||||
hwq_do_write(addr, v);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -28,12 +28,14 @@ typedef unsigned long long uint64_t;
|
||||
|
||||
#define NULL ((void*)0)
|
||||
|
||||
#define QUE_MAX_NR 16
|
||||
|
||||
#define HW_QUE_NR 8
|
||||
|
||||
#define QUE_NR 16
|
||||
|
||||
#define B_128_16BLCOKS 8
|
||||
|
||||
#define B_256_32BLOCKS 32
|
||||
#define BLOCKS_64 64
|
||||
|
||||
@ -78,212 +80,214 @@ typedef struct mpu_shm{
|
||||
|
||||
|
||||
typedef struct{
|
||||
unsigned int out_failed_cnt;
|
||||
unsigned int in_failed_cnt;
|
||||
unsigned int out_success_cnt;
|
||||
unsigned int in_success_cnt;
|
||||
unsigned int cur_que_depth;
|
||||
unsigned int bind_cpuid;
|
||||
unsigned int out_failed_cnt;
|
||||
unsigned int in_failed_cnt;
|
||||
unsigned int out_success_cnt;
|
||||
unsigned int in_success_cnt;
|
||||
unsigned int in_que_depth_addr;
|
||||
unsigned int out_que_depth_addr;
|
||||
|
||||
}hwq_db_info ;
|
||||
|
||||
typedef struct{
|
||||
hwq_db_info per_hwq[HW_QUE_NR];
|
||||
|
||||
hwq_db_info per_hwq[QUE_MAX_NR];
|
||||
|
||||
}hwq_debug_t;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
函数名称:smart_hq_init
|
||||
输入参数: cpuid
|
||||
返回类型: int
|
||||
返回值: 小于0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能: 硬件队列初始化
|
||||
|
||||
函数名称:smart_hq_init
|
||||
输入参数: cpuid
|
||||
返回类型: int
|
||||
返回值: 小于0 表示失败
|
||||
返回值:等于0 表示成功
|
||||
函数功能:硬件队列初始化
|
||||
*/
|
||||
|
||||
extern int smart_hq_init(int cpuid);
|
||||
|
||||
/*
|
||||
函数名称:smart_get_hq_vector
|
||||
输入参数: cpuid
|
||||
输入参数:queid
|
||||
返回类型: int
|
||||
返回值:小于等于0 表示失败
|
||||
函数功能: 获取当前硬件队列中断号
|
||||
函数名称:smart_get_hq_vector
|
||||
输入参数: cpuid
|
||||
输入参数:queid
|
||||
返回类型: int
|
||||
返回值:小于等于0 表示失败
|
||||
函数功能:获取当前硬件队列中断号
|
||||
|
||||
*/
|
||||
|
||||
extern int smart_get_hq_vector(int cpuid,int queid);
|
||||
|
||||
|
||||
/*
|
||||
函数名称:smart_in_que
|
||||
输入参数: cpuid
|
||||
输入参数:val
|
||||
返回类型: int
|
||||
返回值: 非0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能: 硬件队列入队
|
||||
/********************
|
||||
|
||||
函数名称:smart_in_que
|
||||
函数参数:queid 队列编号
|
||||
函数参数:val 入队值
|
||||
函数功能:硬件队列入队
|
||||
函数使用注意点1: 多核生产者入队时需要加锁
|
||||
|
||||
******************/
|
||||
|
||||
*/
|
||||
|
||||
extern int smart_in_que(int queid,uint32_t val);
|
||||
|
||||
|
||||
/*
|
||||
函数名称:smart_que_is_full
|
||||
输入参数: queid
|
||||
返回类型:int
|
||||
返回值: 1 表示 true
|
||||
返回值: 0 表示 false
|
||||
说明:下一版本返回值会更改enum ,
|
||||
enum hwque_status smart_que_is_full(int queid);
|
||||
返回值只能选择 hwque_false 和hwque_true
|
||||
函数名称:smart_que_is_full
|
||||
输入参数: queid
|
||||
返回类型:int
|
||||
返回值: 1 表示 true
|
||||
返回值: 0 表示 false
|
||||
*/
|
||||
|
||||
extern int smart_que_is_full(int queid);
|
||||
|
||||
/*
|
||||
函数名称:smart_out_que
|
||||
输入参数: queid
|
||||
输出参数: val
|
||||
返回类型:int
|
||||
返回值: 0 表示成功
|
||||
返回值: 非0表示失败
|
||||
函数功能:队列出队
|
||||
|
||||
*/
|
||||
/*********************
|
||||
函数名称:smart_out_que
|
||||
函数参数:queid 队列编号
|
||||
输出参数:idx 获取当前队列的索引值
|
||||
函数功能:队列出队获取当前队列的索引值
|
||||
|
||||
*********************/
|
||||
|
||||
extern int smart_out_que(int queid,uint32_t *val);
|
||||
|
||||
/*
|
||||
函数名称:smart_que_is_empty
|
||||
输入参数: queid
|
||||
返回类型: int
|
||||
返回值: 1 表示true
|
||||
返回值: 0 表示false
|
||||
函数名称:smart_que_is_empty
|
||||
输入参数: queid
|
||||
返回类型: int
|
||||
返回值: 1 表示true
|
||||
返回值:0 表示false
|
||||
|
||||
*/
|
||||
extern int smart_que_is_empty(int queid);
|
||||
|
||||
/*
|
||||
函数名称:smart_get_que_info
|
||||
输入参数: queid
|
||||
输出参数:*dep
|
||||
输出参数: *width
|
||||
输出参数: *used
|
||||
输出参数:*cpuid
|
||||
返回类型: int
|
||||
返回值: 非0 表示失败
|
||||
返回值: 0 表示成功
|
||||
|
||||
函数名称:smart_get_que_info
|
||||
输入参数: queid
|
||||
输出参数 *dep
|
||||
输出参数: *width
|
||||
输出参数: *used
|
||||
输出参数: *cpuid
|
||||
返回类型: int
|
||||
返回值:0 表示成功,非0 表示失败
|
||||
|
||||
*/
|
||||
|
||||
extern int smart_get_que_info(int queid,int *dep,int *width,int *used,int *cpuid);
|
||||
|
||||
/*
|
||||
函数名称:smart_enable_q_nempty
|
||||
输入参数: queid
|
||||
返回值: 无
|
||||
// 函数名称:smart_enable_q_nempty
|
||||
函数名称:smart_hq_nempty_int_enable
|
||||
输入参数: queid
|
||||
返回值:int
|
||||
函数功能:使能非空中断
|
||||
|
||||
*/
|
||||
|
||||
extern void smart_enable_q_nempty(int queid);
|
||||
//extern void smart_enable_q_nempty(int queid);
|
||||
//extern void smart_hq_nempty_int_enable(int queid);
|
||||
extern int smart_enable_q_nempty(int queid);
|
||||
|
||||
|
||||
/*
|
||||
函数名称:smart_disable_q_nempty
|
||||
输入参数: queid
|
||||
返回值: 无
|
||||
函数功能:使能非空中断
|
||||
|
||||
// 函数名称:smart_disable_q_nempty
|
||||
函数名称:smart_hq_nempty_int_disable
|
||||
输入参数: queid
|
||||
返回值:int
|
||||
函数功能:去使能非空中断
|
||||
|
||||
*/
|
||||
|
||||
extern void smart_disable_q_nempty(int queid);
|
||||
//extern void smart_hq_nempty_int_disable(int queid);
|
||||
|
||||
|
||||
/*
|
||||
函数名称:smart_que_bind
|
||||
输入参数: queid
|
||||
输入参数;cpuid
|
||||
返回类型:int
|
||||
返回值 ; 非0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能:去使能非空中断
|
||||
|
||||
函数名称:smart_que_bind
|
||||
输入参数: queid
|
||||
输入参数;cpuid
|
||||
返回类型:int
|
||||
返回值 : 0 表示返回成功,非0 表示返回失败
|
||||
|
||||
函数功能:去使能非空中断
|
||||
|
||||
*/
|
||||
|
||||
extern int smart_que_bind(int cpuid,int queid);
|
||||
|
||||
|
||||
/*
|
||||
函数名称:smart_hq_debug_init
|
||||
输入参数: debug_base_addr
|
||||
输入参数;len_bytes
|
||||
返回类型:int
|
||||
返回值 ; 非0 表示失败
|
||||
返回值:0 表示成功
|
||||
函数功能:调试初始化接口
|
||||
函数名称:smart_hq_debug_init
|
||||
输入参数: debug_base_addr
|
||||
输入参数;len_bytes
|
||||
返回类型:int
|
||||
返回值:0 表示成功
|
||||
函数功能:调试初始化接口
|
||||
|
||||
注意:
|
||||
通过地址与,长度指定相应的buf 数据空间,存放相应的中断调试信息。
|
||||
这些调试信息已经格式化,地址由用户指定,len_bytes 不能小于sizeof(hwq_debug_t)
|
||||
数据格式化内容是 hwq_debug_t
|
||||
注意:
|
||||
通过地址与,长度指定相应的buf 数据空间,存放相应的中断调试信息
|
||||
这些调试信息已经格式化,地址由用户指定,len_bytes 不能小于sizeof(hwq_debug_t)
|
||||
数据格式化结构是: hwq_debug_t
|
||||
|
||||
数据格式 example:
|
||||
typedef struct{
|
||||
unsigned int out_failed_cnt;
|
||||
unsigned int in_failed_cnt;
|
||||
unsigned int out_success_cnt;
|
||||
unsigned int in_success_cnt;
|
||||
unsigned int cur_que_depth;
|
||||
unsigned int bind_cpuid;
|
||||
|
||||
}hwq_db_info ;
|
||||
|
||||
typedef struct{
|
||||
hwq_db_info per_hwq[HW_QUE_NR];
|
||||
|
||||
}hwq_debug_t;
|
||||
|
||||
数据格式 example:
|
||||
typedef struct{
|
||||
unsigned int out_failed_cnt;
|
||||
unsigned int in_failed_cnt;
|
||||
unsigned int out_success_cnt;
|
||||
unsigned int in_success_cnt;
|
||||
unsigned int cur_que_depth;
|
||||
unsigned int bind_cpuid;
|
||||
|
||||
}hwq_db_info ;
|
||||
|
||||
typedef struct{
|
||||
hwq_db_info per_hwq[HW_QUE_NR];
|
||||
|
||||
}hwq_debug_t;
|
||||
*/
|
||||
|
||||
extern int smart_hq_debug_init( uint32_t debug_base_addr, uint32_t len_bytes);
|
||||
|
||||
/*
|
||||
函数名称:smart_get_inque_ok_cnt
|
||||
输入参数: queid
|
||||
返回类型:int
|
||||
返回值 ; 小于等于0表示失败
|
||||
函数功能:获取当前入队成功计数
|
||||
函数名称:smart_get_inque_ok_cnt
|
||||
输入参数: queid
|
||||
返回类型:int
|
||||
返回值 : 小于等于0表示失败
|
||||
函数功能:获取当前入队成功计数
|
||||
*/
|
||||
|
||||
extern int smart_get_inque_ok_cnt(int queid);
|
||||
|
||||
/*
|
||||
函数名称:smart_get_inque_failed_cnt
|
||||
输入参数: queid
|
||||
返回类型:int
|
||||
返回值 ; 小于等于0表示失败
|
||||
函数功能:获取当前入队失败计数
|
||||
函数名称:smart_get_inque_failed_cnt
|
||||
输入参数: queid
|
||||
返回类型:int
|
||||
返回值 : 小于等于0表示失败
|
||||
函数功能:获取当前入队失败计数
|
||||
*/
|
||||
|
||||
extern int smart_get_inque_failed_cnt(int queid);
|
||||
|
||||
/*
|
||||
函数名称:smart_get_outque_ok_cnt
|
||||
输入参数: queid
|
||||
返回类型:int
|
||||
返回值 ; 小于等于0表示失败
|
||||
函数功能:获取当前出队成功计数
|
||||
函数名称:smart_get_outque_ok_cnt
|
||||
输入参数: queid
|
||||
返回类型:int
|
||||
返回值:小于等于0表示失败
|
||||
函数功能:获取当前出队成功计数
|
||||
*/
|
||||
|
||||
extern int smart_get_outque_ok_cnt(int queid);
|
||||
|
||||
/*
|
||||
函数名称:smart_get_outque_failed_cnt
|
||||
输入参数: queid
|
||||
返回类型:int
|
||||
返回值 ; 小于等于0表示失败
|
||||
函数功能:获取当前出队失败计数
|
||||
函数名称:smart_get_outque_failed_cnt
|
||||
输入参数: queid
|
||||
返回类型:int
|
||||
返回值: 0表示成功,非0表示失败
|
||||
函数功能:获取当前出队失败计数
|
||||
*/
|
||||
|
||||
extern int smart_get_outque_failed_cnt(int queid);
|
||||
|
@ -1,26 +0,0 @@
|
||||
#ifndef __OSP_IO_H__
|
||||
#define __OSP_IO_H__
|
||||
|
||||
extern int osp_atoi(char *str);
|
||||
extern char * osp_strchr(const char *str, int ch);
|
||||
extern int osp_strlen(const char * str);
|
||||
extern int osp_strcmp(const char *source,const char *dest);
|
||||
extern int osp_strncmp(const char *first,const char *last,int count);
|
||||
extern unsigned long my_strnlen(const char *s, int count);
|
||||
extern char * osp_itoa(int n, char * chBuffer);
|
||||
extern char * osp_strcat(char * dest, const char * src);
|
||||
extern char *osp_strcpy(char *strDest, const char *strSrc);
|
||||
extern unsigned long osp_strtoul(const char *cp,char **endp,unsigned int base);
|
||||
extern char * osp_strstr (register char *buf, register char *sub);
|
||||
extern char* osp_strtok(char* string_org,const char* demial);
|
||||
extern void *osp_memcpy(void *dst, const void *src, int len);
|
||||
extern void *osp_memset (void *s,int c,int n);
|
||||
extern int osp_printf(const char *fmt, ...);
|
||||
/*
|
||||
函数名称:print_init
|
||||
函数参数:uart_id
|
||||
函数功能:打印组件初始化
|
||||
*/
|
||||
extern int print_init(int uart_id);
|
||||
|
||||
#endif
|
BIN
public/rtos/code/hw_q_code/lib/libhwque.a
Normal file
BIN
public/rtos/code/hw_q_code/lib/libhwque.a
Normal file
Binary file not shown.
@ -17,11 +17,7 @@
|
||||
__ucps2_interrupt5:
|
||||
SEQ: IntEn (Disable);
|
||||
AGU:[ISP + -116] = R1;
|
||||
/*
|
||||
SCU: R1 = 0x04a8 (E); //test intcontex
|
||||
SCU: R1 = 0x0008 (L); //test intcontex
|
||||
AGU: R1 =[R1 +0x0]; //test intcontex
|
||||
*/
|
||||
|
||||
AGU:[ISP + -120] = R2;
|
||||
AGU:[ISP + -124] = R3;
|
||||
AGU:[ISP + -128] = R4;
|
||||
@ -70,20 +66,9 @@ __ucps2_interrupt5:
|
||||
|
||||
//------------disable intflags-----------------
|
||||
|
||||
// SCU: R1 = %ucp_int_disable (L)(E)(U);
|
||||
// SCU: R1 = %ucp_int_disable;
|
||||
// SEQ: call R1;
|
||||
/*
|
||||
SCU:R10 = 0x4000(E); //test intcontex
|
||||
SCU:R10 = 0x0010(L); //test intcontex
|
||||
AGU: [R10 + 0x0] = R1; //test intcontex
|
||||
*/
|
||||
SCU:R1 = %isr_entry (L)(E)(U);
|
||||
SCU:R1 = %isr_entry ;
|
||||
SEQ:call R1;
|
||||
// SCU: R1 = %ucp_int_enble (L)(E)(U);
|
||||
// SCU: R1 = %ucp_int_enble;
|
||||
// SEQ: call R1;
|
||||
SCU:R1 = %isr_entry (L)(E)(U);
|
||||
SCU:R1 = %isr_entry ;
|
||||
SEQ:call R1;
|
||||
|
||||
//---------- user's coding area end ----------------
|
||||
|
||||
@ -99,7 +84,7 @@ __ucps2_reg_restore5:
|
||||
AGU:R31 = [IFP + -228];
|
||||
AGU:R30 = [IFP + -224];
|
||||
// AGU:IFP = [IFP + -220];
|
||||
// AGU:DFP = [IFP + -216];
|
||||
// AGU:DFP = [IFP + -216];
|
||||
AGU:R25 = [IFP + -212];
|
||||
AGU:R24 = [IFP + -208];
|
||||
AGU:R23 = [IFP + -204];
|
49
public/rtos/code/interrupt_code/Src/alg.s.c
Normal file
49
public/rtos/code/interrupt_code/Src/alg.s.c
Normal file
@ -0,0 +1,49 @@
|
||||
#include "alg.h"
|
||||
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned char uint8_t;
|
||||
|
||||
static const char lsb_bitmap[] ={
|
||||
0,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,
|
||||
5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,
|
||||
6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,
|
||||
5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,
|
||||
7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,
|
||||
5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,
|
||||
6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,
|
||||
5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,
|
||||
};
|
||||
|
||||
int find_lsb(uint32_t ui32)
|
||||
{
|
||||
uint16_t usmsw = (uint16_t)(ui32 >> 16);
|
||||
uint16_t uslsw = (uint16_t)(ui32 & 0xffff);
|
||||
uint8_t ubyte;
|
||||
if(uslsw)
|
||||
{
|
||||
ubyte = (uint8_t)(uslsw & 0xff);
|
||||
if(ubyte)
|
||||
{
|
||||
return (lsb_bitmap[ubyte]);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (lsb_bitmap[(uint8_t)(uslsw >> 8)] + 8 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ubyte = (uint8_t)(usmsw & 0xff);
|
||||
if(ubyte)
|
||||
{
|
||||
return (lsb_bitmap[ubyte] + 16 );
|
||||
}
|
||||
else
|
||||
{
|
||||
return (lsb_bitmap[(uint8_t)(usmsw >> 8)] + 24 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
465
public/rtos/code/interrupt_code/Src/inter_vector.s.c
Normal file
465
public/rtos/code/interrupt_code/Src/inter_vector.s.c
Normal file
@ -0,0 +1,465 @@
|
||||
#include "ucps2-intrin.h"
|
||||
#include "inter_vector.h"
|
||||
#include "csu.h"
|
||||
#include "pet_ctrl.h"
|
||||
#include "ucp_sfr_c.h"
|
||||
#include "ucp_js_ctrl.h"
|
||||
#include "ucp_param.h"
|
||||
#include "gs_que.h"
|
||||
#include "error.h"
|
||||
|
||||
#include "alg.h"
|
||||
|
||||
#define DEBUG_OFF 0
|
||||
#define bit_32 32
|
||||
#define bit_64 64
|
||||
|
||||
#define APEID_ADDR 0x931FFF0
|
||||
#define NULL ((void*)0)
|
||||
#define INTR_NR 32
|
||||
#define DBG_ON 1
|
||||
#define MAX_IRQ_NUM 512
|
||||
#define do_write(a,v) __ucps2_store_ext_mem((void *)a, (uint32_t)v, f_W)
|
||||
#define do_read(ptr) __ucps2_load_ext_mem_v((char*)ptr, f_W)
|
||||
#define IRQ_TRACPOINT_SIZE 0x92c
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct{
|
||||
int reg_vec_count;
|
||||
int reg_vec_buf[INTR_NR];
|
||||
int irq_count[INTR_NR];
|
||||
irq_handler pfun[INTR_NR];
|
||||
|
||||
}vec_desc;
|
||||
|
||||
|
||||
vec_desc inter_vec_val;
|
||||
int val_cnt;
|
||||
int irq_num_tatal_cnt;
|
||||
uint32_t g_apeid;
|
||||
uint32_t apcid_set[12] = {0,0,1,1,2,2,3,3,4,4,5,5};
|
||||
uint32_t mask_array[16] = {0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60};
|
||||
uint32_t apcid_ad_val[] = {0,64,128,192};
|
||||
uint32_t debug_enable = 0;
|
||||
uint32_t debug_addr = 0;
|
||||
|
||||
uint32_t reg_cnt = 0;
|
||||
|
||||
uint32_t irq_check_cnt = 0;
|
||||
uint32_t irq_clear_cnt = 0;
|
||||
uint32_t cpuid_limit[12] = {1,0,1,0,1,0,1,0,1,0,1,0};
|
||||
//irq_num_info info;
|
||||
uint32_t g_mask;
|
||||
|
||||
irq_debug_t *debug_info;
|
||||
|
||||
|
||||
uint32_t irq_cnt = 0;
|
||||
uint32_t fun_cnt_s_c = 0;
|
||||
uint32_t fun_cnt_e_c = 0;
|
||||
uint32_t is_irq_context = 0;
|
||||
|
||||
uint32_t cpuid_times = 0;
|
||||
int val_cnt;
|
||||
uint32_t global_int_cnt[512] = {0};
|
||||
|
||||
|
||||
void __ucps2_interrupt5();
|
||||
|
||||
|
||||
/**************************************
|
||||
|
||||
******/
|
||||
|
||||
static int get_apcid()
|
||||
{
|
||||
return apcid_set[g_apeid];
|
||||
}
|
||||
|
||||
vec_desc *get_vec_desc()
|
||||
{
|
||||
return &inter_vec_val;
|
||||
}
|
||||
|
||||
|
||||
#if DEBUG_OFF
|
||||
#define irq_debug(add,b) (0)
|
||||
#else
|
||||
static void irq_debug(void * addr, uint32_t v)
|
||||
{
|
||||
if(debug_enable == 1)
|
||||
{
|
||||
do_write(addr, v);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static uint32_t get_int_status_reg(uint32_t vector,int apcid)
|
||||
{
|
||||
int mask_val;
|
||||
int bit_val;
|
||||
int load_val;
|
||||
mask_val = vector>>5;
|
||||
bit_val = (vector)&(bit_32 -1);
|
||||
if((apcid >= 0)&&(apcid < 4))
|
||||
{
|
||||
load_val = do_read((SYSCFG_BASE_ADDR + 1248 + mask_array[mask_val] + apcid_ad_val[apcid]));
|
||||
return load_val;
|
||||
}
|
||||
else if(apcid == 4)
|
||||
{
|
||||
load_val = do_read((PET_CTRL_BASE + 100*4 + mask_val*4 ));
|
||||
return load_val;
|
||||
}
|
||||
else if(apcid == 5)
|
||||
{
|
||||
load_val = do_read((JECS_CTRL_BASE + 40*4 + mask_val*4 ));
|
||||
return load_val;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int irq_csu_clear_is_ok(int irq_num)
|
||||
{
|
||||
if (0 ==(APC_CSU_ALLPENDEVENT0 & (1<<(irq_num & 31))))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void isr_entry()
|
||||
{
|
||||
is_irq_context = 1;
|
||||
++irq_cnt;
|
||||
vec_desc *vec_val = &inter_vec_val;
|
||||
unsigned int val;
|
||||
int k;
|
||||
int irq_num_bit;
|
||||
uint32_t sys_status;
|
||||
uint32_t bit_val = 0;
|
||||
g_mask = APC_CSU_INTMASKL;
|
||||
APC_CSU_INTMASKL = 0;
|
||||
__ucps2_synch(0);
|
||||
irq_debug(&(debug_info->irq_cnt), irq_cnt);
|
||||
irq_debug(&(debug_info->apc_csu_allpendevent0), APC_CSU_ALLPENDEVENT0);
|
||||
|
||||
// val = APC_CSU_ALLPENDEVENT0 & APC_CSU_INTMASKL;
|
||||
val = APC_CSU_ALLPENDEVENT0 & g_mask;
|
||||
|
||||
while (val != 0)
|
||||
{
|
||||
bit_val = find_lsb(val);
|
||||
for (k = 0; k < (vec_val->reg_vec_count); k++)
|
||||
{
|
||||
irq_num_bit = (vec_val->reg_vec_buf[k]) & (bit_32 - 1);
|
||||
sys_status = get_int_status_reg(vec_val->reg_vec_buf[k], apcid_set[g_apeid]);
|
||||
irq_debug(&(debug_info->irq_sys_status[vec_val->reg_vec_buf[k] >> 5]), sys_status);
|
||||
if ((bit_val == irq_num_bit) && (sys_status & (1 << irq_num_bit)))
|
||||
{
|
||||
if(vec_val->pfun[k] != NULL)
|
||||
{
|
||||
fun_cnt_s_c++;
|
||||
irq_debug(&(debug_info->fun_start_cnt_all), fun_cnt_s_c);
|
||||
global_int_cnt[vec_val->reg_vec_buf[k]]++;
|
||||
irq_debug(&(debug_info->fun_run_cnt[vec_val->reg_vec_buf[k]]),global_int_cnt[vec_val->reg_vec_buf[k]]);
|
||||
irq_debug(&(debug_info->cur_irq_num),vec_val->reg_vec_buf[k]);
|
||||
vec_val->pfun[k]();
|
||||
__ucps2_synch(0);
|
||||
APC_CSU_EVENTINTCLEAR = ((vec_val->reg_vec_buf[k]) & 31);
|
||||
__ucps2_synch(0);
|
||||
fun_cnt_e_c++;
|
||||
irq_debug(&(debug_info->fun_end_cnt_all),fun_cnt_e_c);
|
||||
}
|
||||
}
|
||||
}
|
||||
val &= ~(1 << bit_val);
|
||||
}
|
||||
|
||||
APC_CSU_INTMASKL = g_mask;
|
||||
__ucps2_synch(0);
|
||||
is_irq_context = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************
|
||||
|
||||
***************************************************/
|
||||
|
||||
int smart_irq_init(int cpuid)
|
||||
{
|
||||
int i;
|
||||
int32_t addr = (int32_t)__ucps2_interrupt5;
|
||||
if((cpuid < 0)||(cpuid > 11))
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
g_apeid = cpuid;
|
||||
for(i = 0; i < 32;i++)
|
||||
{
|
||||
inter_vec_val.pfun[i] = NULL;
|
||||
}
|
||||
__ucps2_IntAddr(addr);
|
||||
__ucps2_IntEn(f_Enable);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int smart_get_cpuid()
|
||||
{
|
||||
int apeid;
|
||||
if(cpuid_times != 0)
|
||||
{
|
||||
return g_apeid;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_apeid = *(volatile unsigned int*)APEID_ADDR;
|
||||
__ucps2_synch(0);
|
||||
cpuid_times = 1;
|
||||
}
|
||||
|
||||
return g_apeid;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
*/
|
||||
int smart_irq_request(uint32_t vector, irq_handler func)
|
||||
{
|
||||
int mask_val;
|
||||
int i= 0;
|
||||
int bit_val;
|
||||
int apcid;
|
||||
int load_val;
|
||||
int cpuid = g_apeid;
|
||||
if(vector > FUN_IRQ_MAX_NUM - 1)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
if (is_irq_context)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
if((cpuid < 0)||(cpuid > 11))
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
__ucps2_IntEn(f_Disable);
|
||||
for(i = 0; i < inter_vec_val.reg_vec_count;i++)
|
||||
{
|
||||
if(vector == inter_vec_val.reg_vec_buf[i])
|
||||
{
|
||||
return -EREREG;
|
||||
}
|
||||
}
|
||||
mask_val = vector>>5;
|
||||
bit_val = (vector)&(bit_32 -1);
|
||||
apcid = apcid_set[cpuid];
|
||||
|
||||
if(apcid ==4)
|
||||
{
|
||||
load_val = do_read((PET_CTRL_BASE + 280 + mask_val*4 ));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((PET_CTRL_BASE + 280 + mask_val*4 ),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else if(apcid == 5)
|
||||
{
|
||||
load_val = do_read((JECS_CTRL_BASE + 40 + mask_val*4 ));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((JECS_CTRL_BASE + 40 + mask_val*4 ),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
load_val = do_read((SYSCFG_BASE_ADDR + 720 + mask_val*4 + apcid*bit_64));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((SYSCFG_BASE_ADDR + 720 + mask_val*4 + apcid*bit_64),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
__ucps2_synch(0);
|
||||
|
||||
reg_cnt++;
|
||||
irq_debug(&(debug_info->irq_sys_mask[mask_val]), load_val);
|
||||
irq_debug(&(debug_info->reg_irq_val[reg_cnt]), vector);
|
||||
irq_debug(&(debug_info->reg_irq_cnt), reg_cnt);
|
||||
irq_debug(&(debug_info->reg_irq_cpu_id), cpuid);
|
||||
APC_CSU_INTMASKL |= (1 << bit_val);
|
||||
__ucps2_synch(0);
|
||||
inter_vec_val.reg_vec_buf[inter_vec_val.reg_vec_count] = vector;
|
||||
inter_vec_val.pfun[inter_vec_val.reg_vec_count] = func;
|
||||
inter_vec_val.reg_vec_count++;
|
||||
__ucps2_IntEn(f_Enable);
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
int smart_irq_enable(uint32_t vector)
|
||||
{
|
||||
int mask_val;
|
||||
int bit_val;
|
||||
int apcid;
|
||||
int load_val;
|
||||
int cpuid = g_apeid;
|
||||
|
||||
if(vector > FUN_IRQ_MAX_NUM - 1)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
mask_val = vector>>5;
|
||||
bit_val = (vector)&(bit_32 -1);
|
||||
apcid = apcid_set[cpuid];
|
||||
__ucps2_IntEn(f_Disable);
|
||||
if(apcid ==4)
|
||||
{
|
||||
load_val = do_read((PET_CTRL_BASE + 280 + mask_val*4 ));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((PET_CTRL_BASE + 280 + mask_val*4 ),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else if(apcid == 5)
|
||||
{
|
||||
load_val = do_read((JECS_CTRL_BASE + 40 + mask_val*4 ));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((JECS_CTRL_BASE + 40 + mask_val*4 ),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
load_val = do_read((SYSCFG_BASE_ADDR + 720 + mask_val*4 + apcid*bit_64));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((SYSCFG_BASE_ADDR + 720 + mask_val*4 + apcid*bit_64),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
__ucps2_IntEn(f_Enable);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int smart_irq_disable(uint32_t vector)
|
||||
{
|
||||
int mask_val;
|
||||
int i= 0;
|
||||
int bit_val;
|
||||
int apcid;
|
||||
int load_val;
|
||||
int cpuid = g_apeid;
|
||||
|
||||
if(vector > FUN_IRQ_MAX_NUM - 1)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
mask_val = vector>>5;
|
||||
bit_val = (vector)&(bit_32 -1);
|
||||
apcid = apcid_set[cpuid];
|
||||
__ucps2_IntEn(f_Disable);
|
||||
if(apcid ==4)
|
||||
{
|
||||
load_val = do_read((PET_CTRL_BASE + 70*4 + mask_val*4 ));
|
||||
load_val &= ~(1<<bit_val);
|
||||
do_write((PET_CTRL_BASE + 70*4 + mask_val*4 ),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else if(apcid == 5)
|
||||
{
|
||||
load_val = do_read((JECS_CTRL_BASE + 10*4 + mask_val*4 ));
|
||||
load_val &= ~(1<<bit_val);
|
||||
do_write((JECS_CTRL_BASE + 10*4 + mask_val*4),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
load_val = do_read((SYSCFG_BASE_ADDR + 180*4 + mask_val*4 + apcid*bit_64));
|
||||
load_val &= ~(1<<bit_val);
|
||||
do_write((SYSCFG_BASE_ADDR + 180*4 + mask_val*4 + apcid*bit_64),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
__ucps2_IntEn(f_Enable);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
******/
|
||||
|
||||
int smart_irq_debug_init(uint32_t debug_base_addr, uint32_t len_bytes)
|
||||
{
|
||||
if (debug_base_addr <= 0x10000000)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (len_bytes < IRQ_TRACPOINT_SIZE)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
|
||||
debug_enable = 1;
|
||||
debug_addr = debug_base_addr;
|
||||
|
||||
debug_info = (irq_debug_t *)debug_addr;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t smart_irq_get_type_cnt(irq_cnt_type_t num_type)
|
||||
{
|
||||
uint32_t val = 0;
|
||||
switch (num_type)
|
||||
{
|
||||
case all_irq:
|
||||
val = irq_cnt;
|
||||
break;
|
||||
|
||||
case fun_s:
|
||||
val = fun_cnt_s_c;
|
||||
break;
|
||||
|
||||
case fun_e:
|
||||
val = fun_cnt_e_c;
|
||||
break;
|
||||
|
||||
/*case clear_cnt_error:
|
||||
val = irq_clear_cnt;
|
||||
break;
|
||||
|
||||
case irq_check_error:
|
||||
val = irq_check_cnt;
|
||||
break;*/
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
int smart_irq_get_run_cnt(uint32_t irqnum)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (irqnum > (MAX_IRQ_NUM-1))
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return global_int_cnt[irqnum];
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
150
public/rtos/code/interrupt_code/inc/inter_vector.h
Normal file
150
public/rtos/code/interrupt_code/inc/inter_vector.h
Normal file
@ -0,0 +1,150 @@
|
||||
#ifndef __INTER_MSG_REG_H__
|
||||
#define __INTER_MSG_REG_H__
|
||||
|
||||
|
||||
#define FUN_IRQ_MAX_NUM 512
|
||||
#define IRQ_MAX_NUM 32
|
||||
#define IRQ_SYS_MASK_NUM 16
|
||||
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned int UINT32;
|
||||
|
||||
typedef void (*irq_handler)();
|
||||
|
||||
typedef enum
|
||||
{
|
||||
all_irq,
|
||||
fun_s,
|
||||
fun_e,
|
||||
// clear_cnt_error,
|
||||
// irq_check_error
|
||||
|
||||
}irq_cnt_type_t;
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef signed int int32_t;
|
||||
|
||||
|
||||
|
||||
typedef struct {
|
||||
|
||||
uint32_t reg_irq_cnt; //0x00
|
||||
uint32_t reg_irq_val[IRQ_MAX_NUM]; //0x04-0x80
|
||||
|
||||
uint32_t reg_irq_cpu_id; //0x84
|
||||
|
||||
uint32_t irq_cnt; //0x88
|
||||
|
||||
uint32_t fun_start_cnt_all; //0x8c
|
||||
uint32_t fun_end_cnt_all; //0x90
|
||||
uint32_t cur_irq_num; //0x94
|
||||
uint32_t fun_run_cnt[FUN_IRQ_MAX_NUM]; //0x98-0x894
|
||||
|
||||
// uint32_t last_irq_num; //0x8a4
|
||||
|
||||
uint32_t irq_sys_mask[IRQ_SYS_MASK_NUM]; //0x898 -0x8d4
|
||||
uint32_t irq_sys_status[IRQ_SYS_MASK_NUM]; //0x8d4 -0x914
|
||||
uint32_t apc_csu_allpendevent0; //0x918
|
||||
uint32_t apc_csu_intmaskl; //0x91c
|
||||
|
||||
|
||||
}irq_debug_t;
|
||||
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_request
|
||||
输入参数: vector
|
||||
输入参数:func
|
||||
返回类型: int
|
||||
返回值: 小于0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能: 中断注册接口
|
||||
*/
|
||||
extern int smart_irq_request(uint32_t vector,irq_handler func);
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_enable
|
||||
输入参数: vector
|
||||
返回类型: int
|
||||
返回值: 小于0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能: 中断使能接口
|
||||
*/
|
||||
|
||||
extern int smart_irq_enable(uint32_t vector);
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_disable
|
||||
输入参数: vector
|
||||
返回类型: int
|
||||
返回值: 小于0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能: 中断去使能接口
|
||||
*/
|
||||
|
||||
extern int smart_irq_disable(uint32_t vector);
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_debug_init
|
||||
输入参数: debug_base_addr
|
||||
输入参数:len_bytes
|
||||
返回类型: int
|
||||
返回值: 小于0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能: 中断调试接口,
|
||||
注意:
|
||||
通过地址与,长度指定相应的buf 数据空间,存放相应的中断调试信息。
|
||||
这些调试信息已经格式化,地址由用户指定,len_bytes 不能小于sizeof(irq_debug_t)
|
||||
数据格式化内容是 irq_debug_t
|
||||
*/
|
||||
|
||||
extern int smart_irq_debug_init(uint32_t debug_base_addr, uint32_t len_bytes);
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_get_type_cnt
|
||||
输入参数: num_type
|
||||
返回类型: int
|
||||
返回值: 0 表示当前type 类型计数为0
|
||||
返回值: 非0 表示当前type 类型有计数
|
||||
函数功能: 获取某种中断计数
|
||||
*/
|
||||
|
||||
extern uint32_t smart_irq_get_type_cnt(irq_cnt_type_t num_type);
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_get_run_cnt
|
||||
输入参数: irq_num:中断号
|
||||
返回类型: int
|
||||
返回值: 小于0 表示获取失败。输入参数有问题
|
||||
返回值: 为0 表示相应中断没有触发
|
||||
返回值: 非0 表示中断产生的次数
|
||||
函数功能:获取相应中断号的中断计数
|
||||
*/
|
||||
|
||||
extern int smart_irq_get_run_cnt(uint32_t irqnum);
|
||||
|
||||
/*
|
||||
函数名称:smart_get_cpuid
|
||||
输入参数: 无
|
||||
返回类型: int
|
||||
返回值: 当前的cpuid 号
|
||||
函数功能:获取当前核cpuid 号
|
||||
*/
|
||||
|
||||
extern int smart_get_cpuid();
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_init
|
||||
输入参数: cpuid
|
||||
返回类型: int
|
||||
返回值: 非0 初始化失败
|
||||
函数功能:中断初始化
|
||||
*/
|
||||
|
||||
extern int smart_irq_init(int cpuid);
|
||||
|
||||
|
||||
#endif
|
@ -1,126 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.smartlogic.mapu.build.ucp2.staticlib.debug.1890016445">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.smartlogic.mapu.build.ucp2.staticlib.debug.1890016445" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings>
|
||||
<externalSetting>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/interrupt"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/interrupt/Debug"/>
|
||||
<entry flags="RESOLVED" kind="libraryFile" name="interrupt" srcPrefixMapping="" srcRootPath=""/>
|
||||
</externalSetting>
|
||||
</externalSettings>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" description="" id="com.smartlogic.mapu.build.ucp2.staticlib.debug.1890016445" name="Debug" parent="com.smartlogic.mapu.build.ucp2.staticlib.debug" postbuildStep="">
|
||||
<folderInfo id="com.smartlogic.mapu.build.ucp2.staticlib.debug.1890016445." name="/" resourcePath="">
|
||||
<toolChain id="com.smartlogic.mapu.build.toolChain.ucp2.staticlib.debug.768002337" name="UCP2 static Toolchain" superClass="com.smartlogic.mapu.build.toolChain.ucp2.staticlib.debug">
|
||||
<targetPlatform archList="ucps2,ucpm2" binaryParser="org.eclipse.cdt.core.ELF" id="com.smartlogic.mapu.build.static.targetPlatform.ucp2.487739093" isAbstract="false" name="MaPU UCP2 Platform" osList="all" superClass="com.smartlogic.mapu.build.static.targetPlatform.ucp2"/>
|
||||
<builder buildPath="${workspace_loc:/interrupt}/Debug" id="com.smartlogic.mapu.build.builder.ucp2.staticlib.1912648636" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.smartlogic.mapu.build.builder.ucp2.staticlib"/>
|
||||
<tool id="cdt.mapu.managedbuild.tool.llvm.c.compiler.lib.ucp2.1781190333" name="Clang" superClass="cdt.mapu.managedbuild.tool.llvm.c.compiler.lib.ucp2">
|
||||
<option id="mapu.llvm.c_cpp.compiler.option.optimization.level.1941858287" name="Optimization Level" superClass="mapu.llvm.c_cpp.compiler.option.optimization.level" value="mapu.llvm.c_cpp.compiler.optimization.level.none" valueType="enumerated"/>
|
||||
<option id="mapu.llvm.c_cpp.compiler.option.debugging.level.2035733028" name="Debug Level" superClass="mapu.llvm.c_cpp.compiler.option.debugging.level"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="mapu.llvm.c_cpp.compiler.option.include.paths.1632606459" name="Include paths (-I)" superClass="mapu.llvm.c_cpp.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="../inc"/>
|
||||
</option>
|
||||
<inputType id="cdt.mapu.managedbuild.tool.llvm.c.compiler.input1.1280869863" superClass="cdt.mapu.managedbuild.tool.llvm.c.compiler.input1"/>
|
||||
</tool>
|
||||
<tool id="com.smartlogic.mapu.build.static.tool.llvmmc.ucp2.lib.125736835" name="llvm-mc Assembler" superClass="com.smartlogic.mapu.build.static.tool.llvmmc.ucp2.lib">
|
||||
<option id="com.smartlogic.mapu.build.option.llvmmc.debugging.908947022" name="Debug Level" superClass="com.smartlogic.mapu.build.option.llvmmc.debugging"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="mapu.llvmmc.compiler.option.include.paths.372783453" name="Include" superClass="mapu.llvmmc.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="../inc"/>
|
||||
</option>
|
||||
<inputType id="com.smartlogic.mapu.build.inputType.llvmmc.input.105874229" superClass="com.smartlogic.mapu.build.inputType.llvmmc.input"/>
|
||||
</tool>
|
||||
<tool id="com.smartlogic.mapu.build.static.tool.gnu.ucp2.1446205630" name="GNU archiver" superClass="com.smartlogic.mapu.build.static.tool.gnu.ucp2"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<fileInfo id="com.smartlogic.mapu.build.ucp2.staticlib.debug.1890016445.Src/__ucps2_interrupt.s.asm" name="__ucps2_interrupt.s.asm" rcbsApplicability="disable" resourcePath="Src/__ucps2_interrupt.s.asm" toolsToInvoke="com.smartlogic.mapu.build.static.tool.llvmmc.ucp2.lib.125736835.1726964261">
|
||||
<tool id="com.smartlogic.mapu.build.static.tool.llvmmc.ucp2.lib.125736835.1726964261" name="llvm-mc Assembler" superClass="com.smartlogic.mapu.build.static.tool.llvmmc.ucp2.lib.125736835">
|
||||
<option id="com.smartlogic.mapu.build.option.llvmmc.arch.2104909691" name="arch (-arch)" superClass="com.smartlogic.mapu.build.option.llvmmc.arch" useByScannerDiscovery="false" value="com.smartlogic.mapu.build.llvmmc.arch.ucps2" valueType="enumerated"/>
|
||||
<inputType id="com.smartlogic.mapu.build.inputType.llvmmc.input.1753484815" superClass="com.smartlogic.mapu.build.inputType.llvmmc.input"/>
|
||||
</tool>
|
||||
</fileInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Src"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="dmdata"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="lib"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.smartlogic.mapu.build.ucp2.staticlib.release.300765673">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.smartlogic.mapu.build.ucp2.staticlib.release.300765673" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings>
|
||||
<externalSetting>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/interrupt"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/interrupt/Release"/>
|
||||
<entry flags="RESOLVED" kind="libraryFile" name="interrupt" srcPrefixMapping="" srcRootPath=""/>
|
||||
</externalSetting>
|
||||
</externalSettings>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" id="com.smartlogic.mapu.build.ucp2.staticlib.release.300765673" name="Release" parent="com.smartlogic.mapu.build.ucp2.staticlib.release" postbuildStep=" cp /home/ds5/ape/IDE_wang/workspace/interrupt/Release/libinterrupt.a /home/ds5/ape/IDE/workspace/ape0_inter_demo2/lib/">
|
||||
<folderInfo id="com.smartlogic.mapu.build.ucp2.staticlib.release.300765673." name="/" resourcePath="">
|
||||
<toolChain id="com.smartlogic.mapu.build.toolChain.ucp2.staticlib.release.736279150" name="UCP2 static Toolchain" superClass="com.smartlogic.mapu.build.toolChain.ucp2.staticlib.release">
|
||||
<targetPlatform archList="ucps2,ucpm2" binaryParser="org.eclipse.cdt.core.ELF" id="com.smartlogic.mapu.build.static.targetPlatform.ucp2.1619298899" isAbstract="false" name="MaPU UCP2 Platform" osList="all" superClass="com.smartlogic.mapu.build.static.targetPlatform.ucp2"/>
|
||||
<builder buildPath="${workspace_loc:/interrupt}/Release" id="com.smartlogic.mapu.build.builder.ucp2.staticlib.376294459" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.smartlogic.mapu.build.builder.ucp2.staticlib"/>
|
||||
<tool id="cdt.mapu.managedbuild.tool.llvm.c.compiler.lib.ucp2.1262497861" name="Clang" superClass="cdt.mapu.managedbuild.tool.llvm.c.compiler.lib.ucp2">
|
||||
<option id="mapu.llvm.c_cpp.compiler.option.optimization.level.396841516" name="Optimization Level" superClass="mapu.llvm.c_cpp.compiler.option.optimization.level"/>
|
||||
<option id="mapu.llvm.c_cpp.compiler.option.debugging.level.1587893268" name="Debug Level" superClass="mapu.llvm.c_cpp.compiler.option.debugging.level" value="mapu.llvm.c_cpp.compiler.debugging.level.none" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="mapu.llvm.c_cpp.compiler.option.include.paths.221815110" name="Include paths (-I)" superClass="mapu.llvm.c_cpp.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="../inc"/>
|
||||
</option>
|
||||
<inputType id="cdt.mapu.managedbuild.tool.llvm.c.compiler.input1.1620798060" superClass="cdt.mapu.managedbuild.tool.llvm.c.compiler.input1"/>
|
||||
</tool>
|
||||
<tool id="com.smartlogic.mapu.build.static.tool.llvmmc.ucp2.lib.148512743" name="llvm-mc Assembler" superClass="com.smartlogic.mapu.build.static.tool.llvmmc.ucp2.lib">
|
||||
<option id="com.smartlogic.mapu.build.option.llvmmc.debugging.1682805716" name="Debug Level" superClass="com.smartlogic.mapu.build.option.llvmmc.debugging" value="com.smartlogic.mapu.build.option.llvmmc.debugging.none" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="mapu.llvmmc.compiler.option.include.paths.37882860" name="Include" superClass="mapu.llvmmc.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="../inc"/>
|
||||
</option>
|
||||
<inputType id="com.smartlogic.mapu.build.inputType.llvmmc.input.237875386" superClass="com.smartlogic.mapu.build.inputType.llvmmc.input"/>
|
||||
</tool>
|
||||
<tool id="com.smartlogic.mapu.build.static.tool.gnu.ucp2.1126503581" name="GNU archiver" superClass="com.smartlogic.mapu.build.static.tool.gnu.ucp2"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<fileInfo id="com.smartlogic.mapu.build.ucp2.staticlib.release.300765673.Src/__ucps2_interrupt.s.asm" name="__ucps2_interrupt.s.asm" rcbsApplicability="disable" resourcePath="Src/__ucps2_interrupt.s.asm" toolsToInvoke="com.smartlogic.mapu.build.static.tool.llvmmc.ucp2.lib.148512743.680504920">
|
||||
<tool id="com.smartlogic.mapu.build.static.tool.llvmmc.ucp2.lib.148512743.680504920" name="llvm-mc Assembler" superClass="com.smartlogic.mapu.build.static.tool.llvmmc.ucp2.lib.148512743">
|
||||
<option id="com.smartlogic.mapu.build.option.llvmmc.arch.741698174" name="arch (-arch)" superClass="com.smartlogic.mapu.build.option.llvmmc.arch" useByScannerDiscovery="false" value="com.smartlogic.mapu.build.llvmmc.arch.ucps2" valueType="enumerated"/>
|
||||
<inputType id="com.smartlogic.mapu.build.inputType.llvmmc.input.133481656" superClass="com.smartlogic.mapu.build.inputType.llvmmc.input"/>
|
||||
</tool>
|
||||
</fileInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Src"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="dmdata"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="lib"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="interrupt.com.smartlogic.mapu.build.projectType.ucp2.staticlib.712958039" name="Static Library" projectType="com.smartlogic.mapu.build.projectType.ucp2.staticlib"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
||||
</cproject>
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"project": {
|
||||
"incList": [
|
||||
"../inc"
|
||||
],
|
||||
"libList": []
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>interrupt</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>com.smartlogic.mapu.build.staticlibrary.libraryNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
@ -1,5 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
environment/project/com.smartlogic.mapu.build.ucp2.staticlib.debug.1890016445/append=true
|
||||
environment/project/com.smartlogic.mapu.build.ucp2.staticlib.debug.1890016445/appendContributed=true
|
||||
environment/project/com.smartlogic.mapu.build.ucp2.staticlib.release.300765673/append=true
|
||||
environment/project/com.smartlogic.mapu.build.ucp2.staticlib.release.300765673/appendContributed=true
|
@ -1,47 +0,0 @@
|
||||
Src/inter_vector.s.o: ../Src/inter_vector.s.c \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/inter_vector.h ../inc/csu.h ../inc/pet_ctrl.h \
|
||||
../inc/ucp_sfr_c.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdint.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_intsup.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_stdint.h \
|
||||
../inc/ucp_param.h ../inc/ucp_js_ctrl.h ../inc/dw_apb_timers.h \
|
||||
../inc/gs_que.h ../inc/error.h
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/inter_vector.h:
|
||||
|
||||
../inc/csu.h:
|
||||
|
||||
../inc/pet_ctrl.h:
|
||||
|
||||
../inc/ucp_sfr_c.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdint.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_intsup.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_stdint.h:
|
||||
|
||||
../inc/ucp_param.h:
|
||||
|
||||
../inc/ucp_js_ctrl.h:
|
||||
|
||||
../inc/dw_apb_timers.h:
|
||||
|
||||
../inc/gs_que.h:
|
||||
|
||||
../inc/error.h:
|
@ -1,35 +0,0 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
ASM_SRCS += \
|
||||
../Src/__ucps2_interrupt.s.asm
|
||||
|
||||
C_SRCS += \
|
||||
../Src/inter_vector.s.c
|
||||
|
||||
OBJS += \
|
||||
./Src/__ucps2_interrupt.s.o \
|
||||
./Src/inter_vector.s.o
|
||||
|
||||
C_DEPS += \
|
||||
./Src/inter_vector.s.d
|
||||
|
||||
|
||||
# Each subdirectory must supply rules for building sources it contributes
|
||||
Src/__ucps2_interrupt.s.o: ../Src/__ucps2_interrupt.s.asm
|
||||
@echo 'Building file: $<'
|
||||
@echo 'Invoking: llvm-mc Assembler'
|
||||
$(MaPU_TC_HOME)/bin/ucp2/llvm-mc -arch=ucps2 -g -I../inc -filetype=obj -o "$@" "$<"
|
||||
@echo 'Finished building: $<'
|
||||
@echo ' '
|
||||
|
||||
Src/%.o: ../Src/%.c
|
||||
@echo 'Building file: $<'
|
||||
@echo 'Invoking: Clang'
|
||||
/home/ds5/ape/IDE_wang/toolchain/bin/ucp2/clang --target=ucps2 -I../inc -I/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib -I/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm -O0 -g -Wno-constant-conversion -nostdlibinc -MMD -MP -o "$@" -c "$<"
|
||||
@echo 'Finished building: $<'
|
||||
@echo ' '
|
||||
|
||||
|
@ -1,43 +0,0 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
-include ../makefile.init
|
||||
|
||||
RM := find . -path './build' -prune -o -print -a -type f -not -name '*.mk' -a -not -name '*.ld' -a -not -name 'makefile' -a -not -name 'genhex.sh' -delete & rm -rf
|
||||
|
||||
# All of the sources participating in the build are defined here
|
||||
-include sources.mk
|
||||
-include Src/subdir.mk
|
||||
-include subdir.mk
|
||||
-include objects.mk
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifneq ($(strip $(C_DEPS)),)
|
||||
-include $(C_DEPS)
|
||||
endif
|
||||
endif
|
||||
|
||||
-include ../makefile.defs
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
|
||||
# All Target
|
||||
all: libinterrupt_get32.a
|
||||
|
||||
# Tool invocations
|
||||
libinterrupt_get32.a: $(OBJS)
|
||||
@echo 'Building target: $@'
|
||||
@echo 'Invoking: GNU archiver'
|
||||
ar rcs "libinterrupt_get32.a" $(USER_OBJS) $(OBJS) $(LIBS)
|
||||
@echo 'Finished building target: $@'
|
||||
@echo ' '
|
||||
|
||||
# Other Targets
|
||||
clean:
|
||||
-$(RM) $(LIB)$(OBJS)$(C_DEPS) libinterrupt_get32.a
|
||||
-@echo ' '
|
||||
|
||||
.PHONY: all clean dependents
|
||||
|
||||
-include ../makefile.targets
|
@ -1,8 +0,0 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
USER_OBJS :=
|
||||
|
||||
LIBS :=
|
||||
|
@ -1,596 +0,0 @@
|
||||
#include "ucps2-intrin.h"
|
||||
#include "inter_vector.h"
|
||||
#include "csu.h"
|
||||
#include "pet_ctrl.h"
|
||||
#include "ucp_sfr_c.h"
|
||||
#include "ucp_js_ctrl.h"
|
||||
#include "ucp_param.h"
|
||||
#include "gs_que.h"
|
||||
#include "error.h"
|
||||
|
||||
#include "alg.h"
|
||||
|
||||
#define DEBUG_OFF 0
|
||||
#define bit_32 32
|
||||
#define bit_64 64
|
||||
|
||||
#define APEID_ADDR 0x931FFF0
|
||||
#define NULL ((void*)0)
|
||||
#define INTR_NR 32
|
||||
#define DBG_ON 1
|
||||
#define MAX_IRQ_NUM 512
|
||||
#define do_write(a,v) __ucps2_store_ext_mem((void *)a, (uint32_t)v, f_W)
|
||||
#define do_read(ptr) __ucps2_load_ext_mem_v((char*)ptr, f_W)
|
||||
#define IRQ_TRACPOINT_SIZE 0x92c
|
||||
|
||||
|
||||
/*typedef struct{
|
||||
int irq_num[MAX_IRQ_NUM];
|
||||
int irq_num_tatal;
|
||||
}irq_num_info;*/
|
||||
|
||||
typedef struct{
|
||||
int reg_vec_count;
|
||||
int reg_vec_buf[INTR_NR];
|
||||
int irq_count[INTR_NR];
|
||||
irq_handler pfun[INTR_NR];
|
||||
|
||||
}vec_desc;
|
||||
|
||||
|
||||
vec_desc inter_vec_val;
|
||||
int val_cnt;
|
||||
int irq_num_tatal_cnt;
|
||||
uint32_t g_apeid;
|
||||
uint32_t apcid_set[12] = {0,0,1,1,2,2,3,3,4,4,5,5};
|
||||
uint32_t mask_array[16] = {0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60};
|
||||
uint32_t apcid_ad_val[] = {0,64,128,192};
|
||||
uint32_t debug_enable = 0;
|
||||
uint32_t debug_addr = 0;
|
||||
|
||||
uint32_t reg_cnt = 0;
|
||||
|
||||
uint32_t irq_check_cnt = 0;
|
||||
uint32_t irq_clear_cnt = 0;
|
||||
uint32_t cpuid_limit[12] = {1,0,1,0,1,0,1,0,1,0,1,0};
|
||||
//irq_num_info info;
|
||||
uint32_t g_mask;
|
||||
|
||||
irq_debug_t *debug_info;
|
||||
|
||||
irq_handler irq_func[MAX_IRQ_NUM] = {0};
|
||||
uint32_t irq_func_call_num[MAX_IRQ_NUM] = {0};
|
||||
uint32_t irq_cnt = 0;
|
||||
uint32_t fun_cnt_s_c = 0;
|
||||
uint32_t fun_cnt_e_c = 0;
|
||||
uint32_t is_irq_context = 0;
|
||||
|
||||
uint32_t cpuid_times = 0;
|
||||
int val_cnt;
|
||||
uint32_t global_int_cnt[512] = {0};
|
||||
|
||||
|
||||
void __ucps2_interrupt5();
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
******/
|
||||
|
||||
static int get_apcid()
|
||||
{
|
||||
return apcid_set[g_apeid];
|
||||
}
|
||||
|
||||
vec_desc *get_vec_desc()
|
||||
{
|
||||
return &inter_vec_val;
|
||||
}
|
||||
|
||||
static void clear_csu_apcirq(int vector)
|
||||
{
|
||||
APC_CSU_EVENTINTCLEAR = vector & 31;
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
|
||||
#if DEBUG_OFF
|
||||
#define irq_debug(add,b) (0)
|
||||
#else
|
||||
static void irq_debug(void * addr, uint32_t v)
|
||||
{
|
||||
if(debug_enable == 1)
|
||||
{
|
||||
do_write(addr, v);
|
||||
// __ucps2_synch(0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static uint32_t get_int_status_reg(uint32_t vector,int apcid)
|
||||
{
|
||||
int mask_val;
|
||||
int bit_val;
|
||||
int load_val;
|
||||
mask_val = vector>>5;
|
||||
bit_val = (vector)&(bit_32 -1);
|
||||
if((apcid >= 0)&&(apcid < 4))
|
||||
{
|
||||
load_val = do_read((SYSCFG_BASE_ADDR + 1248 + mask_array[mask_val] + apcid_ad_val[apcid]));
|
||||
return load_val;
|
||||
}
|
||||
else if(apcid == 4)
|
||||
{
|
||||
load_val = do_read((PET_CTRL_BASE + 100*4 + mask_val*4 ));
|
||||
return load_val;
|
||||
}
|
||||
else if(apcid == 5)
|
||||
{
|
||||
load_val = do_read((JECS_CTRL_BASE + 40*4 + mask_val*4 ));
|
||||
return load_val;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int irq_csu_clear_is_ok(int irq_num)
|
||||
{
|
||||
if (0 ==(APC_CSU_ALLPENDEVENT0 & (1<<(irq_num & 31))))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static int get_irq_num_from_csu_reg(void)
|
||||
{
|
||||
int apcid = get_apcid();
|
||||
vec_desc *vec_val = get_vec_desc();
|
||||
unsigned int val;
|
||||
int k;
|
||||
//int j;
|
||||
//int z = 0;
|
||||
//int irq_num,
|
||||
int irq_num_bit;
|
||||
uint32_t sys_status;
|
||||
uint32_t bit_val = 0;
|
||||
|
||||
//p_info->irq_num_tatal = 0;
|
||||
|
||||
irq_debug(&(debug_info->apc_csu_allpendevent0), APC_CSU_ALLPENDEVENT0);
|
||||
irq_debug(&(debug_info->apc_csu_intmaskl), g_mask);
|
||||
// irq_debug(&(debug_info->event_mask_l), APC_CSU_EVENTMASKL);
|
||||
|
||||
val = APC_CSU_ALLPENDEVENT0 & g_mask;
|
||||
// val = APC_CSU_ALLPENDEVENT0 & APC_CSU_INTMASKL;
|
||||
|
||||
while (val != 0)
|
||||
{
|
||||
bit_val = find_lsb(val);
|
||||
for (k = 0; k < (vec_val->reg_vec_count); k++)
|
||||
{
|
||||
irq_num_bit = (vec_val->reg_vec_buf[k]) & (bit_32 - 1);
|
||||
sys_status = get_int_status_reg(vec_val->reg_vec_buf[k], apcid);
|
||||
|
||||
irq_debug(&(debug_info->irq_sys_status[vec_val->reg_vec_buf[k] >> 5]), sys_status);
|
||||
|
||||
if ((bit_val == irq_num_bit) && (sys_status & (1 << irq_num_bit)))
|
||||
{
|
||||
if(vec_val->pfun[k] != NULL)
|
||||
{
|
||||
fun_cnt_s_c++;
|
||||
irq_debug(&(debug_info->fun_start_cnt_all), fun_cnt_s_c);
|
||||
|
||||
// vec_val->irq_count[k]++;
|
||||
// irq_debug(&(debug_info->fun_run_cnt[vec_val->irq_count[k]]),vec_val->irq_count[k]);
|
||||
global_int_cnt[vec_val->reg_vec_buf[k]]++;
|
||||
irq_debug(&(debug_info->fun_run_cnt[vec_val->reg_vec_buf[k]]),global_int_cnt[vec_val->reg_vec_buf[k]]);
|
||||
vec_val->pfun[k]();
|
||||
__ucps2_synch(0);
|
||||
clear_csu_apcirq(vec_val->reg_vec_buf[k]);
|
||||
fun_cnt_e_c++;
|
||||
irq_debug(&(debug_info->fun_end_cnt_all),fun_cnt_e_c);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
val &= ~(1 << bit_val);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int irq_is_registered(int irq_num)
|
||||
{
|
||||
if ((0 == irq_func[irq_num]) )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void clear_mask(void)
|
||||
{
|
||||
g_mask = APC_CSU_INTMASKL;
|
||||
APC_CSU_INTMASKL = 0;
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
|
||||
static void restore_mask(void)
|
||||
{
|
||||
APC_CSU_INTMASKL = g_mask;
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
|
||||
/*
|
||||
void isr_entry()
|
||||
{
|
||||
is_irq_context = 1;
|
||||
|
||||
++irq_cnt;
|
||||
irq_debug(&(debug_info->irq_cnt), irq_cnt);
|
||||
clear_mask();
|
||||
get_irq_num_from_csu_reg();
|
||||
restore_mask();
|
||||
is_irq_context = 0;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
void isr_entry()
|
||||
{
|
||||
is_irq_context = 1;
|
||||
++irq_cnt;
|
||||
// int apcid = apcid_set[g_apeid];
|
||||
vec_desc *vec_val = &inter_vec_val;
|
||||
unsigned int val;
|
||||
int k;
|
||||
int irq_num_bit;
|
||||
uint32_t sys_status;
|
||||
uint32_t bit_val = 0;
|
||||
g_mask = APC_CSU_INTMASKL;
|
||||
APC_CSU_INTMASKL = 0;
|
||||
__ucps2_synch(0);
|
||||
// do_write(0xb7fc0100,irq_cnt);
|
||||
irq_debug(&(debug_info->irq_cnt), irq_cnt);
|
||||
irq_debug(&(debug_info->apc_csu_allpendevent0), APC_CSU_ALLPENDEVENT0);
|
||||
|
||||
// val = APC_CSU_ALLPENDEVENT0 & APC_CSU_INTMASKL;
|
||||
val = APC_CSU_ALLPENDEVENT0 & g_mask;
|
||||
|
||||
while (val != 0)
|
||||
{
|
||||
bit_val = find_lsb(val);
|
||||
for (k = 0; k < (vec_val->reg_vec_count); k++)
|
||||
{
|
||||
irq_num_bit = (vec_val->reg_vec_buf[k]) & (bit_32 - 1);
|
||||
sys_status = get_int_status_reg(vec_val->reg_vec_buf[k], apcid_set[g_apeid]);
|
||||
irq_debug(&(debug_info->irq_sys_status[vec_val->reg_vec_buf[k] >> 5]), sys_status);
|
||||
if ((bit_val == irq_num_bit) && (sys_status & (1 << irq_num_bit)))
|
||||
{
|
||||
if(vec_val->pfun[k] != NULL)
|
||||
{
|
||||
fun_cnt_s_c++;
|
||||
irq_debug(&(debug_info->fun_start_cnt_all), fun_cnt_s_c);
|
||||
// vec_val->irq_count[k]++;
|
||||
global_int_cnt[vec_val->reg_vec_buf[k]]++;
|
||||
irq_debug(&(debug_info->fun_run_cnt[vec_val->reg_vec_buf[k]]),global_int_cnt[vec_val->reg_vec_buf[k]]);
|
||||
irq_debug(&(debug_info->cur_irq_num),vec_val->reg_vec_buf[k]);
|
||||
vec_val->pfun[k]();
|
||||
__ucps2_synch(0);
|
||||
APC_CSU_EVENTINTCLEAR = ((vec_val->reg_vec_buf[k]) & 31);
|
||||
__ucps2_synch(0);
|
||||
fun_cnt_e_c++;
|
||||
irq_debug(&(debug_info->fun_end_cnt_all),fun_cnt_e_c);
|
||||
}
|
||||
}
|
||||
}
|
||||
val &= ~(1 << bit_val);
|
||||
}
|
||||
APC_CSU_INTMASKL = g_mask;
|
||||
__ucps2_synch(0);
|
||||
is_irq_context = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
******/
|
||||
|
||||
int smart_irq_init(int cpuid)
|
||||
{
|
||||
int i;
|
||||
int32_t addr = (int32_t)__ucps2_interrupt5;
|
||||
if((cpuid < 0)||(cpuid > 11))
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
g_apeid = cpuid;
|
||||
for(i = 0; i < 32;i++)
|
||||
{
|
||||
inter_vec_val.pfun[i] = NULL;
|
||||
}
|
||||
__ucps2_IntAddr(addr);
|
||||
__ucps2_IntEn(f_Enable);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int smart_get_cpuid()
|
||||
{
|
||||
int apeid;
|
||||
if(cpuid_times != 0)
|
||||
{
|
||||
return g_apeid;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_apeid = *(volatile unsigned int*)APEID_ADDR;
|
||||
cpuid_times = 1;
|
||||
}
|
||||
return g_apeid;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
*/
|
||||
int smart_irq_request(uint32_t vector, irq_handler func)
|
||||
{
|
||||
int mask_val;
|
||||
int i= 0;
|
||||
int bit_val;
|
||||
int apcid;
|
||||
int load_val;
|
||||
int cpuid = g_apeid;
|
||||
if(vector > FUN_IRQ_MAX_NUM - 1)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
if (is_irq_context)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
if((cpuid < 0)||(cpuid > 11))
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
__ucps2_IntEn(f_Disable);
|
||||
for(i = 0; i < inter_vec_val.reg_vec_count;i++)
|
||||
{
|
||||
if(vector == inter_vec_val.reg_vec_buf[i])
|
||||
{
|
||||
return -EREREG;
|
||||
}
|
||||
}
|
||||
mask_val = vector>>5;
|
||||
bit_val = (vector)&(bit_32 -1);
|
||||
apcid = apcid_set[cpuid];
|
||||
|
||||
if(apcid ==4)
|
||||
{
|
||||
load_val = do_read((PET_CTRL_BASE + 280 + mask_val*4 ));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((PET_CTRL_BASE + 280 + mask_val*4 ),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else if(apcid == 5)
|
||||
{
|
||||
load_val = do_read((JECS_CTRL_BASE + 40 + mask_val*4 ));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((JECS_CTRL_BASE + 40 + mask_val*4 ),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
load_val = do_read((SYSCFG_BASE_ADDR + 720 + mask_val*4 + apcid*bit_64));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((SYSCFG_BASE_ADDR + 720 + mask_val*4 + apcid*bit_64),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
__ucps2_synch(0);
|
||||
|
||||
reg_cnt++;
|
||||
irq_debug(&(debug_info->irq_sys_mask[mask_val]), load_val);
|
||||
irq_debug(&(debug_info->reg_irq_val[reg_cnt]), vector);
|
||||
irq_debug(&(debug_info->reg_irq_cnt), reg_cnt);
|
||||
irq_debug(&(debug_info->reg_irq_cpu_id), cpuid);
|
||||
APC_CSU_INTMASKL |= (1 << bit_val);
|
||||
__ucps2_synch(0);
|
||||
inter_vec_val.reg_vec_buf[inter_vec_val.reg_vec_count] = vector;
|
||||
inter_vec_val.pfun[inter_vec_val.reg_vec_count] = func;
|
||||
inter_vec_val.reg_vec_count++;
|
||||
__ucps2_IntEn(f_Enable);
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
int smart_irq_enable(uint32_t vector)
|
||||
{
|
||||
int mask_val;
|
||||
int bit_val;
|
||||
int apcid;
|
||||
int load_val;
|
||||
int cpuid = g_apeid;
|
||||
/*
|
||||
if ((vector >= (MAX_IRQ_NUM-1)) || !irq_is_registered(vector))
|
||||
{
|
||||
return -EINVAL;
|
||||
}*/
|
||||
if(vector > FUN_IRQ_MAX_NUM - 1)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
mask_val = vector>>5;
|
||||
bit_val = (vector)&(bit_32 -1);
|
||||
apcid = apcid_set[cpuid];
|
||||
__ucps2_IntEn(f_Disable);
|
||||
if(apcid ==4)
|
||||
{
|
||||
load_val = do_read((PET_CTRL_BASE + 280 + mask_val*4 ));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((PET_CTRL_BASE + 280 + mask_val*4 ),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else if(apcid == 5)
|
||||
{
|
||||
load_val = do_read((JECS_CTRL_BASE + 40 + mask_val*4 ));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((JECS_CTRL_BASE + 40 + mask_val*4 ),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
load_val = do_read((SYSCFG_BASE_ADDR + 720 + mask_val*4 + apcid*bit_64));
|
||||
load_val |= (1<<bit_val);
|
||||
do_write((SYSCFG_BASE_ADDR + 720 + mask_val*4 + apcid*bit_64),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
__ucps2_IntEn(f_Enable);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int smart_irq_disable(uint32_t vector)
|
||||
{
|
||||
int mask_val;
|
||||
int i= 0;
|
||||
int bit_val;
|
||||
int apcid;
|
||||
int load_val;
|
||||
int cpuid = g_apeid;
|
||||
/*
|
||||
if ((vector >= (MAX_IRQ_NUM-1)) || !irq_is_registered(vector))
|
||||
{
|
||||
return -1;
|
||||
}*/
|
||||
if(vector > FUN_IRQ_MAX_NUM - 1)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
mask_val = vector>>5;
|
||||
bit_val = (vector)&(bit_32 -1);
|
||||
apcid = apcid_set[cpuid];
|
||||
__ucps2_IntEn(f_Disable);
|
||||
if(apcid ==4)
|
||||
{
|
||||
load_val = do_read((PET_CTRL_BASE + 70*4 + mask_val*4 ));
|
||||
load_val &= ~(1<<bit_val);
|
||||
do_write((PET_CTRL_BASE + 70*4 + mask_val*4 ),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else if(apcid == 5)
|
||||
{
|
||||
load_val = do_read((JECS_CTRL_BASE + 10*4 + mask_val*4 ));
|
||||
load_val &= ~(1<<bit_val);
|
||||
do_write((JECS_CTRL_BASE + 10*4 + mask_val*4),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
load_val = do_read((SYSCFG_BASE_ADDR + 180*4 + mask_val*4 + apcid*bit_64));
|
||||
load_val &= ~(1<<bit_val);
|
||||
do_write((SYSCFG_BASE_ADDR + 180*4 + mask_val*4 + apcid*bit_64),load_val);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
__ucps2_IntEn(f_Enable);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
******/
|
||||
|
||||
int smart_irq_debug_init(uint32_t debug_base_addr, uint32_t len_bytes)
|
||||
{
|
||||
if (debug_base_addr <= 0x10000000)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (len_bytes < IRQ_TRACPOINT_SIZE)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
|
||||
debug_enable = 1;
|
||||
debug_addr = debug_base_addr;
|
||||
|
||||
debug_info = (irq_debug_t *)debug_addr;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t smart_irq_get_type_cnt(irq_cnt_type_t num_type)
|
||||
{
|
||||
uint32_t val = 0;
|
||||
switch (num_type)
|
||||
{
|
||||
case all_irq:
|
||||
val = irq_cnt;
|
||||
break;
|
||||
|
||||
case fun_s:
|
||||
val = fun_cnt_s_c;
|
||||
break;
|
||||
|
||||
case fun_e:
|
||||
val = fun_cnt_e_c;
|
||||
break;
|
||||
|
||||
/*case clear_cnt_error:
|
||||
val = irq_clear_cnt;
|
||||
break;
|
||||
|
||||
case irq_check_error:
|
||||
val = irq_check_cnt;
|
||||
break;*/
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
int smart_irq_get_run_cnt(uint32_t irqnum)
|
||||
{
|
||||
int i;
|
||||
/*
|
||||
if (irqnum >= (MAX_IRQ_NUM-1))
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
*/
|
||||
if (irqnum > (MAX_IRQ_NUM-1))
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
/*
|
||||
vec_desc * vec_val = get_vec_desc();
|
||||
for(i = 0; i < vec_val->reg_vec_count;i++)
|
||||
{
|
||||
if(irqnum == vec_val->reg_vec_buf[i])
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(i != vec_val->reg_vec_count)
|
||||
{
|
||||
return vec_val->irq_count[i];
|
||||
|
||||
}
|
||||
*/
|
||||
return global_int_cnt[irqnum];
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -1,150 +0,0 @@
|
||||
#ifndef __INTER_MSG_REG_H__
|
||||
#define __INTER_MSG_REG_H__
|
||||
|
||||
|
||||
#define FUN_IRQ_MAX_NUM 512
|
||||
#define IRQ_MAX_NUM 32
|
||||
#define IRQ_SYS_MASK_NUM 16
|
||||
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned int UINT32;
|
||||
|
||||
typedef void (*irq_handler)();
|
||||
|
||||
typedef enum
|
||||
{
|
||||
all_irq,
|
||||
fun_s,
|
||||
fun_e,
|
||||
// clear_cnt_error,
|
||||
// irq_check_error
|
||||
|
||||
}irq_cnt_type_t;
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef signed int int32_t;
|
||||
|
||||
|
||||
|
||||
typedef struct {
|
||||
|
||||
uint32_t reg_irq_cnt; //0x00
|
||||
uint32_t reg_irq_val[IRQ_MAX_NUM]; //0x04-0x80
|
||||
|
||||
uint32_t reg_irq_cpu_id; //0x84
|
||||
|
||||
uint32_t irq_cnt; //0x88
|
||||
|
||||
uint32_t fun_start_cnt_all; //0x8c
|
||||
uint32_t fun_end_cnt_all; //0x90
|
||||
uint32_t cur_irq_num; //0x94
|
||||
uint32_t fun_run_cnt[FUN_IRQ_MAX_NUM]; //0x98-0x894
|
||||
|
||||
// uint32_t last_irq_num; //0x8a4
|
||||
|
||||
uint32_t irq_sys_mask[IRQ_SYS_MASK_NUM]; //0x894 -0x8d0
|
||||
uint32_t irq_sys_status[IRQ_SYS_MASK_NUM]; //0x8d4 -0x910
|
||||
uint32_t apc_csu_allpendevent0; //0x914
|
||||
uint32_t apc_csu_intmaskl; //0x918
|
||||
|
||||
|
||||
}irq_debug_t;
|
||||
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_request
|
||||
输入参数: vector
|
||||
输入参数:func
|
||||
返回类型: int
|
||||
返回值: 小于0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能: 中断注册接口
|
||||
*/
|
||||
extern int smart_irq_request(uint32_t vector,irq_handler func);
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_enable
|
||||
输入参数: vector
|
||||
返回类型: int
|
||||
返回值: 小于0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能: 中断使能接口
|
||||
*/
|
||||
|
||||
extern int smart_irq_enable(uint32_t vector);
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_disable
|
||||
输入参数: vector
|
||||
返回类型: int
|
||||
返回值: 小于0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能: 中断去使能接口
|
||||
*/
|
||||
|
||||
extern int smart_irq_disable(uint32_t vector);
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_debug_init
|
||||
输入参数: debug_base_addr
|
||||
输入参数:len_bytes
|
||||
返回类型: int
|
||||
返回值: 小于0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能: 中断调试接口,
|
||||
注意:
|
||||
通过地址与,长度指定相应的buf 数据空间,存放相应的中断调试信息。
|
||||
这些调试信息已经格式化,地址由用户指定,len_bytes 不能小于sizeof(irq_debug_t)
|
||||
数据格式化内容是 irq_debug_t
|
||||
*/
|
||||
|
||||
extern int smart_irq_debug_init(uint32_t debug_base_addr, uint32_t len_bytes);
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_get_type_cnt
|
||||
输入参数: num_type
|
||||
返回类型: int
|
||||
返回值: 0 表示当前type 类型计数为0
|
||||
返回值: 非0 表示当前type 类型有计数
|
||||
函数功能: 获取某种中断计数
|
||||
*/
|
||||
|
||||
extern uint32_t smart_irq_get_type_cnt(irq_cnt_type_t num_type);
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_get_run_cnt
|
||||
输入参数: irq_num:中断号
|
||||
返回类型: int
|
||||
返回值: 小于0 表示获取失败。输入参数有问题
|
||||
返回值: 为0 表示相应中断没有触发
|
||||
返回值: 非0 表示中断产生的次数
|
||||
函数功能:获取相应中断号的中断计数
|
||||
*/
|
||||
|
||||
extern int smart_irq_get_run_cnt(uint32_t irqnum);
|
||||
|
||||
/*
|
||||
函数名称:smart_get_cpuid
|
||||
输入参数: 无
|
||||
返回类型: int
|
||||
返回值: 当前的cpuid 号
|
||||
函数功能:获取当前核cpuid 号
|
||||
*/
|
||||
|
||||
extern int smart_get_cpuid();
|
||||
|
||||
/*
|
||||
函数名称:smart_irq_init
|
||||
输入参数: cpuid
|
||||
返回类型: int
|
||||
返回值: 非0 初始化失败
|
||||
函数功能:中断初始化
|
||||
*/
|
||||
|
||||
extern int smart_irq_init(int cpuid);
|
||||
|
||||
|
||||
#endif
|
@ -1,12 +0,0 @@
|
||||
# set custom targets
|
||||
|
||||
# set toolchain home
|
||||
ifeq ($(strip $(MaPU_TC_HOME)),)
|
||||
MaPU_TC_HOME := /home/wangchongyang/my_work/IDE/toolchain
|
||||
endif
|
||||
|
||||
APP: all
|
||||
|
||||
LIB: libinterrupt.a
|
||||
|
||||
.PHONY: LIB APP
|
BIN
public/rtos/code/interrupt_code/lib/libinterrupt.a
Normal file
BIN
public/rtos/code/interrupt_code/lib/libinterrupt.a
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,88 +0,0 @@
|
||||
Src/SmartOS.s.o: ../Src/SmartOS.s.c ../inc/timers.h ../inc/ucos_ii.h \
|
||||
../inc/os_cfg.h ../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h \
|
||||
../inc/SmartOS.h ../inc/mailbox.h ../inc/sem.h ../inc/inter_vector.h
|
||||
|
||||
../inc/timers.h:
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
||||
|
||||
../inc/SmartOS.h:
|
||||
|
||||
../inc/mailbox.h:
|
||||
|
||||
../inc/sem.h:
|
||||
|
||||
../inc/inter_vector.h:
|
@ -1,3 +0,0 @@
|
||||
Src/alg.s.o: ../Src/alg.s.c ../inc/alg.h
|
||||
|
||||
../inc/alg.h:
|
@ -1,33 +0,0 @@
|
||||
Src/func_lib_ape.o: ../Src/func_lib_ape.c ../inc/ucp_sfr_c.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdint.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_intsup.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_stdint.h \
|
||||
../inc/ucp_param.h ../Src/func_lib_ape.h ../inc/pet_ctrl.h \
|
||||
../inc/ucp_js_ctrl.h ../inc/csu.h
|
||||
|
||||
../inc/ucp_sfr_c.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdint.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_intsup.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_stdint.h:
|
||||
|
||||
../inc/ucp_param.h:
|
||||
|
||||
../Src/func_lib_ape.h:
|
||||
|
||||
../inc/pet_ctrl.h:
|
||||
|
||||
../inc/ucp_js_ctrl.h:
|
||||
|
||||
../inc/csu.h:
|
@ -1,120 +0,0 @@
|
||||
Src/inter_vector.s.o: ../Src/inter_vector.s.c \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h ../inc/alg.h \
|
||||
../inc/inter_vector.h ../inc/csu.h ../inc/pet_ctrl.h \
|
||||
../inc/ucp_sfr_c.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdint.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_intsup.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_stdint.h \
|
||||
../inc/ucp_param.h ../inc/ucp_js_ctrl.h ../inc/dw_apb_timers.h \
|
||||
../inc/type_define.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/math.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/tick.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/malloc.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/malloc.h \
|
||||
../inc/gs_que.h ../inc/error.h ../inc/debug.h
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/alg.h:
|
||||
|
||||
../inc/inter_vector.h:
|
||||
|
||||
../inc/csu.h:
|
||||
|
||||
../inc/pet_ctrl.h:
|
||||
|
||||
../inc/ucp_sfr_c.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdint.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_intsup.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_stdint.h:
|
||||
|
||||
../inc/ucp_param.h:
|
||||
|
||||
../inc/ucp_js_ctrl.h:
|
||||
|
||||
../inc/dw_apb_timers.h:
|
||||
|
||||
../inc/type_define.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/math.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/tick.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/malloc.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/malloc.h:
|
||||
|
||||
../inc/gs_que.h:
|
||||
|
||||
../inc/error.h:
|
||||
|
||||
../inc/debug.h:
|
@ -1,5 +0,0 @@
|
||||
Src/mailbox.s.o: ../Src/mailbox.s.c ../inc/ucp_param.h ../inc/mailbox.h
|
||||
|
||||
../inc/ucp_param.h:
|
||||
|
||||
../inc/mailbox.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_core.s.o: ../Src/os_core.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_cpu_c.s.o: ../Src/os_cpu_c.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_dbg_r.s.o: ../Src/os_dbg_r.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_flag.s.o: ../Src/os_flag.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_mbox.s.o: ../Src/os_mbox.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_mem.s.o: ../Src/os_mem.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_mutex.s.o: ../Src/os_mutex.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_q.s.o: ../Src/os_q.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_sem.s.o: ../Src/os_sem.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_task.s.o: ../Src/os_task.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_time.s.o: ../Src/os_time.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,77 +0,0 @@
|
||||
Src/os_tmr.s.o: ../Src/os_tmr.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
@ -1,76 +0,0 @@
|
||||
Src/os_ucp.s.o: ../Src/os_ucp.s.c ../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h \
|
||||
../inc/ucos_ii.h ../inc/os_cfg.h ../inc/os_cpu.h
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
@ -1,80 +0,0 @@
|
||||
Src/sem.s.o: ../Src/sem.s.c ../inc/ucos_ii.h ../inc/os_cfg.h \
|
||||
../inc/os_cpu.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
../inc/os_ucp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h \
|
||||
../inc/sem.h
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
../inc/os_ucp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
||||
|
||||
../inc/sem.h:
|
@ -1,95 +0,0 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
ASM_SRCS += \
|
||||
../Src/__ucps2_interrupt.s.asm
|
||||
|
||||
C_SRCS += \
|
||||
../Src/SmartOS.s.c \
|
||||
../Src/alg.s.c \
|
||||
../Src/func_lib_ape.c \
|
||||
../Src/inter_vector.s.c \
|
||||
../Src/mailbox.s.c \
|
||||
../Src/os_core.s.c \
|
||||
../Src/os_cpu_c.s.c \
|
||||
../Src/os_dbg_r.s.c \
|
||||
../Src/os_flag.s.c \
|
||||
../Src/os_mbox.s.c \
|
||||
../Src/os_mem.s.c \
|
||||
../Src/os_mutex.s.c \
|
||||
../Src/os_q.s.c \
|
||||
../Src/os_sem.s.c \
|
||||
../Src/os_task.s.c \
|
||||
../Src/os_time.s.c \
|
||||
../Src/os_tmr.s.c \
|
||||
../Src/os_ucp.s.c \
|
||||
../Src/sem.s.c \
|
||||
../Src/timer.s.c \
|
||||
../Src/ucos_ii.s.c
|
||||
|
||||
OBJS += \
|
||||
./Src/SmartOS.s.o \
|
||||
./Src/__ucps2_interrupt.s.o \
|
||||
./Src/alg.s.o \
|
||||
./Src/func_lib_ape.o \
|
||||
./Src/inter_vector.s.o \
|
||||
./Src/mailbox.s.o \
|
||||
./Src/os_core.s.o \
|
||||
./Src/os_cpu_c.s.o \
|
||||
./Src/os_dbg_r.s.o \
|
||||
./Src/os_flag.s.o \
|
||||
./Src/os_mbox.s.o \
|
||||
./Src/os_mem.s.o \
|
||||
./Src/os_mutex.s.o \
|
||||
./Src/os_q.s.o \
|
||||
./Src/os_sem.s.o \
|
||||
./Src/os_task.s.o \
|
||||
./Src/os_time.s.o \
|
||||
./Src/os_tmr.s.o \
|
||||
./Src/os_ucp.s.o \
|
||||
./Src/sem.s.o \
|
||||
./Src/timer.s.o \
|
||||
./Src/ucos_ii.s.o
|
||||
|
||||
C_DEPS += \
|
||||
./Src/SmartOS.s.d \
|
||||
./Src/alg.s.d \
|
||||
./Src/func_lib_ape.d \
|
||||
./Src/inter_vector.s.d \
|
||||
./Src/mailbox.s.d \
|
||||
./Src/os_core.s.d \
|
||||
./Src/os_cpu_c.s.d \
|
||||
./Src/os_dbg_r.s.d \
|
||||
./Src/os_flag.s.d \
|
||||
./Src/os_mbox.s.d \
|
||||
./Src/os_mem.s.d \
|
||||
./Src/os_mutex.s.d \
|
||||
./Src/os_q.s.d \
|
||||
./Src/os_sem.s.d \
|
||||
./Src/os_task.s.d \
|
||||
./Src/os_time.s.d \
|
||||
./Src/os_tmr.s.d \
|
||||
./Src/os_ucp.s.d \
|
||||
./Src/sem.s.d \
|
||||
./Src/timer.s.d \
|
||||
./Src/ucos_ii.s.d
|
||||
|
||||
|
||||
# Each subdirectory must supply rules for building sources it contributes
|
||||
Src/%.o: ../Src/%.c
|
||||
@echo 'Building file: $<'
|
||||
@echo 'Invoking: Clang'
|
||||
/home/ds5/ape/IDE_wang/toolchain/bin/ucp2/clang --target=ucps2 -I../inc -I/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib -I/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm -O0 -g -Wno-constant-conversion -nostdlibinc -MMD -MP -o "$@" -c "$<"
|
||||
@echo 'Finished building: $<'
|
||||
@echo ' '
|
||||
|
||||
Src/__ucps2_interrupt.s.o: ../Src/__ucps2_interrupt.s.asm
|
||||
@echo 'Building file: $<'
|
||||
@echo 'Invoking: llvm-mc Assembler'
|
||||
$(MaPU_TC_HOME)/bin/ucp2/llvm-mc -arch=ucps2 -g -I../inc -filetype=obj -o "$@" "$<"
|
||||
@echo 'Finished building: $<'
|
||||
@echo ' '
|
||||
|
||||
|
@ -1,100 +0,0 @@
|
||||
Src/timer.s.o: ../Src/timer.s.c ../inc/type_define.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/math.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/tick.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/malloc.h \
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/malloc.h \
|
||||
../inc/dw_apb_timers.h ../inc/ucp_param.h ../inc/inter_vector.h \
|
||||
../inc/ucos_ii.h ../inc/os_cfg.h ../inc/os_cpu.h ../inc/os_ucp.h
|
||||
|
||||
../inc/type_define.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/ieeefp.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_ansi.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/newlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/_newlib_version.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/config.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/features.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/stddef.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/reent.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/__stddef_max_align_t.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/_default_types.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/lock.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/cdefs.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/stdlib.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/alloca.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/math.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/strings.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/sys/string.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2-intrin.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucp2.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/ucps2.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/llvm/tick.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/malloc.h:
|
||||
|
||||
/home/ds5/ape/IDE_wang/toolchain/include/ucp2/newlib/machine/malloc.h:
|
||||
|
||||
../inc/dw_apb_timers.h:
|
||||
|
||||
../inc/ucp_param.h:
|
||||
|
||||
../inc/inter_vector.h:
|
||||
|
||||
../inc/ucos_ii.h:
|
||||
|
||||
../inc/os_cfg.h:
|
||||
|
||||
../inc/os_cpu.h:
|
||||
|
||||
../inc/os_ucp.h:
|
@ -1 +0,0 @@
|
||||
Src/ucos_ii.s.o: ../Src/ucos_ii.s.c
|
@ -1,43 +0,0 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
-include ../makefile.init
|
||||
|
||||
RM := find . -path './build' -prune -o -print -a -type f -not -name '*.mk' -a -not -name '*.ld' -a -not -name 'makefile' -a -not -name 'genhex.sh' -delete & rm -rf
|
||||
|
||||
# All of the sources participating in the build are defined here
|
||||
-include sources.mk
|
||||
-include Src/subdir.mk
|
||||
-include subdir.mk
|
||||
-include objects.mk
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifneq ($(strip $(C_DEPS)),)
|
||||
-include $(C_DEPS)
|
||||
endif
|
||||
endif
|
||||
|
||||
-include ../makefile.defs
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
|
||||
# All Target
|
||||
all: libsmartos.a
|
||||
|
||||
# Tool invocations
|
||||
libsmartos.a: $(OBJS)
|
||||
@echo 'Building target: $@'
|
||||
@echo 'Invoking: GNU archiver'
|
||||
ar rcs "libsmartos.a" $(USER_OBJS) $(OBJS) $(LIBS)
|
||||
@echo 'Finished building target: $@'
|
||||
@echo ' '
|
||||
|
||||
# Other Targets
|
||||
clean:
|
||||
-$(RM) $(LIB)$(OBJS)$(C_DEPS) libsmartos.a
|
||||
-@echo ' '
|
||||
|
||||
.PHONY: all clean dependents
|
||||
|
||||
-include ../makefile.targets
|
@ -1,8 +0,0 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
USER_OBJS :=
|
||||
|
||||
LIBS :=
|
||||
|
@ -1,15 +0,0 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
ASM_SRCS :=
|
||||
C_SRCS :=
|
||||
O_SRCS :=
|
||||
LIB :=
|
||||
OBJS :=
|
||||
C_DEPS :=
|
||||
|
||||
# Every subdirectory with source files must be described here
|
||||
SUBDIRS := \
|
||||
Src \
|
||||
|
@ -1,15 +0,0 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
ASM_SRCS :=
|
||||
C_SRCS :=
|
||||
O_SRCS :=
|
||||
LIB :=
|
||||
OBJS :=
|
||||
C_DEPS :=
|
||||
|
||||
# Every subdirectory with source files must be described here
|
||||
SUBDIRS := \
|
||||
Src \
|
||||
|
@ -1,191 +1,315 @@
|
||||
#include <ucps2-intrin.h>
|
||||
#include "spinlock.h"
|
||||
|
||||
//#define OSP_APE_SPAIN_LOCK_ADDR 0x931FF00
|
||||
|
||||
#define OSP_APE_SPAIN_LOCK_ADDR (0x931FF00-0x400)
|
||||
|
||||
#define SPINLOCK_BIT_MAP_ADDR (0x931fb40)
|
||||
|
||||
#define DEBUG_NR 16
|
||||
|
||||
#define LOCK_BIND_FLAG_ADDR 0x931ff60
|
||||
unsigned int spin_debug_switch = 0;
|
||||
unsigned int g_unspinlock_loop = 0;
|
||||
unsigned int g_ddr_spinlock_loop = 0;
|
||||
|
||||
#define FREE_VALUE 0x45
|
||||
typedef unsigned int uint32_t;
|
||||
|
||||
#define spin_do_write(a,v) __ucps2_store_ext_mem((void *)a, (uint32_t)v, f_W)
|
||||
#define spin_do_read(ptr) __ucps2_load_ext_mem_v((char*)ptr, f_W)
|
||||
#define spin_do_write(a,v) __ucps2_store_ext_mem((void *)(a), (uint32_t)v, f_W)
|
||||
#define spin_do_read(ptr) __ucps2_load_ext_mem_v((char*)(ptr), f_W)
|
||||
|
||||
|
||||
int spin_debug_switch = 0;
|
||||
|
||||
int g_spinlock_count = 0;
|
||||
int g_unspinlock_count = 0;
|
||||
int g_spinlock_loop = 0;
|
||||
|
||||
unsigned int g_spinlock_count[DEBUG_NR] = {0};
|
||||
unsigned int g_unspinlock_count[DEBUG_NR] = {0};
|
||||
unsigned int g_spinlock_loop[DEBUG_NR] = {0};
|
||||
unsigned int g_spin_count[DEBUG_NR] = {0};
|
||||
|
||||
unsigned char *use_flag = (char*)SPINLOCK_BIT_MAP_ADDR;
|
||||
spin_debug_t *spin_debug_info;
|
||||
|
||||
|
||||
int test_bit(void *s,unsigned int index)
|
||||
static int test_bit(void *s,unsigned int index)
|
||||
{
|
||||
unsigned char *f_bit = s;
|
||||
f_bit += index >>3;
|
||||
return ((*f_bit&(1 <<((index%8)))) != 0);
|
||||
unsigned char *f_bit = s;
|
||||
f_bit += index >>3;
|
||||
return ((*f_bit&(1 <<((index%8)))) != 0);
|
||||
}
|
||||
|
||||
void set_bit(void *s,unsigned int index)
|
||||
static void set_bit(void *s,unsigned int index)
|
||||
{
|
||||
unsigned char *f_bit = s;
|
||||
f_bit += index >> 3;
|
||||
*f_bit |= 1<<(index%8);
|
||||
unsigned char *f_bit = s;
|
||||
f_bit += index >> 3;
|
||||
*f_bit |= 1<<(index%8);
|
||||
}
|
||||
|
||||
void clear_bit(void *s,unsigned int index)
|
||||
static void clear_bit(void *s,unsigned int index)
|
||||
{
|
||||
unsigned char *f_bit = s;
|
||||
f_bit += index >> 3;
|
||||
*f_bit &= ~(1 <<(index%8));
|
||||
unsigned char *f_bit = s;
|
||||
f_bit += index >> 3;
|
||||
*f_bit &= ~(1 <<(index%8));
|
||||
}
|
||||
|
||||
int smart_spin_debug_init(unsigned int debug_base_addr, int len_bytes)
|
||||
/*
|
||||
函数:smart_spin_debug_init
|
||||
参数:lock_idx
|
||||
参数范围:1--15
|
||||
*/
|
||||
|
||||
int smart_spin_debug_init(int lock_idx,unsigned int debug_base_addr, int len_bytes)
|
||||
{
|
||||
if(debug_base_addr <= 0x10000000)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (len_bytes < 12)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
if((lock_idx < 1)||(lock_idx > 15))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if(debug_base_addr <= 0x10000000)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (len_bytes < 16)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
spin_debug_switch = 1;
|
||||
spin_debug_info = (spin_debug_t *)debug_base_addr;
|
||||
spin_debug_info = (spin_debug_t *)debug_base_addr;
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void spin_debug(void * addr , uint32_t v)
|
||||
{
|
||||
if(spin_debug_switch == 1)
|
||||
{
|
||||
spin_do_write(addr, v);
|
||||
}
|
||||
if(spin_debug_switch == 1)
|
||||
{
|
||||
spin_do_write(addr, v);
|
||||
__ucps2_synch(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
int smart_spinlock_init(int lock_index)
|
||||
{
|
||||
int i;
|
||||
if((lock_index < 0)||(lock_index > 15))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if(test_bit(use_flag,lock_index))
|
||||
{
|
||||
return -2; //
|
||||
}
|
||||
set_bit(use_flag,lock_index);
|
||||
*(volatile unsigned int *)(OSP_APE_SPAIN_LOCK_ADDR+lock_index*4) = 0;
|
||||
|
||||
return 0;
|
||||
/*
|
||||
if(*(volatile unsigned int *)(OSP_APE_SPAIN_LOCK_ADDR+lock_index*4) == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else if(*(volatile unsigned int *)(OSP_APE_SPAIN_LOCK_ADDR+lock_index*4) > 0)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
return -1;
|
||||
*/
|
||||
int i;
|
||||
if((lock_index < 1)||(lock_index > 15))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if(test_bit(use_flag,lock_index))
|
||||
{
|
||||
return -2; //
|
||||
}
|
||||
set_bit(use_flag,lock_index);
|
||||
*(volatile unsigned int *)(OSP_APE_SPAIN_LOCK_ADDR+lock_index*4) = 0;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
void smart_spinlock(int lock_index)
|
||||
{
|
||||
spinlock_t lockval;
|
||||
spinlock_t *lock;
|
||||
int ret;
|
||||
int owner;
|
||||
int next;
|
||||
if (lock_index >= SLOCK_MAX)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
lock = (spinlock_t*)(OSP_APE_SPAIN_LOCK_ADDR+lock_index*4);
|
||||
}
|
||||
|
||||
while (1)
|
||||
{
|
||||
lockval.slock = __ucps2_atomicld((int *)lock, f_W);
|
||||
next = ((lockval.slock >> 16) & 0x0000ffff);
|
||||
owner = next;
|
||||
next++;
|
||||
lockval.slock &=0x0000ffff;
|
||||
lockval.slock |= ((next & 0xffff) << 16);
|
||||
ret = __ucps2_atomicst((int *)lock, lockval.slock, f_W);
|
||||
if (1 == ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
do
|
||||
{
|
||||
lockval.slock = __ucps2_atomicld((int *)lock, f_W);
|
||||
g_spinlock_loop++;
|
||||
spin_debug(&(spin_debug_info->spin_per_ape.spinlock_loop) , g_spinlock_loop);
|
||||
} while (owner != ((lockval.slock & 0x0000ffff)));
|
||||
g_spinlock_loop = 0;
|
||||
g_spinlock_count++;
|
||||
spin_debug(&(spin_debug_info->spin_per_ape.spinlock_count) , g_spinlock_count);
|
||||
spinlock_t lockval;
|
||||
spinlock_t *lock;
|
||||
int ret;
|
||||
int owner;
|
||||
int next;
|
||||
if (lock_index > SLOCK_MAX)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
lock = (spinlock_t*)(OSP_APE_SPAIN_LOCK_ADDR+lock_index*4);
|
||||
}
|
||||
|
||||
while (1)
|
||||
{
|
||||
lockval.slock = __ucps2_atomicld((int *)lock, f_W);
|
||||
next = ((lockval.slock >> 16) & 0x0000ffff);
|
||||
owner = next;
|
||||
next++;
|
||||
lockval.slock &=0x0000ffff;
|
||||
lockval.slock |= ((next & 0xffff) << 16);
|
||||
ret = __ucps2_atomicst((int *)lock, lockval.slock, f_W);
|
||||
if (1 == ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_spin_count[lock_index]++;
|
||||
spin_debug(&(spin_debug_info->spin_per_ape.g_spin_count) , g_spin_count[lock_index]);
|
||||
}
|
||||
}
|
||||
do
|
||||
{
|
||||
lockval.slock = __ucps2_atomicld((int *)lock, f_W);
|
||||
g_spinlock_loop[lock_index]++;
|
||||
spin_debug(&(spin_debug_info->spin_per_ape.spinlock_loop) , g_spinlock_loop[lock_index]);
|
||||
} while (owner != ((lockval.slock & 0x0000ffff)));
|
||||
g_spinlock_count[lock_index]++;
|
||||
spin_debug(&(spin_debug_info->spin_per_ape.spinlock_count) , g_spinlock_count[lock_index]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void smart_spinunlock(int lock_index)
|
||||
{
|
||||
spinlock_t lockval;
|
||||
int ret;
|
||||
int atomfail_unlock = 0;
|
||||
spinlock_t * lock;
|
||||
unsigned int temp_owner = 0;
|
||||
if (lock_index >= SLOCK_MAX)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
lock = (spinlock_t*)(OSP_APE_SPAIN_LOCK_ADDR+lock_index*4);
|
||||
}
|
||||
g_unspinlock_count++;
|
||||
spin_debug(&(spin_debug_info->spin_per_ape.unspinlock_count) , g_unspinlock_count);
|
||||
while (1)
|
||||
{
|
||||
lockval.slock = __ucps2_atomicld((int *)lock, f_W);
|
||||
temp_owner = (lockval.slock & 0x0000ffff);
|
||||
temp_owner ++;
|
||||
lockval.slock &= 0xffff0000;
|
||||
lockval.slock |= (temp_owner & 0x0000ffff);
|
||||
ret = __ucps2_atomicst((int *)lock, lockval.slock, f_W);
|
||||
if (1 == ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
spinlock_t lockval;
|
||||
int ret;
|
||||
int atomfail_unlock = 0;
|
||||
spinlock_t * lock;
|
||||
unsigned int temp_owner = 0;
|
||||
if (lock_index > SLOCK_MAX)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
lock = (spinlock_t*)(OSP_APE_SPAIN_LOCK_ADDR+lock_index*4);
|
||||
}
|
||||
while (1)
|
||||
{
|
||||
lockval.slock = __ucps2_atomicld((int *)lock, f_W);
|
||||
temp_owner = (lockval.slock & 0x0000ffff);
|
||||
temp_owner ++;
|
||||
lockval.slock &= 0xffff0000;
|
||||
lockval.slock |= (temp_owner & 0x0000ffff);
|
||||
ret = __ucps2_atomicst((int *)lock, lockval.slock, f_W);
|
||||
if (1 == ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
// g_unspinlock_loop++;
|
||||
// spin_debug(&(spin_debug_info->spin_per_ape.unspinlock_loop) , g_unspinlock_loop);
|
||||
}
|
||||
}
|
||||
g_unspinlock_count[lock_index]++;
|
||||
spin_debug(&(spin_debug_info->spin_per_ape.unspinlock_count) , g_unspinlock_count[lock_index]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
参数:lock_idx
|
||||
参数范围:1--15
|
||||
*/
|
||||
int smart_get_spin_loop_cnt(int lock_idx)
|
||||
{
|
||||
return g_spinlock_loop[lock_idx];
|
||||
}
|
||||
|
||||
/*
|
||||
参数:lock_idx
|
||||
参数范围:1--15
|
||||
*/
|
||||
|
||||
int smart_get_spin_cnt(int lock_idx)
|
||||
{
|
||||
return g_spin_count[lock_idx];
|
||||
}
|
||||
|
||||
/*
|
||||
参数:lock_idx
|
||||
参数范围:1--15
|
||||
*/
|
||||
|
||||
int smart_get_spinlock_cnt(int lock_idx)
|
||||
{
|
||||
return g_spinlock_count[lock_idx];
|
||||
}
|
||||
|
||||
/*
|
||||
参数:lock_idx
|
||||
参数范围:1--15
|
||||
*/
|
||||
|
||||
int smart_get_unspinlock_cnt(int lock_idx)
|
||||
{
|
||||
return g_unspinlock_count[lock_idx];
|
||||
}
|
||||
|
||||
|
||||
int smart_ddr_spinlock_init(ddr_spinlock_t *val)
|
||||
{
|
||||
int i;
|
||||
int init_val = 0;
|
||||
|
||||
if(spin_do_read(val->flag_addr) == 0xab3f)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
spin_do_write(val->flag_addr,0xab3f);
|
||||
spin_do_write(val->lock_addr,0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void smart_ddr_spinlock(ddr_spinlock_t *val)
|
||||
{
|
||||
spinlock_t lockval;
|
||||
volatile unsigned int *lock;
|
||||
int ret;
|
||||
int owner;
|
||||
int next;
|
||||
int loop;
|
||||
|
||||
lock = (volatile unsigned int*)(val->lock_addr);
|
||||
while (1)
|
||||
{
|
||||
lockval.slock = __ucps2_atomicld((int *)lock, f_W);
|
||||
next = ((lockval.slock >> 16) & 0x0000ffff);
|
||||
owner = next;
|
||||
next++;
|
||||
lockval.slock &=0x0000ffff;
|
||||
lockval.slock |= ((next & 0xffff) << 16);
|
||||
ret = __ucps2_atomicst((int *)lock, lockval.slock, f_W);
|
||||
if (1 == ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
do
|
||||
{
|
||||
lockval.slock = __ucps2_atomicld((int *)lock, f_W);
|
||||
g_ddr_spinlock_loop++;
|
||||
} while (owner != ((lockval.slock & 0x0000ffff)));
|
||||
|
||||
}
|
||||
|
||||
|
||||
void smart_ddr_spinunlock(ddr_spinlock_t *val)
|
||||
{
|
||||
spinlock_t lockval;
|
||||
int ret;
|
||||
volatile unsigned int * lock;
|
||||
unsigned int temp_owner = 0;
|
||||
lock =(volatile unsigned int*)val->lock_addr;
|
||||
|
||||
while (1)
|
||||
{
|
||||
lockval.slock = __ucps2_atomicld((int *)lock, f_W);
|
||||
temp_owner = (lockval.slock & 0x0000ffff);
|
||||
temp_owner ++;
|
||||
lockval.slock &= 0xffff0000;
|
||||
lockval.slock |= (temp_owner & 0x0000ffff);
|
||||
ret = __ucps2_atomicst((int *)lock, lockval.slock, f_W);
|
||||
if (1 == ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
// g_ddr_unspinlock_loop++;
|
||||
// spin_do_write(val->unlock_loop_addr,g_ddr_unspinlock_loop);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -14,45 +14,144 @@ typedef enum
|
||||
typedef struct{
|
||||
union
|
||||
{
|
||||
unsigned int slock;
|
||||
|
||||
unsigned int slock;
|
||||
};
|
||||
}spinlock_t;
|
||||
|
||||
#define APE_NR 12
|
||||
|
||||
typedef struct{
|
||||
int spinlock_count;
|
||||
int unspinlock_count;
|
||||
int spinlock_loop;
|
||||
unsigned int spinlock_count;
|
||||
unsigned int unspinlock_count;
|
||||
unsigned int spinlock_loop;
|
||||
unsigned int g_spin_count;
|
||||
// unsigned int unspinlock_loop;
|
||||
|
||||
}spin_db_info ;
|
||||
|
||||
typedef struct{
|
||||
// spin_db_info spin_per_ape[APE_NR];
|
||||
spin_db_info spin_per_ape;
|
||||
|
||||
// spin_db_info spin_per_ape[APE_NR];
|
||||
spin_db_info spin_per_ape;
|
||||
}spin_debug_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned int lock_addr; //锁物理地址
|
||||
unsigned int flag_addr; // 锁标志物理地址
|
||||
|
||||
}ddr_spinlock_t;
|
||||
|
||||
extern int smart_spinlock_init(int lock_index);
|
||||
extern void smart_spinlock(int lock_index);
|
||||
extern void smart_spinunlock(int lock_index);
|
||||
extern int smart_spin_debug_init(unsigned int debug_base_addr, int len_bytes);
|
||||
|
||||
/*
|
||||
函数名称:smart_spin_debug_init
|
||||
输入参数: lock_idx
|
||||
输入参数:debug_base_addr
|
||||
输入参数: len_bytes
|
||||
返回类型: int
|
||||
返回值: 小于0 表示失败
|
||||
返回值: 0 表示成功
|
||||
函数功能: 自旋锁调试接口,
|
||||
注意:
|
||||
通过lock_idx ,地址与长度指定相应的buf 数据空间,存放相应的自旋锁调试信息。
|
||||
这些调试信息已经格式化,地址由用户指定,len_bytes 不能小于sizeof(spin_debug_t)
|
||||
数据格式化内容是 spin_debug_t
|
||||
*/
|
||||
|
||||
extern int smart_spin_debug_init(int lock_idx,unsigned int debug_base_addr, int len_bytes);
|
||||
|
||||
|
||||
static inline void smart_spinlock_irq(int lock)
|
||||
/*
|
||||
参数:lock_idx
|
||||
参数范围:1--15
|
||||
*/
|
||||
extern int smart_get_spin_loop_cnt(int lock_idx);
|
||||
/*
|
||||
参数:lock_idx
|
||||
参数范围:1--15
|
||||
*/
|
||||
extern int smart_get_spin_cnt(int lock_idx);
|
||||
/*
|
||||
参数:lock_idx
|
||||
参数范围:1--15
|
||||
*/
|
||||
|
||||
extern int smart_get_spinlock_cnt(int lock_idx);
|
||||
/*
|
||||
参数:lock_idx
|
||||
参数范围:1--15
|
||||
*/
|
||||
|
||||
extern int smart_get_unspinlock_cnt(int lock_idx);
|
||||
|
||||
|
||||
extern int smart_ddr_spinlock_init(ddr_spinlock_t *val);
|
||||
extern void smart_ddr_spinlock(ddr_spinlock_t *val);
|
||||
extern void smart_ddr_spinunlock(ddr_spinlock_t *val);
|
||||
|
||||
/*
|
||||
函数名称:smart_ddr_spinlock_irq
|
||||
函数参数: val
|
||||
参数类型: ddr_spinlock_t
|
||||
函数功能: 关中断加锁
|
||||
函数说明: 非中断状态下使用
|
||||
*/
|
||||
|
||||
static inline void smart_ddr_spinlock_irq(ddr_spinlock_t *d_lock)
|
||||
{
|
||||
|
||||
__ucps2_IntEn(f_Disable);
|
||||
smart_spinlock(lock);
|
||||
|
||||
__ucps2_IntEn(f_Disable);
|
||||
smart_ddr_spinlock(d_lock);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
函数名称:smart_ddr_spinunlock_irqrestore
|
||||
函数参数: d_lock
|
||||
参数类型: ddr_spinlock_t
|
||||
函数功能: 解锁开中断
|
||||
函数说明: 非中断状态下使用
|
||||
*/
|
||||
|
||||
static inline void smart_ddr_spinunlock_irqrestore(ddr_spinlock_t *d_lock)
|
||||
{
|
||||
smart_ddr_spinunlock(d_lock);
|
||||
__ucps2_IntEn(f_Enable);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
函数名称:smart_spinlock_irq
|
||||
函数参数: lock
|
||||
参数类型: int
|
||||
函数功能: 关中断加锁
|
||||
函数说明: 非中断状态下使用
|
||||
*/
|
||||
|
||||
static inline void smart_spinlock_irq(int lock)
|
||||
{
|
||||
|
||||
__ucps2_IntEn(f_Disable);
|
||||
smart_spinlock(lock);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
函数名称:smart_spinunlock_irqrestore
|
||||
函数参数: d_lock
|
||||
参数类型: int
|
||||
函数功能: 解锁开中断
|
||||
函数说明: 非中断状态下使用
|
||||
*/
|
||||
|
||||
static inline void smart_spinunlock_irqrestore(int lock)
|
||||
{
|
||||
smart_spinunlock(lock);
|
||||
__ucps2_IntEn(f_Enable);
|
||||
smart_spinunlock(lock);
|
||||
__ucps2_IntEn(f_Enable);
|
||||
|
||||
}
|
||||
|
||||
|
BIN
public/rtos/code/spinlock_code/lib/libspinlock.a
Normal file
BIN
public/rtos/code/spinlock_code/lib/libspinlock.a
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user