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

Хочу ответов мудрых на вопрос: в чем отличие системы команд Cortex-M3 и М4 и насколько они совместимы? Если читать книжку по М3, то можно опыт перенести на М4? Спасибо.

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


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

Всё, что работает на -M3, будет и на -M4. Последнее ядро содержит энное количество дополнительных команд, коих нет у ядра -M3.

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


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

Спасибо. Ещё вопрос - что лучше начать изучать: ассемблер ARM или писать на Си? Вообще склоняюсь к асму, потому что скомпилировав программу-мигалку светодиода и посмотрев её размер, я ужаснулся - 12Кб!!! Даже с оптимизацией кода - 9. Проясните этот вопрос, пожалуйста.

 

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


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

Сдуру можно и х.. сломать полмегабайта накомпилить. :santa2:

так что делать? я включил в проект startup-файл, файлы для конфигурации ввода-вывода и для тактирования. Без них просто не будет работать же.

Изменено пользователем af1283

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


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

ИМХО, без знания ассемблера хороший специалист в области микроконтроллеров и т.п. вещей невозможен в принципе. На чём разрабатывать -- это уже второй вопрос.

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


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

Без них просто не будет работать же.

Будет. Таблица векторов, задание параметров входов/выходов и тактирования через регистры процессора, сама программа. Ассемблер тут нафиг не нужен, по размеру кода в килобайт гарантированно уложитесь.

 

без знания ассемблера хороший специалист в области микроконтроллеров и т.п. вещей невозможен в принципе.

Возможен. Хороший специалист при необходимости любую технологию осваивает в течение месяца. Знать ассемблеры под все ходовые платформы нет никакого резона.

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


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

так что делать? я включил в проект startup-файл, файлы для конфигурации ввода-вывода и для тактирования. Без них просто не будет работать же.

Вы использовали стандартную библиотеку. Если сами напишете на C, руководствуясь "Руководством...", то получите раз в 10 меньше размер.

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


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

 

Вообще склоняюсь к асму, потому что скомпилировав программу-мигалку светодиода и посмотрев её размер, я ужаснулся - 12Кб!!!

 

Да, согласен с вышесказанным, асм действительно желательно знать, или по крайне мере иметь представление(понимать, что за команды), писать лучше на си, конечно(все-таки это не аврка :biggrin: )

По поводу 12 кило - вы в курсе вообще, что для инициализации периферии в арме надо несколько больше команд, чем в той-же аврке? И второе - компилятор как правило еще вставляет код каких-либо библиотек, типа stdio и тп, а это тоже объем.

Причем объем кода растет сильно в начале проекта, по мере добавления новых процедур код будет расти медленнее(процедуры-то уже подключены)

ЗЫ. Посмотрите в свойствах проекта, что там конкретно подключается, можно поглядеть в ассемблерный код(за одним и начать его осваивать), тогда все будет ясно.

 

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


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

Если сами напишете на C, руководствуясь "Руководством...", то получите раз в 10 меньше размер.

 

Так так, вот это очень интересно. Где более-менее подробно описана инициализация? Это практически самая важная инфа для меня!

 

писать лучше на си, конечно(все-таки это не аврка :biggrin: )

 

Никогда не понимал, когда искусственно вводят борьбу противоположностей: си и асм совсем не два категоричных выбора, они логично дополняют друг друга. Разве я не прав?

 

По поводу 12 кило - вы в курсе вообще, что для инициализации периферии в арме надо несколько больше команд, чем в той-же аврке? И второе - компилятор как правило еще вставляет код каких-либо библиотек, типа stdio и тп, а это тоже объем.

 

Да, я перехожу с AVR и не стесняюсь этого! :biggrin: С командами инициализации периферии я ещё не успел познакомиться, поэтому, нет, не в курсе. А вот за стандартные библиотеки Си таки большое "спасибо".

 

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

 

Посмотрел я необъятный код файла .lst и понял, что пока рано мне его смотреть. Нужна скелетная программа уровня " мы с божьей помощью проинициализировались" и вот там надо разобраться.

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


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

Так так, вот это очень интересно. Где более-менее подробно описана инициализация? Это практически самая важная инфа для меня!

 

В документации на процессор описано всё, что нужно. Естественно, думать при этом придётся самому, поскольку там не пошаговые инструкции. Т.е., если речь идёт, например, об установке нужной частоты работы, придётся самому определять значения, которые придётся загружать в регистры -- а для этого нужно, естественно, понимать, какой регистр для чего служит, как к ним обращаться и т.д. и т.п. В первый раз это может быть довольно сложно, но, однажды осмысленно решив задачу, проблем не будет ни с какими процессорами.

 

Никогда не понимал, когда искусственно вводят борьбу противоположностей: си и асм совсем не два категоричных выбора, они логично дополняют друг друга. Разве я не прав?

 

Ну, правильней сказать, что дополняют друг друга языки низкого уровня (ассемблеры) и высокого уровня -- ведь это не обязательно должен быть Си.

 

Да, я перехожу с AVR и не стесняюсь этого! :biggrin: С командами инициализации периферии я ещё не успел познакомиться, поэтому, нет, не в курсе

 

Команд нет, есть регистры устройств, в которые что-то надо писать.

 

 

Посмотрел я необъятный код файла .lst и понял, что пока рано мне его смотреть. Нужна скелетная программа уровня " мы с божьей помощью проинициализировались" и вот там надо разобраться.

 

.lst -- это листинг, куда попадает много чего. Смотреть нужно исходные тексты.

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


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

.lst -- это листинг, куда попадает много чего. Смотреть нужно исходные тексты.

+

нужно map смотреть, что там у нас в образе лежит

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


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

Если работать в Keil, то можно задать создавать листинг C компилятора .txt, там, практически, одни ассемблерные команды. Очень полезные файлы для обучения и поиска ошибок.

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


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

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

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

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

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

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

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

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

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

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