Перейти к содержанию
    

Скажите, можно ли в проекте uC\OS под ИАРом использовать модули написанные на С++? :blink:

Если версия ОС 2.83, то можно.

По крайней мере у меня получилось с компиляторами от ИАР и портами под lpc2106 и AVR.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажите, можно ли в проекте uC\OS под ИАРом использовать модули написанные на С++? :blink:

Если версия ОС 2.83, то можно.

По крайней мере у меня получилось с компиляторами от ИАР и портами под lpc2106 и AVR.

 

не поделитесь версией ОС 2.83? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как компилить проект на С++?

General Options->Library Configuration->Normal или какой другой?

С\С++ Compiler->Language->Embedded C++ или другой?

Могет еще чего надо наколдовать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если версия ОС 2.83, то можно.

А как это может завязано на версию? Ядро компилится "C" и ничему не может воспротивится. Все системные вызовы в приложении и callback естественно определяются, как "C" namespace. Все.

 

 

Могет еще чего надо наколдовать ?

Для каждого из файлов проекта А НЕ ДЛЯ ВСЕГО ПРОЕКТА либо явно указать компилятор, либо потребовать ему смотреть на расширение файла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если версия ОС 2.83, то можно.

А как это может завязано на версию? Ядро компилится "C" и ничему не может воспротивится. Все системные вызовы в приложении и callback естественно определяются, как "C" namespace. Все.

С одной из предыдущих версий не получалось. Не стал вдаваться в подробности, просто поставил более новую и всё пошло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот пытался на выходных покавыряться с осью uC/OS -II v 2.83 с месного ФТП прочитал доки вроде но нифига так и не вышло

 

Вобщем конфигурация такая

модуль LPC-H2294 1 Mb ОЗУ 4 Mb ПЗУ

дисплей PG240128 с контроллером T6963

и пару кнопок

Один светодиод

 

Цель1: Попробовать помигать светодиодом

Цель 2 : попробовать что нибуть нарисовать на ЖКИ

Цкль3: Попробовать организовать реальное меню с прокрутками и всякими меседж боксами

 

что делал:

 

читал все переводы выложенные здесь пытался сделать проект IAR и собрать все в кучу

 

То есть на первом этапе сама ОС скачанная с местного ФТП и порт под ARM7 взятый с сайта вроде сделал все как в доке получил в итоге кучу около 80 ошибок и все как не бился и не мучался нифига!!!

 

так вот теперь буду клянчить

 

работал ктонеть с данной версией ОС

есть у кого нибуть нормальный собранный проект под именно этот проц с подобной конфигурацией !

нужен для изучения

 

а еще бы неплохо если бы кто неть показал примерную последовательность сборки проекта или документ где это написано а то у меня только описание что какая функция может и как они в ядре работают вкупе ! вот так всем заранее спасибо откликнувшемся

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

есть у кого нибуть нормальный собранный проект под именно этот проц с подобной конфигурацией !

нужен для изучения

 

а еще бы неплохо если бы кто неть показал примерную последовательность сборки проекта или документ где это написано а то у меня только описание что какая функция может и как они в ядре работают вкупе ! вот так всем заранее спасибо откликнувшемся

 

Можно для начала попробовать запустить порт под Win32 + Visual Studio (an1032).

Этот порт сделан для 2.80, но для 2.83 править надо не много.

Нужно добавить определения OS_TMR_xxx в os_cfg.h (можно взять из сырцов 2.83 файл os_cfg_r.h и сконфигурить по аналогии),

в app.c изменить OS_IDLE_PRIO на OS_TASK_IDLE_PRIO,

в app_cfg.h добавить определение OS_TASK_TMR_PRIO.

Вроде всё.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня интересует работа с ARM в часности с LPC2294

И сильно не хватает готового внятного не на вароченого проекта под этот проц чтобы разобрать что и для чего там написано !

а то имеющийся проет под LPC2124 сильно навароченый и там все кувырком ! нужен по началу ОЧЕНЬ простой проект типа как мигание светодиодом !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня интересует работа с 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 тиков ОСи

}

}

 

Таким образом создаются все задачи ОСи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в кокой части надо запускать таймер для оси и что запихивается в обработчик прерывания от таймера как вообще ось поймет что произошло прерывание от таймера

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в кокой части надо запускать таймер для оси и что запихивается в обработчик прерывания от таймера как вообще ось поймет что произошло прерывание от таймера

 

У меня все обработчики в bsp.c, а таймер запускается при инициализации перифирии.

CPU.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо буду разбиратся как разберусь так напишу здесь чуствую доку как и куда

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

господа, кому не сложно, посмотрите пожалуйста мой проект для кейла, гнутый тулчейн.

немогу понять почему ругается линкер

ucos_for_keil_3.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

господа, кому не сложно, посмотрите пожалуйста мой проект для кейла, гнутый тулчейн.

немогу понять почему ругается линкер

 

Убери из проекта файл ucos_ii.с

 

У него внутри:

#include <os_core.c>
....
#include <os_time.c>

, поэтому функции определяются по два раза.

 

Потом, из старт-ап файла можно убрать блок "Relocate .data section"

И заменить "B _start" на "B main"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

yaghtn спасибо огромное

откомпилилось, вечером буду пробовать дома запускать:)

Изменено пользователем potor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...