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

 
 
> Описание Keil Си для ARM, Точнее Cortex-M3 - что-то наподобие как на С51
syoma
сообщение Jul 6 2010, 17:44
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Привет.
Прошу не пинать ногами, если уже 100 раз поднималось - не нашел.
В бытность начинал на Keil для 8051 и там в комплекте был конкретно расписанный Manual с указанием особенностей программирования именно для 8051 контроллеров.
Сейчас листаю help к Keil Realview и ихнему Компилятору Си и ничего такого не нахожу.
Именно нужны стандартные вещи, то есть особенности применения ихнего Си для:
- определения переменных в различных областях памяти (ОЗУ, FLASH, EEPROM и т.д)
- использование битовых переменных
- определение SFR (регистры специальных функций или периферии)
- определение функций-обработчиков прерываний.
- различные pragma функции и т.д.
В общем хочется найти одну книгу или желательно что-нибудь online, чтобы все было в одном месте.
Может кто, что подсказать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
igorsk
сообщение Jul 7 2010, 18:20
Сообщение #2


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

Группа: Участник
Сообщений: 84
Регистрация: 22-03-10
Пользователь №: 56 131



Цитата(syoma @ Jul 6 2010, 19:44) *
В бытность начинал на Keil для 8051 и там в комплекте был конкретно расписанный Manual с указанием особенностей программирования именно для 8051 контроллеров.
Сейчас листаю help к Keil Realview и ихнему Компилятору Си и ничего такого не нахожу.

У армов нет жестко фиксированной карты памяти (за исключением Cortex-M), регионы меняются от чипа к чипу. Расстановкой переменных занимается линковщик, вручную этого делать необходимости обычно нет.
Неизменяемые переменные (const) идут во флэш. Инициализированные (static int counter = 1) инициализируются стартапом в ОЗУ. Остальные переменные размещаются в ОЗУ и обычно инициализируются нулями.
EEPROM это что-то вроде энергонезависимой памяти? Такого стандартно нет. Многие производители предлагают IAP (In-application programming), он у каждого свой.
Битовые переменные можно эмулировать битовыми полями в структурах, но это это не особо эффективно, да и не нужно обычно - памяти-то не 256 байт. Кстати, советую не жадничать и не объявлять байтовых переменных - памяти они экономят немного, а компилятору приходится генерировать дополнительный код для обрезания после почти каждой операции. Стандартный (unsigned) int практически всегда оптимален.
SFR нет стандартных (за исключением нескольких регионов в Cortex-M), опять же смотрите документацию по конкретному чипу и хидеры от производителя.
По интринсинкам можно посмотреть тут, по прагмам тут. Но они редко нужны в обычном коде.

Сообщение отредактировал rezident - Jul 7 2010, 23:32
Причина редактирования: Излишнее цитирование.
Go to the top of the page
 
+Quote Post



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

 


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


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