собственно говоря проблема решилась путем отключения инициализации системного таймера в файле OS_Target_asm.S
хотелось бы понять правильно е ли решение ??? или задумка авторов была немного другой???
//-----------------------------------------------------------------------------
// Initialize system timer.
// void init_system_timer()
// Perform systick timer initialization.
//
.weak __init_system_timer
__init_system_timer:
LDR R1, =NVIC_SYSPRI15 // Set the SysTick exception priority (lowest)
LDR R2, =NVIC_ST_PRI
STRB R2, [R1]
LDR R1, =NVIC_ST_RELOAD // Setup SysTick
LDR R2, =(SYSTICKFREQ/SYSTICKINTRATE-1)
STR R2, [R1]
LDR R1, =NVIC_ST_CTRL // Enable and run SysTick
LDR R2, =(NVIC_ST_CTRL_CLK_SRC | NVIC_ST_CTRL_INTEN | NVIC_ST_CTRL_ENABLE)
STR R2, [R1]
BX LR
//-----------------------------------------------------------------------------
// START MULTITASKING
// void os_start(stack_item_t* sp)
//
// Note(s) : 1) os_start() MUST:
// a) Setup PendSV and SysTick exception priority to lowest;
//

Setup SysTick (reload value);
// c) Enable interrupts (tasks will run with interrupts enabled).
// d) Jump to exec() function of the highest priority process.
//
.thumb_func
os_start:
LDR R1, =NVIC_SYSPRI14 // Set the PendSV exception priority (lowest)
LDR R2, =NVIC_PENDSV_PRI
STRB R2, [R1]
LDR R4, [R0, #(4 * 14)] // Load process entry point into R4
ADD R0, #(4 * 16) // emulate context restore
MSR PSP, R0 // store process SP to PSP
MOV R0, #2 // set up the current (thread) mode: use PSP as stack pointer, privileged level
MSR CONTROL, R0
ISB // Insert a barrier
// BL __init_system_timer // run system timer CPSIE I // Enable interrupts at processor level
BX R4 // Jump to process exec() function
.end
Сообщение отредактировал Посторонним В... - Jan 12 2013, 21:37