af1283 0 29 декабря, 2013 Опубликовано 29 декабря, 2013 · Жалоба Хочу ответов мудрых на вопрос: в чем отличие системы команд Cortex-M3 и М4 и насколько они совместимы? Если читать книжку по М3, то можно опыт перенести на М4? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 29 декабря, 2013 Опубликовано 29 декабря, 2013 · Жалоба Всё, что работает на -M3, будет и на -M4. Последнее ядро содержит энное количество дополнительных команд, коих нет у ядра -M3. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lagman 1 29 декабря, 2013 Опубликовано 29 декабря, 2013 · Жалоба http://en.wikipedia.org/wiki/ARM_Cortex-M Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
af1283 0 29 декабря, 2013 Опубликовано 29 декабря, 2013 · Жалоба Спасибо. Ещё вопрос - что лучше начать изучать: ассемблер ARM или писать на Си? Вообще склоняюсь к асму, потому что скомпилировав программу-мигалку светодиода и посмотрев её размер, я ужаснулся - 12Кб!!! Даже с оптимизацией кода - 9. Проясните этот вопрос, пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skripach 6 29 декабря, 2013 Опубликовано 29 декабря, 2013 · Жалоба 12Кб!!! Сдуру можно и х.. сломать полмегабайта накомпилить. :santa2: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
af1283 0 29 декабря, 2013 Опубликовано 29 декабря, 2013 (изменено) · Жалоба Сдуру можно и х.. сломать полмегабайта накомпилить. :santa2: так что делать? я включил в проект startup-файл, файлы для конфигурации ввода-вывода и для тактирования. Без них просто не будет работать же. Изменено 29 декабря, 2013 пользователем af1283 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 29 декабря, 2013 Опубликовано 29 декабря, 2013 · Жалоба ИМХО, без знания ассемблера хороший специалист в области микроконтроллеров и т.п. вещей невозможен в принципе. На чём разрабатывать -- это уже второй вопрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewlekar 0 30 декабря, 2013 Опубликовано 30 декабря, 2013 · Жалоба Без них просто не будет работать же. Будет. Таблица векторов, задание параметров входов/выходов и тактирования через регистры процессора, сама программа. Ассемблер тут нафиг не нужен, по размеру кода в килобайт гарантированно уложитесь. без знания ассемблера хороший специалист в области микроконтроллеров и т.п. вещей невозможен в принципе. Возможен. Хороший специалист при необходимости любую технологию осваивает в течение месяца. Знать ассемблеры под все ходовые платформы нет никакого резона. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 30 декабря, 2013 Опубликовано 30 декабря, 2013 · Жалоба так что делать? я включил в проект startup-файл, файлы для конфигурации ввода-вывода и для тактирования. Без них просто не будет работать же. Вы использовали стандартную библиотеку. Если сами напишете на C, руководствуясь "Руководством...", то получите раз в 10 меньше размер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 49 30 декабря, 2013 Опубликовано 30 декабря, 2013 · Жалоба Вообще склоняюсь к асму, потому что скомпилировав программу-мигалку светодиода и посмотрев её размер, я ужаснулся - 12Кб!!! Да, согласен с вышесказанным, асм действительно желательно знать, или по крайне мере иметь представление(понимать, что за команды), писать лучше на си, конечно(все-таки это не аврка ) По поводу 12 кило - вы в курсе вообще, что для инициализации периферии в арме надо несколько больше команд, чем в той-же аврке? И второе - компилятор как правило еще вставляет код каких-либо библиотек, типа stdio и тп, а это тоже объем. Причем объем кода растет сильно в начале проекта, по мере добавления новых процедур код будет расти медленнее(процедуры-то уже подключены) ЗЫ. Посмотрите в свойствах проекта, что там конкретно подключается, можно поглядеть в ассемблерный код(за одним и начать его осваивать), тогда все будет ясно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
af1283 0 30 декабря, 2013 Опубликовано 30 декабря, 2013 · Жалоба Если сами напишете на C, руководствуясь "Руководством...", то получите раз в 10 меньше размер. Так так, вот это очень интересно. Где более-менее подробно описана инициализация? Это практически самая важная инфа для меня! писать лучше на си, конечно(все-таки это не аврка ) Никогда не понимал, когда искусственно вводят борьбу противоположностей: си и асм совсем не два категоричных выбора, они логично дополняют друг друга. Разве я не прав? По поводу 12 кило - вы в курсе вообще, что для инициализации периферии в арме надо несколько больше команд, чем в той-же аврке? И второе - компилятор как правило еще вставляет код каких-либо библиотек, типа stdio и тп, а это тоже объем. Да, я перехожу с AVR и не стесняюсь этого! С командами инициализации периферии я ещё не успел познакомиться, поэтому, нет, не в курсе. А вот за стандартные библиотеки Си таки большое "спасибо". Посмотрите в свойствах проекта, что там конкретно подключается, можно поглядеть в ассемблерный код(за одним и начать его осваивать), тогда все будет ясно. Посмотрел я необъятный код файла .lst и понял, что пока рано мне его смотреть. Нужна скелетная программа уровня " мы с божьей помощью проинициализировались" и вот там надо разобраться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 30 декабря, 2013 Опубликовано 30 декабря, 2013 · Жалоба Так так, вот это очень интересно. Где более-менее подробно описана инициализация? Это практически самая важная инфа для меня! В документации на процессор описано всё, что нужно. Естественно, думать при этом придётся самому, поскольку там не пошаговые инструкции. Т.е., если речь идёт, например, об установке нужной частоты работы, придётся самому определять значения, которые придётся загружать в регистры -- а для этого нужно, естественно, понимать, какой регистр для чего служит, как к ним обращаться и т.д. и т.п. В первый раз это может быть довольно сложно, но, однажды осмысленно решив задачу, проблем не будет ни с какими процессорами. Никогда не понимал, когда искусственно вводят борьбу противоположностей: си и асм совсем не два категоричных выбора, они логично дополняют друг друга. Разве я не прав? Ну, правильней сказать, что дополняют друг друга языки низкого уровня (ассемблеры) и высокого уровня -- ведь это не обязательно должен быть Си. Да, я перехожу с AVR и не стесняюсь этого! С командами инициализации периферии я ещё не успел познакомиться, поэтому, нет, не в курсе Команд нет, есть регистры устройств, в которые что-то надо писать. Посмотрел я необъятный код файла .lst и понял, что пока рано мне его смотреть. Нужна скелетная программа уровня " мы с божьей помощью проинициализировались" и вот там надо разобраться. .lst -- это листинг, куда попадает много чего. Смотреть нужно исходные тексты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
af1283 0 30 декабря, 2013 Опубликовано 30 декабря, 2013 · Жалоба SII, большое спасибо за помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 30 декабря, 2013 Опубликовано 30 декабря, 2013 · Жалоба .lst -- это листинг, куда попадает много чего. Смотреть нужно исходные тексты. + нужно map смотреть, что там у нас в образе лежит Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 31 декабря, 2013 Опубликовано 31 декабря, 2013 · Жалоба Если работать в Keil, то можно задать создавать листинг C компилятора .txt, там, практически, одни ассемблерные команды. Очень полезные файлы для обучения и поиска ошибок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться