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

 
 
> Использование embedded_services.h в IAR 5.11, по примеру romboot-a от Atmel
Antokha
сообщение Mar 30 2011, 15:25
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 20-10-08
Из: Нижний Новгород
Пользователь №: 41 078



Решил прикрутить к своей программе протокол x-modem и управление программой через hyperterminal. Взял за основу romboot от Atmel-a, который я уже сам компилировал с помощью gcc под линуксом (ubuntu). Программа к которой хочу прикрутить x-modem делалась в ИАР-е, поэтому создал проект в ИАР 5.11, добавил файлы romboot-а, поправил c_startup.s, asm-обработчик прерывания. Проект компилируется, но смущают восемь warning-ов на файл embedded_services.h на структуры в самом конце этого файла где написаны const. Ладно - под линуксом работало и здесь вроде бы тоже должно. Заливаю по X-modem-у в контроллер AT91RM9200. Не определяется флеш. Начинаю копать покомандно с выводом ошибок через printf:
Код
int main(void)
{
  AT91PS_Buffer          pXmBuffer;
  AT91PS_SvcComm         pSvcXmodem;
  AT91S_SvcTempo         svcUbootTempo;      // Link to a AT91S_Tempo object
    
  unsigned int AddressToDownload, SizeToDownload;    
  unsigned int DeviceAddress = 0;
  volatile int i = 0;    
  char command = 0;
  unsigned int crc1 = 0, crc2 = 0;
  volatile int device;
  int NbPage;
  stdin = fopen(0, at91_dbgu_getc);
  stdout = fopen(at91_dbgu_putc, 0);
    
  pAT91 = AT91C_ROM_BOOT_ADDRESS;
  
  // Tempo Initialisation
    pAT91->OpenCtlTempo(&ctlTempo, (void *) &(pAT91->SYSTIMER_DESC));
  //if (!pAT91->OpenCtlTempo(&ctlTempo, (void *) &(pAT91->SYSTIMER_DESC))) \
        AT91F_DBGU_Printk("\n\rOpenCtlTempo(): OpenCtlTempo initialized\n\r");        //OK
        
    ctlTempo.CtlTempoStart((void *) &(pAT91->SYSTIMER_DESC));
  //if ((ctlTempo.CtlTempoStart((void *) &(pAT91->SYSTIMER_DESC)))== 2 ) \
        AT91F_DBGU_Printk("\n\rCtlTempoStart returns 2\n\r");        //OK
  
  // Attach the tempo to a tempo controler
  //ctlTempo.CtlTempoCreate(&ctlTempo, &svcUbootTempo);
  if ((ctlTempo.CtlTempoCreate(&ctlTempo, &svcUbootTempo)) == 1) AT91F_DBGU_Printk("\n\rthe software tempo wasn't created\n\r");\
    else AT91F_DBGU_Printk("\n\rthe software tempo was created\n\r");
//    svcUbootTempo.Start(&svcUbootTempo,100,0,NULL,NULL);

На ctlTempo.CtlTempoCreate(&ctlTempo, &svcUbootTempo) выводит ошибку.
Прошу поделиться опытом применения встроенного ПО контроллера. Чего не правильно уже понять не могу.
В приложении мой проект для ИАРа.
Так же не работает кроме SPI-флешки X-modem (имеется ввиду его реализация в бинарнике romboot-a: его функции: он не принимает бинарник).

Сообщение отредактировал Antokha - Mar 30 2011, 16:21
Прикрепленные файлы
Прикрепленный файл  Romboot.rar ( 203.3 килобайт ) Кол-во скачиваний: 14
 
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 00:08
Рейтинг@Mail.ru


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