Цитата(asen @ Oct 2 2006, 09:49)

Меня интересует работа с ARM в часности с LPC2294
И сильно не хватает готового внятного не на вароченого проекта под этот проц чтобы разобрать что и для чего там написано !
а то имеющийся проет под LPC2124 сильно навароченый и там все кувырком ! нужен по началу ОЧЕНЬ простой проект типа как мигание светодиодом !
Попробуйте для начала AN-1138 для lpc2138 (http://www.ucos-ii.com/downloads/appnotes/)
запустить.
Я обычно делаю следующим образом:
1. Создать проект в IAR и подключить необходимые файлы ОСи в прект (os_core.c, os_mbox.c, os_q.c,
os_sem.c, os_task.c, os_time.c), указать путь к ucos_ii.h.
2. Подключить файлы порта (os_cpu_a.asm и os_cpu_c.c).
3. Подключить bsp (bsp.c, lpc2xxx_csturtup.s79) и в линкере указать путь к (LPC2148_flash.xcl в моём случае) для вашего процессора.
4. Поправить файл os_cfg.h так как вам нужно (я обычно убираю callback таймер если 2.83, отключаю то, что не использую: флаги, мьютексы и т.д., чтобы поменьше весила). Если вы хотите включить к примеру флаги, то вам придётся добавить в проект файл os_flag.c и т.д.
5. Создайте тестовую задачу которая ничего не будет делать и попробуйте откомпилить.
#define APP_TASK_START_STK_SIZE 128
INT32U TaskStartStk [APP_TASK_START_STK_SIZE];
static void TaskStart (void *p_arg);
void main()
{
BSP_IntDisAll(); //запрет прерываний
OSInit(); // тнициализация uC/OS
OSTaskCreateExt(TaskStart, // создаётся тестовая задача с наивысшим преоритетом 0 и номером 0
(void *)0, // аргумент
(OS_STK *)&TaskStartStk[APP_TASK_START_STK_SIZE - 1],
0, // преоритет
0, // номер
(OS_STK *)&TaskStartStk[0],
APP_TASK_START_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); // опции
OSStart(); // запуск ОС
}
static void TaskStart (void *p_arg)
{
p_arg = p_arg;
BSP_Init(); // инициализация перефирии (bsp.c)
for (;;) {
/* что-нибудь делаем */
OSTimeDly(100); // задержка на 100 тиков ОСи
}
}
Таким образом создаются все задачи ОСи.