|
Переход с AVR на ARM, Переход с AVR на ARM |
|
|
|
Jan 10 2005, 05:37
|
Участник

Группа: Свой
Сообщений: 42
Регистрация: 10-01-05
Из: Санкт-Петербург
Пользователь №: 1 862

|
Господа разработчики, программисты... Просидел достаточно долго на AVR-ах (в основном - 8535), теперь встал вопрос ребром о переходе на работу с ARM. Посоветуйте литературу и ПО для этого дела. Понимаю, что описал сумбурно, но пока ничего не могу сказать точнее.
|
|
|
|
|
 |
Ответов
(45 - 58)
|
Jun 8 2006, 21:45
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(AVR @ Jun 9 2006, 00:29)  Мне для примера хотя бы увидеть программу, которая бы устанавливала в единицу все разряды.  Код #include <stdint.h> #include <ioAT91SAM7S64.h> void main() { AT91C_BASE_PIOA->PIO_PER = (uint32_t)-1; // all outputs are IO AT91C_BASE_PIOA->PIO_OWER = (uint32_t)-1; // direct write to all pins allowed
for(;;) { AT91C_BASE_PIOA->PIO_ODSR = 0; // all outputs = 0 AT91C_BASE_PIOA->PIO_ODSR = (uint32_t)-1; // all outputs = 1 AT91C_BASE_PIOA->PIO_SODR = (1<<0); // PIOA.0 = 1 AT91C_BASE_PIOA->PIO_CODR = (1<<0); // PIOA.0 = 0 } } примерно так...
Сообщение отредактировал Сергей Борщ - Jun 8 2006, 21:48
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jun 11 2006, 14:22
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Может оптимизатор возомнил из себя слишком умного и перемудрил. Попробуйте объявить переменную так: volatile long timeval; А мигает то с нормальной скоростью? Цитата Неужели тут уже критические секции мудрить надо как в вижуале? А вы что думали? Прерывание может произойти в любой момент. Сосбсно в любом проце так. Если будете просто обнулять переменную (записывать в неё любое число), то без проблем. Запрещать прерывания не надо. А если в команде попытаетесь её прочитать, что-то добавить например и записать обратно, то учтите что она могла уже измениться.
Сообщение отредактировал GetSmart - Jun 11 2006, 14:36
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jun 19 2006, 09:38
|
Участник

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

|
Люди помогите разобраться с примерами от атмела от их либов голова кругом идет. Может книгу какую нибудь посоветуете.
|
|
|
|
|
Oct 13 2006, 08:52
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 10-05-06
Пользователь №: 16 930

|
http://troosh.pp.ru/arm/не находится... Если у кого сохранил, просьба скинуть... И еще.. Вроде, были ARM, стали SAM... Что произошло и что с совместимостью?
|
|
|
|
|
Oct 16 2006, 05:41
|
Группа: Участник
Сообщений: 6
Регистрация: 6-03-06
Пользователь №: 15 007

|
ARM - 32bit AVR - 8bit не значит ли это, что при переходе с AVR на ARM памяти потребуется больше? т.е. например, есть проект на IAR C под mega128(128кбайта flash + 32кбайта ОЗУ внешнее) пусть и flash, и ОЗУ занято полностью переносим проект под ARM, например sam7(128 flash, 32 ОЗУ) и вот вопрос: хватит ли памяти у ARM'а, или памяти надо заведомо больше (как по flash так и/или по ОЗУ)?
есть ли возможность мудрить с выравниванием данных? но видимо лучше этого не делать
|
|
|
|
|
Oct 16 2006, 09:05
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(vxzxc @ Oct 16 2006, 08:41)  ARM - 32bit AVR - 8bit не значит ли это, что при переходе с AVR на ARM памяти потребуется больше? т.е. например, есть проект на IAR C под mega128(128кбайта flash + 32кбайта ОЗУ внешнее) пусть и flash, и ОЗУ занято полностью переносим проект под ARM, например sam7(128 flash, 32 ОЗУ) и вот вопрос: хватит ли памяти у ARM'а, или памяти надо заведомо больше (как по flash так и/или по ОЗУ)? Собирал один и тот же тестовый пример (dhrystone) для AVR, ARM и ARM(Thumb). В последнем случае расход флеш был наиболее экономный. По ОЗУ ситуация чуть хуже, но я не делал ручной оптимизации данных, т. е. не заменял int на short и т. д. Цитата(vxzxc @ Oct 16 2006, 08:41)  есть ли возможность мудрить с выравниванием данных? но видимо лучше этого не делать Такая возможность есть и делать это можно, но в разумных пределах, т. к. доступ к упакованным данным длительнее и накладнее по размеру программы.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|