Страница 1 из 1

На вас, КОТЫ, последняя надежда...

Добавлено: Вт фев 24, 2009 16:53:06
VenomXP
Взял я тут себе камушек AT91sam7s128(для ознакомления), скачал/поставил IAR v5.20 for ARM... И тут начались чудеса синтаксиса :shock:

Это ребята что то с чем то :cry: вот к примеру, функция инициализации аппаратного TWI:

Код: Выделить всё

void twi_init(void)
{
    pPIO->PIO_PDR = AT91C_PA3_TWD | AT91C_PA4_TWCK;
    pPIO->PIO_ASR = AT91C_PA3_TWD | AT91C_PA4_TWCK;

    pTWI->TWI_CR = AT91C_TWI_SWRST;
    pTWI->TWI_CR = AT91C_TWI_MSEN;

    pTWI->TWI_CWGR = 0x00021E1E;

    pTWI->TWI_MMR = 0x00500100;
}
Что это!!! Что за синтаксис!!! Как это понимать и как это интерпретировать на понятный язык, что уже команды типа PORTx = блаxбла; не работают?

Очень требуется помощь в освоении синтаксиса для ARM, у кого есть какие хелпы и мануалы по этому вопросу, помогите, тупое изучение бесконечного количества исходников ни к чему, как показывает практика не приводят. Спасайте :cry:

Добавлено: Вт фев 24, 2009 20:21:04
Aheir
На форуме уже есть темы про АРМы

Добавлено: Вт фев 24, 2009 21:37:56
VenomXP
Что Вы думаете, я не воспользовался поиском до того как создать тему, к вашему сожалению я это делаю по каждому интересующему меня вопросу прежде чем создавать тему на форуме, возможно Вы имеете ввиду вот это:

http://radiokot.ru/forum/viewtopic.php?t=11336

Был я там, и ничего полезного не нашел.

ИМХО.
Если человек начинает новую тему, это значит, что он не разобрался в интересующим его вопросе, и я считаю было бы умно вообще промолчать, если вы не компитентны в этой области, а не тупо направлять человека в поиск, в отличии от некоторых я им пользуюсь.

По теме, в этой ссылке только про ARMы фирмы филипс, а если Вы внимательно читали мой пост, то могли бы заметить что у меня он фирмы Atmel. И вообще идет речь о синтаксисе.

Добавлено: Вт фев 24, 2009 22:43:15
asteroid7
VenomXP
Синтаксис pPIO->PIO_PDR - это обращение через указатель pPIO к полю структуры PIO_PDR.
Как пример. Вы создаёте структуру порта PD с битовыми полями BITx. Обращение к ней будет PD.BITx = x. А при создании указателя на эту структуру pPD обращение ужё будет pPD->BITx = x.

Поищите в примерах или хеадерах описание указателя pPIO. Потом от его имени найдёте описание самой структуры. С большой вероятностью её имя будет PIO.

Добавлено: Вт фев 24, 2009 23:09:01
smac
asteroid7 писал(а):VenomXP
Синтаксис pPIO->PIO_PDR - это обращение через указатель pPIO к полю структуры PIO_PDR.
Как пример. Вы создаёте структуру порта PD с битовыми полями BITx. Обращение к ней будет PD.BITx = x. А при создании указателя на эту структуру pPD обращение ужё будет pPD->BITx = x.

...
+1. Действительно обычный С синтаксис, даже без привязки к компилятору практически, я хоть и не знаток но понял сразу.
VenomXP Лучше перед чтением исходников почитать документацию на компилятор и книжки по С (Керниган и Ритчи, например) там это все написано.

Добавлено: Ср фев 25, 2009 00:02:57
DrWatson
Ну да, стандартное С-шное обращение к элементу структуры через указатель на структуру.
Изучайте С...

Добавлено: Ср фев 25, 2009 00:07:08
VenomXP
Благодарю Вас, за направление на истинный путь, как раз была путаница с этими стрелочками, посмотрел хидер файл, стало все ясно, еще раз спасибо за внятные ответы.

Добавлено: Ср фев 25, 2009 00:13:29
VenomXP
Вот. Есть же добрые люди на свете, читаешь ответы и прям радуешся тому, что хоть кто то нашел время написать ответ, а не эти тупые стандартный фразы типа: ГУГЛИ ну или, А ПОИСКОМ НЕ ПРОБОВАЛИ ПОЛЬЗОВАТЬСЯ.

Всем спасибо. :))

Добавлено: Ср фев 25, 2009 09:44:21
VenomXP
Вообще есть предложение к модераторам, прилепить в этой ветке тему в начале Первой страницы: ARM в вопросах и ответах, ну или что нибудь подобное, что бы каждого интересующего эта тема могла сразу найтись и все бы знали четко что эта тема именно про АРМ а не про что нить другое, удобно а модераторам меньше работы :)
Как вам идея?