|
ARM и AVR cравнение плотности кода |
|
|
|
Feb 21 2008, 00:28
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 16-01-05
Пользователь №: 1 986

|
Изделие массовое, соотношение цена - ресурсы МК критичное. Вот стоим на распутье: ресурсов ATMEGA не хватает ,присматриваемся к PIC24,LPC21** ждем ATXMEGA. Кто переводил свои проекты с AVR на ARM какая плотность кода получается при компиляции типовых задач (не "заточенных" под конкретную архитектуру процессора) ? Скажем для примера возьмем компилятор IAR для AVR и ARM, ARM в THUMB режиме.
|
|
|
|
|
 |
Ответов
|
Feb 21 2008, 10:19
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(Rst7 @ Feb 21 2008, 13:01)  А если еще и signed char, то вообще мраки начинаются... Да тоже самое что и unsigned char, просто сдвиг другой для unsigned используется пара LSL/LSR а для signed LSL/ASR. Вообще что бы код хорошо работал и на ARM и на AVR, я все локальные переменные объявляю uint_fast8_t, и все операции с переменными которые в памяти делаю через временные локальные объявленные как uint_fast8_t. Тогда все нормально загрузка идет через LDRB, а промежуточные операции все 32 битные (на ARM) Тут главное помнить что uint_fast8_t может быть больше 8 бит.... примерно так Код uint8_t var; void f(uint_fast8_t arg) { uint_fast8_t tmp; tmp = var; if ( tmp > arg) tmp = arg+5; else tmp*=2; var = tmp; }
Сообщение отредактировал KRS - Feb 21 2008, 10:27
|
|
|
|
|
Feb 21 2008, 11:42
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(KRS @ Feb 21 2008, 15:19)  Код uint8_t var; void f(uint_fast8_t arg) { .... } Реальное шаманство. А всего-то надо было в первой строке исправить тип переменной с char на int. Тестировал LPC2132 (без внешней шины) на предмет помехоустойчивости. С помощью искроподжигателя газа (применяющегося в котельных) так и не смог подвесить проц. Даже когда искра (мощная) происходила в 3 см от процессора. Плата простая двухсторонняя.
Сообщение отредактировал GetSmart - Feb 21 2008, 11:48
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
Сообщений в этой теме
e_ol ARM и AVR cравнение плотности кода Feb 21 2008, 00:28 GetSmart Экономить в ARMе на плотности кода примерно то же,... Feb 21 2008, 03:59 SIA Цитата(GetSmart @ Feb 21 2008, 06:59) Эко... Feb 21 2008, 07:26 vet e_ol
Переводил 67 кБ прошивку (из них 5 кБ констан... Feb 21 2008, 06:13 xelax Плотность ещё и от самого кода зависит. Например о... Feb 21 2008, 06:13 sensor_ua Cortex (STM32, Luminary) интересны, если рассматри... Feb 21 2008, 06:56 KRS Очень многое завист от назначения и необходимой ра... Feb 21 2008, 07:06 vesago Я проект с LPC2214 переносил на m128. Размер кода ... Feb 21 2008, 07:08 zltigo Цитата(vesago @ Feb 21 2008, 10:08) На пл... Feb 21 2008, 07:25  vesago Цитата(zltigo @ Feb 21 2008, 09:25) Ну е... Feb 21 2008, 11:20 zltigo Цитата(e_ol @ Feb 21 2008, 03:28) Кто пер... Feb 21 2008, 07:14 Rst7 Цитатамне до сих пор не встречалось AVR-овских исх... Feb 21 2008, 07:22 zltigo Цитата(Rst7 @ Feb 21 2008, 10:22) Ну не з... Feb 21 2008, 07:49  xelax Цитата(zltigo @ Feb 21 2008, 10:49) но на... Feb 21 2008, 08:49   aaarrr Цитата(xelax @ Feb 21 2008, 11:49) А по п... Feb 21 2008, 08:57    alexander55 Цитата(aaarrr @ Feb 21 2008, 11:57) Компи... Feb 21 2008, 09:59 Rst7 Цитатано настоятельно рекомендую посмотреть, что п... Feb 21 2008, 08:05 GetSmart Цитата(aaarrr)Компилятор просто начнет "делат... Feb 21 2008, 09:16 aaarrr А если бы не расширяла - легче было бы? Сделайте +... Feb 21 2008, 09:22   vesago Цитата(GetSmart @ Feb 21 2008, 13:42) Реа... Feb 21 2008, 12:12   Alechek Цитата(GetSmart @ Feb 21 2008, 16:42) Тес... Feb 21 2008, 18:27 GetSmart Это я тоже заметил. Просто компиляторы пока недост... Feb 21 2008, 10:14 GetSmart Ну уже писали же, что нужно предопределять типы, у... Feb 21 2008, 12:02 KRS Цитата(GetSmart @ Feb 21 2008, 15:02) Ну ... Feb 21 2008, 13:21
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|