Jump to content

    
Sign in to follow this  
one_man_show

uC/OS-II

Recommended Posts

Если еще нужно, то в архиве есть.

Спасибо. Посмотрел uC/Clk - разочаровал :( поддержки таймзон и летнего времени нет в принципе.

Share this post


Link to post
Share on other sites
Здравствуйте, господа, подскажите, пожалуйста, где можно взять руссифицированные шрифты для uC/GUI.

Думаю Вас заинтересует эта страница: http://electronix.ru/forum/index.php?act=S...134&t=30124

 

С уважением,

 

Legotron

 

 

А по поводу GUев от micrium-а,- хорошая штука! Есть "оно само" в виде исходников, есть мануал (правда чуть не от той версии, но разницы почти никакой). Работает везде: хоть с операционкой в "однозадачном режиме", хоть в "многозадачном", хоть без ОСи. Обо всем этом + как конфигурить GUI+ как писать "драйвер" для своего LCD+ примеры этих драйверов написано в мануале (in English). Лично я сам все живил, - с трудом, но получилось :07: Да, есть глюки, но прелесть в том, что все исходники перед тобой, правь-не хочу.

А я интересовался данной штукой.... и так к ней подходил и сяк (естественно проблема в написании своего драйвера)... потом плюнул и написал свою GUI, деревянную (фигуры, AA, текст), зато полностью объектную, от чего жутко кайфую :) Пока мне хватает!

Share this post


Link to post
Share on other sites

Народ, где можно найти порты uCOS для LPC2378 для CrossWorks, а то все порты только для IAR и keil, а то очень хочется поработать в среде Сrossworks? Залез на сайт http://geocities.com/michaelanburaj/, я так не понял куда и какие файлы приспособачить.. Помогите плиз..

Share this post


Link to post
Share on other sites

Вчера попробовал ucOS-II/TCPIP. Собрал под AT91SAM7X256 + IAR 4.30 . При отключенной оптимизации - работает. При включенной - хоть по размеру кода, хоть по скрости - не работает:-( В чем прикол?

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

Share this post


Link to post
Share on other sites

Да... похоже загадка не для одного меня...

 

Сегодня для сравнения собрал демо FreeRTOS:

 

в составе:

 

1.собственно ось

2. uIP TCP/IP

3. HTTP sеrver

4. Read Only File system

 

Все добро работает при любых уровнях оптимизации хоть по скорости, хоть по размеру...

Занимает все это:

 

19 588 bytes of CODE memory

34 422 bytes of DATA memory

9 954 bytes of CONST memory - примерно 8 кБайт ресурсы WEB

 

uc/OS-II

 

1. собственно ост

2. uc/TCPIP стек

3. быстро-быстро написанный WEB сервер для теста системы вот такого содержания:

/*******************************************************************************
test http server for uc/OS-II TCP/IP
source file
*******************************************************************************/

#include <includes.h>
#include <https.h>

/* task stack array */
OS_STK HTTPS_TaskStk[HTTPS_TASK_STK_SIZE];

/* rx data array */
#define HTTPS_RX_DATA_BUF_LEN 1500
char HTTPS_rx_buf[HTTPS_RX_DATA_BUF_LEN];

/* tx data array */
char HTTPS_tx_data[1500];

/* server erro page 404 */
const char HTTPS_not_found_page[];

void HTTPS_Task(void *p_arg)
{ 
   /* create socket */
int socket_id = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(socket_id < 0)
{ 
    OSTaskDel(HTTPS_TASK_PRIO);
}

/* create server port */
struct  sockaddr_in  MySockAddr;
MySockAddr.sin_family      = AF_INET;
    MySockAddr.sin_port        = htons(80);
    MySockAddr.sin_addr.s_addr = htonl(INADDR_ANY);

int bind_stat = bind(socket_id, (struct sockaddr *)&MySockAddr,
       sizeof(struct sockaddr_in));

if(bind_stat < 0)
{ 
    OSTaskDel(HTTPS_TASK_PRIO);
}

/* set socket to listen mode */
int listen_stat = listen(socket_id, 1);
if(listen_stat < 0)
{ 
    OSTaskDel(HTTPS_TASK_PRIO);
}
  
/* server loop */ 
while(1)
{
  /* wait client connection */
  int new_socket_id;
  int addr_len;
  while(0 > (new_socket_id = accept(socket_id,
            (struct sockaddr *)&MySockAddr,
            &addr_len)))
  { 
   LED_On(2);
   OSTimeDlyHMSM(0, 0, 0, 75);
   LED_Off(2);
   OSTimeDlyHMSM(0, 0, 0, 75);
  }
  
  /* ok! client connection established...
  get data and check https protocol request */
  int data_len = recv(new_socket_id, HTTPS_rx_buf, HTTPS_RX_DATA_BUF_LEN, 0);
  if(0 == data_len)
  { 
     close(new_socket_id);
   continue;
  }
  
  /* Check for GET */
  char *buf = HTTPS_rx_buf;
        if(0 != memcmp(buf, "GET", 3))
        { 
            close(new_socket_id);
   continue;
  }
  
  /* send page */
  send(new_socket_id, (void *)HTTPS_not_found_page, strlen(HTTPS_not_found_page), 0);
  
  /* close connection */
  close(new_socket_id);
}
}

void HTTPS_Start(void)
{ 
   OSTaskCreateExt(HTTPS_Task,
                    NULL,
                    (OS_STK *)&HTTPS_TaskStk[HTTPS_TASK_STK_SIZE - 1],
                    HTTPS_TASK_PRIO,
                    HTTPS_TASK_PRIO,
                    (OS_STK *)&HTTPS_TaskStk[0],
                    HTTPS_TASK_STK_SIZE,
                    NULL,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
}



const char HTTPS_not_found_page[] = "HTTP/1.0 200 OK\r\n\
Last-modified: Fri, 18 Oct 2002 12:04:32 GMT\r\n\
Server: AS-SAM7X256-based devboard 10/1.0\nContent-type: text/html\r\n\
Content-length: 404\r\n\
\r\n\
<HEAD>\
<TITLE>PROTTOSS test WEB Server</TITLE></HEAD>\
<BODY>\
<H2>HTTP 1.0 404 Error. File Not Found</H2>\
The requested URL was not found on this server.\
<HR>\
<BR>\
<I>\
<b>AS-SAM7X256-based devboard v.1.1</b>, 2007\
<BR>\
Web Server for Embedded Applications\
</I>\
<BR>\
<A HREF=http://www.prottoss.com>\

 

под ucOS-II система занимает 80кБ кода и 40 кБ данных!!! :07:

 

Может я где то что то не правильно делаю??? :05: Копался в конфигах системы и TCP стека, поодключал все что можно про DEBUG - Толку мало - жир не слез...

Share this post


Link to post
Share on other sites
Да... похоже загадка не для одного меня...

 

Сегодня для сравнения собрал демо FreeRTOS:

 

в составе:

 

1.собственно ось

2. uIP TCP/IP

3. HTTP sеrver

4. Read Only File system

 

Все добро работает при любых уровнях оптимизации хоть по скорости, хоть по размеру...

Занимает все это:

 

19 588 bytes of CODE memory

34 422 bytes of DATA memory

9 954 bytes of CONST memory - примерно 8 кБайт ресурсы WEB

 

uc/OS-II

 

1. собственно ост

2. uc/TCPIP стек

3. быстро-быстро написанный WEB сервер для теста системы вот такого содержания:

 

под ucOS-II система занимает 80кБ кода и 40 кБ данных!!! :07:

 

Может я где то что то не правильно делаю??? :05: Копался в конфигах системы и TCP стека, поодключал все что можно про DEBUG - Толку мало - жир не слез...

 

Вы хотите получить от uc/TCPIP то же, что и от uIP :07: ?

Это совершенно разные стеки и цели у них разные. Вот если сравнить uc/TCPIP и lwIP, то порядок цифр будет приблизительно одинаков

Share this post


Link to post
Share on other sites

Здравствуте, корефеи ЮКОСа!

Сразу предупреждаю: я новичок в ARM, IAR и uC/OS. :)))

