Перейти к содержанию
    

Всем привет. Решил изучать arm (lpc21xx), но не могу определиться: то ли на C писать, то ли на asm. Все примеры приводятся на C. Есть смысл отказываться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По целям мне подходит asm. Боюсь собеседников потерять...

У IAR я не нашел документа типа "Mixing C and ASM" для ARM.

Рекомендуют писать на С, выводить листинк ASM и по его образу и подобию переписиывать функции требующие повышенного быстродействия.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По целям мне подходит asm. Боюсь собеседников потерять...

 

Этот вопрос уж не знаю сколько раз повсюду в inet'e и в литературе обсуждался. Есть смысл писать на asm'e только критичные по скорости функции, или те, которые завязаны на обращение к специфическим узлам процессора или его периферии. Все остальное - потеря времени разработчика.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Этот вопрос уж не знаю сколько раз повсюду в inet'e и в литературе обсуждался. Есть смысл писать на asm'e только критичные по скорости функции, или те, которые завязаны на обращение к специфическим узлам процессора или его периферии. Все остальное - потеря времени разработчика.

Поддерживаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У IAR я не нашел документа типа "Mixing C and ASM" для ARM.

Ну во-первых про mixing поминаение есть, а во-вторых Advanced RISC Machines Ltd ARM/Thumb Procedure Call Standard. Сие есть официальный документ. Лежит на армовском сайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Очевидно. За этим языки высокого уровня и создавались. Почему в моем случае можно сделать исключение, потому что я программирую для задач реального времени. Компилятор хуже справляется с оптимизацией по быстродействию/размеру кода, чем я. Я хочу создать asm библиотеку нужных мне функций, и меня интересует, почему все иллюстрируется на C (хотя мне понятней asm)? Пожалуй многое зависит от компилятора...

АРМ я начал изучать несколько дней назад. Мощная вещь - на asm таких "финтов" можно наделать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще-то линейный код компилятор делает почти идеально. Я сам спец по асму и фанат быстродействия, но не имею претензий к компилятору ИАР 4.20. Имеет смысл писать на асме только очень критические циклы. Которые можно легко вставить в сишный файл. А в остальном как уже писали - напрасная трата времени.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему в моем случае можно сделать исключение, потому что я программирую для задач реального времени.

Вы не первый :)

Компилятор хуже справляется с оптимизацией по быстродействию/размеру кода, чем я.

А это уже не факт. Пока Вы соревнуетесь в простейших задачах о несколько десятков команд, у Вас есть все шансы обогнать компилятор потратив при этом некоторое время. Но, на больших сложных кусках шансы, что компилятор сделает Вас становятся очень высокими. По любому аккуратно и четко выраженная выраженная на С мысль очень хорошо понимается компиляторами и накладные расходы едва-ли превышают десяток процентов против кропотливой ручной работы. Посему лучше направьте усилия на освоение, понимание и владение "C". Ну а на ARM-ASM уж самые узкие места расшивать можно - по полсотни команд, не более.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините за "не в тему", но грустно за ассемблер :( Он уже и для контроллеров не очень и нужен, а уж для ПК и подавно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините за "не в тему", но грустно за ассемблер :( Он уже и для контроллеров не очень и нужен, а уж для ПК и подавно...

Он нужен для "писальщиков" компиляторов, или людей решивших вжиться в архитектуру кристалла на котором они работают. Лично мои задачи ужасно далеки от супер оптимизации, а личные амбиции вообще лежат в другой области, и с asm я практически не работаю... Думаю похожая ситуация у многих…

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В принципе и сам ARM разрабатывался для удобства программирования на языках высокого уровня.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Очевидно. За этим языки высокого уровня и создавались. Почему в моем случае можно сделать исключение, потому что я программирую для задач реального времени. Компилятор хуже справляется с оптимизацией по быстродействию/размеру кода, чем я. Я хочу создать asm библиотеку нужных мне функций, и меня интересует, почему все иллюстрируется на C (хотя мне понятней asm)? Пожалуй многое зависит от компилятора...

АРМ я начал изучать несколько дней назад. Мощная вещь - на asm таких "финтов" можно наделать...

 

Не помню откуда: "Вам шашечки или ехать?"

 

Так вот, если вам "шашечки", то занимайтесь асмом. Изучите мат. часть в совершенстве, мозги потренируете, да и вообще, программописательство на асме дает глубокое понимание архитектуры и процессов происходящих на низком уровне.

 

А если вам "ехать" да еще и побыстрее - С, С и только С. Ну иногда С++ можно :) Сам много лет писал на асме, с трудом ЗАСТАВИЛ себя пересесть за С - теперь за уши не отташишь. И забейте на то что код получается не оптимальным, зато других преимуществ вагон. Если освоите С, сами все поймете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...