реклама на сайте
подробности

 
 
> eCos, вопрос на засыпку
WarNick
сообщение May 10 2006, 07:39
Сообщение #1





Группа: Новичок
Сообщений: 12
Регистрация: 4-04-06
Пользователь №: 15 786



Интересует порт на LPC2294. Собственно процедура следующая качаю eCos 2.0 по рекомендации, написанной на сайте + 1.3 ибо там есть порт на более ранние модели LPC.
Просто ради интереса пытаюсь собрать темплейт для mcb2100

В основном cdl файле (hal_arm_lpc2xxx_mcb2100.cdl) написано
requires { CYGHWR_HAL_ARM_LPC2XXX == "LPC2129" }

и параметр 2129 есть в разрешённых

hal_arm_lpc2xxx.cdl:

default_value {"LPC210x"}
legal_values {"LPC210x"
"LPC2114" "LPC2119" "LPC2124" "LPC2129" "LPC2132"
"LPC2138" "LPC2194" "LPC2212" "LPC2214" "LPC2290"
"LPC2292" "LPC2294"}
Но сам eCos ругается на него как на недопустимый параметр. Если в первом файде ставить дефолтное значение 210x - всё пучком...

Насколько я понимаю этот параметр говорит об конфигурации портов IO. В файлике
lpc2xxxvar/currentinclude/var_io.h есть такая строчка
#if defined(CYGHWR_HAL_ARM_LPC2XXX_LPC210x)
(тра-та-та описание портов)
есть такое
#if defined(CYGHWR_HAL_ARM_LPC2XXX_LPC2212) || \ defined(CYGHWR_HAL_ARM_LPC2XXX_LPC2214)
(//-//-//-)

дефайна на 2129 нету.

Внимание вопрос: если они включают порт для версии 2129 почему он не работает. Или мож я гдето недопонимаю?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
WarNick
сообщение May 24 2006, 13:19
Сообщение #2





Группа: Новичок
Сообщений: 12
Регистрация: 4-04-06
Пользователь №: 15 786



И снова здрасте )
Ещё вопросец. Есть eCos (default build) либы. Пробую пример из экзамплов - twothreads. Компилю это приложение и заливаю его с помощью редбута в борду. И наблюдаю следующее:

void cyg_user_start(void){
int t;
t=0;


printf("Entering twothreads' cyg_user_start() function\n"); это он показывает

это он скипает:
cyg_mutex_init(&cliblock);

cyg_thread_create(4, simple_program, (cyg_addrword_t) 0,
"Thread A", (void *) stack[0], 4096,
&simple_threadA, &thread_s[0]);
cyg_thread_create(4, simple_program, (cyg_addrword_t) 1,
"Thread B", (void *) stack[1], 4096,
&simple_threadB, &thread_s[1]);

cyg_thread_resume(simple_threadA);
cyg_thread_resume(simple_threadB);

и доходя до этого крутится в вайле вечно.
while (1){printf(".");}
}

Т.е. судя по всему он просто плюёт на функции создания трэдов, ибо они не пашут. Причём мат опреации и вывод в СОМ работают на ура. В чём может быть проблема?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 22:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016