Начал "щупать" uc/os применительно к плате LPC-P2378 от OLIMEX.

Скачал порт оси (v285) с микриума под нее и под IAR (v4.41A),

запустил в плату MT-Link'ом, работает (моргает светодиодом, читает

нажимаемые кнопки).

Погрузился в чтение скаченных материалов по UCOS...

Есть несколько вопросов:

0. Куда делся ресурс ucos-ii.com? Много ссылок на него, а его

самого нет.

1. OS-View и OS-Probe - чем отличаются от боевого релиза?

2. В недалекой перспективе понадобится реализация имеющегося

протокола обмена на UART. Как пример реализации интересует

modbus от микриума. Мож у кого завалялось?

 

С уважением,

Андрей.

Share this post


Link to post
Share on other sites

Привет народ!

Вот бьюсь тут с мюкосом, есть такая проблема.

Решил опробовать очереди сообщений, для этого создал простой проект с одной задачей, которая ждет сообщения через OSQPend и моргает светодиодом когда оно приходит. Для посылки сообщения запустил таймер-счетчик, и в обработчике прерывания вызываю OSQPost.

Но нифга не работает :( судя по светодиодам, обработчик прерывания вызывается два раза, а сообщение до задачи вообще не доходит. Когда запускаю в отладчике, то криво коряво но иногда работает.

Пробовал посылать сообщение из другой задачи - все ОК и нормально работает. Почему не работает посылка сообщений из ISR ?

Share this post


Link to post
Share on other sites
Пробовал посылать сообщение из другой задачи - все ОК и нормально работает. Почему не работает посылка сообщений из ISR ?

 

А что за порт и процессор?

Share this post


Link to post
Share on other sites
мюкос 2.84, камень lpc2148

 

вот из шапки:

Generic ARM Port

@ File : OS_CPU_A.ASM

@ Version : V1.81

@ By : Jean J. Labrosse

@ Jean-Denis Hatier

@

@ For : ARM7 or ARM9

@ Mode : ARM or Thumb

@ Toolchain : GNU GCC

 

я пускаю порт под IAR

; File : OS_CPU_A.ASM

; Version : V1.60

; By : Jean J. Labrosse

;

; For : ARM7 or ARM9

; Mode : ARM or Thumb

; Toolchain : IAR's EWARM V4.11a and higher

 

никаких проблем нет. Гцц не пользовал.

Попробую предположить, что опции оптимизации у компилятора отключены, а порт может быть написан из рассчета того, что они импользуются.

Попробуйте сделать то же самое с семафором. Если получиться, то возможно что-то у вас с инициализацией Que или их неверным использованием.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this