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

 
 
> Старт c IAR+Sam7x
Dopler
сообщение Dec 24 2006, 23:43
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425



Здравствуйте.

Получил плату от Olimex с SAM7X256. Спаял wiggler. Установил IAR 4.41a и Keil. Так как примеры у атмела и Olimex для IAR начал разбираться с ним. Запустил пример олимекса, более менее разобрался, поудалял все, в главном цикле сделал вывод миандра на pb22. Вроде работало, виглер шил через H-JTAG, правда из RAM отладка не работала, работала только через FLASH. Никаких стартапов в пректе я не нашел. Базовый пример от Atmela я прошивать не стал, так как он инициализирует линии, которые на плате от олимекса используются для разных других целей.

Так вот, проблемы начались, когда я попытался создать совершенно пустой проект, откомпилировать и запустить в устройство (на С под железо раньше не писал). В связи с этим следующие вопросы:

1. Откуда запускается проект, с функции Main или откуда то еще?
2. Что за файлы .xcl (я понял, что это структура памяти для линковщика), как ими пользоваться, откуда брать и т.д.
3. Что за файлы mac для дебагера и можно ли без них (когда отключал, отладка не работала).
4. Если не сложно, то как по шагам сделать минимальный проект для отладки в RAM (как создать, какие файлы подключать, откуда брать, что прописать в настройках).

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

Код
#include "at91sam7xc256.h"


//it's a simple delay
void Delay (unsigned long a) { while (--a!=0); }


int main()
{
   //Enable RESET
  AT91C_BASE_RSTC->RSTC_RCR = 0xA5000008;
  AT91C_BASE_RSTC->RSTC_RMR = 0xA5000001;
  Delay(1000);
  
  
  // Set Flash Waite sate - Flash Memory Controler
  // if MCK = 47923200 I have 50 Cycle for 1 usecond
  AT91C_BASE_MC->MC_FMR = ((AT91C_MC_FMCN)&(48 <<16)) | AT91C_MC_FWS_1FWS;

  // Watchdog Disable
  AT91C_BASE_WDTC->WDTC_WDMR= AT91C_WDTC_WDDIS;

  // Set MCK at 47 923 200
  // 1 Enabling the Main Oscillator:
  // SCK = 1/32768 = 30.51 uSecond
  // Start up time = 8 * 6 / SCK = 56 * 30.51 = 1,46484375 ms
  AT91C_BASE_PMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x06 <<8) | AT91C_CKGR_MOSCEN ));

  // Wait the startup time
  while(!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS));

  // 2 Checking the Main Oscillator Frequency (Optional)
  // 3 Setting PLL and divider:
  // - div by 5 Fin = 3,6864 =(18,432 / 5)
  // - Mul 25+1: Fout =    95,8464 =(3,6864 *26)
  // for 96 MHz the erroe is 0.16%
  // Field out NOT USED = 0
  // PLLCOUNT pll startup time estimate at : 0.844 ms
  // PLLCOUNT 28 = 0.000844 /(1/32768)
  AT91C_BASE_PMC->PMC_PLLR = ((AT91C_CKGR_DIV & 0x05) | (AT91C_CKGR_PLLCOUNT & (28<<8)) | (AT91C_CKGR_MUL & (25<<16)));

  // Wait the startup time
  while(!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK));
  while(!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY));

  // 4. Selection of Master Clock and Processor Clock
  // select the PLL clock divided by 2
  AT91C_BASE_PMC->PMC_MCKR =  AT91C_PMC_PRES_CLK_2;
  while(!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY));

  AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK ;
  while(!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY));
  
  
  
  //enable the clock of the PIO
  AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOA;
  //enable the clock of the PIO
  AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOB;


  // GPIO init
  AT91C_BASE_PIOA->PIO_ODR    = 0xffffffff;   // All as input
  AT91C_BASE_PIOB->PIO_ODR    = 0xffffffff;   // All as input
  AT91C_BASE_SYS->PIOA_PPUDR  = 0xffffffff;   // Disable Pull-up resistor
  AT91C_BASE_SYS->PIOB_PPUDR  = 0xffffffff;   // Disable Pull-up resistor

  AT91C_BASE_PIOB->PIO_OER    = 1 << 22;
  
  
  for (;;)
    {      
      unsigned int waiting_time;
      
      AT91C_BASE_PIOB->PIO_SODR    = 1 << 22;  
      for(waiting_time = 0; waiting_time < 2000; waiting_time++);
    
      AT91C_BASE_PIOB->PIO_CODR    = 1 << 22;  
      for(waiting_time = 0; waiting_time < 2000; waiting_time++);
    }
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IV_K
сообщение Dec 25 2006, 11:53
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 17-06-05
Пользователь №: 6 087



1. lib\dl4tpainl8n.r79 и т.д. требуется при использовании c runtime library, это можно менять в library config в свойствах проекта, но тогда не будут доступны всякие memcpy, printf и т.д...
2. имхо проще код в си файле поменять, чем с самого начала ковыряться с настройками проекта =)
Go to the top of the page
 
+Quote Post
Dopler
сообщение Dec 25 2006, 13:15
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425



Цитата(IV_K @ Dec 25 2006, 11:53) *
1. lib\dl4tpainl8n.r79 и т.д. требуется при использовании c runtime library, это можно менять в library config в свойствах проекта, но тогда не будут доступны всякие memcpy, printf и т.д...
2. имхо проще код в си файле поменять, чем с самого начала ковыряться с настройками проекта =)


Как раз если я пытаюсь отключить библиотеки в настройках, ничего не работает. Т.е. нужно подключить к проекту те файлы, которые перекомпиленные в библиотеке? Наверное, это стартапы и лоулевел иниты? А какие, интересно, конкретно взять? От примера для атмеловского борда?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dopler   Старт c IAR+Sam7x   Dec 24 2006, 23:43
- - skn   1. Старт начинается как правило с адреса 00, сегме...   Dec 25 2006, 01:07
|- - Dopler   Цитата(skn @ Dec 25 2006, 01:07) 1. Старт...   Dec 25 2006, 08:22
- - IV_K   если в проекте не указан cstartup.s90, то линкер в...   Dec 25 2006, 11:09
|- - Dopler   Цитата(IV_K @ Dec 25 2006, 11:09) если в ...   Dec 25 2006, 11:45
- - IV_K   от примеров пойдут, потом перепишете и допишете чт...   Dec 25 2006, 13:34
- - Сергей Борщ   Цитата(Dopler @ Dec 24 2006, 22:43) Здрав...   Dec 25 2006, 15:55
|- - Dopler   Цитата(Сергей Борщ @ Dec 25 2006, 15:55) ...   Dec 26 2006, 10:03
- - SlavaCh   Сергей Борщ, спасибо за описание, я хоть и пишу со...   Dec 26 2006, 13:45
- - Сергей Борщ   Цитата(SlavaCh @ Dec 26 2006, 12:45) 1. К...   Dec 26 2006, 18:02
- - zltigo   Цитата(Сергей Борщ @ Dec 26 2006, 17:02) ...   Dec 26 2006, 18:20
|- - SlavaCh   Цитата(zltigo @ Dec 26 2006, 18:20) Цитат...   Dec 26 2006, 21:03
|- - Сергей Борщ   Цитата(SlavaCh @ Dec 26 2006, 20:03) Пока...   Dec 26 2006, 23:04
- - Dopler   Цитата(Сергей Борщ @ Dec 26 2006, 18:02) ...   Dec 26 2006, 20:46


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

 


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


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