Как оказалось, 4 килобайта — это очень мало. Особенно, если писать на C.
Поправьте меня кто нибудь если я не прав. Но у меня сложилось впечатление, что Arduino IDE в исполняемый файл подсовывает еще какой-то свой код. Который берет довольно много места. Например, когда для работы с LCD дисплеем я использовал Arduino IDE + liquidcrystal_i2c библиотеку, сборка заняла примерно 2500 байт. Без Arduino IDE и со своей библиотекой для i2c и дисплея та же функциональность уместилась в 750 байт.
Наверное я чего-то не понимаю, но Android вроде как тоже с открытым исходным кодом, на базе Linux. В чем смысл брать Sailfish, если можно взять Android?
Полностью согласен. Где-то пол года назад сильно думал чего бы нового изучить, при этом всегда был страх что я потрачу много времени на изучение и когда я хоть что-то смогу с изученной технологией сделать она уже устареет. В итоге начал учить ассемблер и основные принципы работы микропроцессоров. Эта тема врядли скоро устареет, а знания эти помогут лучше понять тотже С/С++. К тому-же открываются большие перспективы для дальнейшего обучения.
На счет MSP430 не знаю, по поводу AVR ассемблера согласен, он значительно проще чем ARM. На C сейчас программировать не хочу, ассемблер на мой взгляд более наглядно демонстрирует устройство микроконтроллера. Сейчас я хочу именно понять как работает различное железо. Хотя если вдруг возникнет идея сделать конкретный проект то я предпочту С. Глобальный план сейчас посмотреть в общих чертах как работает Cortex-M и перейти к Cortex-A. На Cortex-A хочу остановиться более подробно.
Полностью согласен с тем, что то что сейчас получается не является хорошим примером кода на ассемблере. Эта тема для меня абсолютно не знакомая и сейчас я пытаюсь понять как это работает. Естественно на людей которые знакомы с темой эти попытки производят ужасающее впечатление :) Но информации по данной теме не так много по-этому я решил написать о том что получилось. По поводу дефайнов, если их не устанавливать в мейне, то все будет работать. Но если модули включить в других модулях и в мейне, то компилятор попытается сгенерировать один и тот же код дважды и вылетит с ошибкой.
Спасибо за лестный отзыв :) Но я боюсь Вы переоценивайте мои способности. Я с ассемблером познакомился только пол года назад и сейчас крайне сомневаюсь что моих знаний хватит чтобы потянуть чего-то серьезное. Пока хочу сосредоточится на обучении. Когда-нибудь я планирую разобраться с загрузчиками, но пока я к этому не готов.
Как раз про них я и подумал, что следовало бы настроить прерывания по RTC. Я настроил по TIM2. Возможно что-то настроил не правильно, но добиться задержки в секунду по нему у меня не получилось.
Спасибо за статью. С недавних пор тоже заинтересовался темой программирования на ассемблере и начал эксперементировать с Arduino Uno. Правда писал на GNU Assembler и компилировал в avr-gcc. В статье очень подробно описан процесс отладки, но микроконтроллеры обычно используются с датчиками. Собственно вопрос, возможно ли эмулировать датчик или для отладки работы датчиков нужен hardware debugger?
Полностью согласен. Если должность и/или зарплата предлагаются в последнии момент, у меня лично появляется ощущение, что каждый раз перед повышением зарплаты мне придется увольнительную писать… Не самое приятное ощущение.
Поправьте меня кто нибудь если я не прав. Но у меня сложилось впечатление, что Arduino IDE в исполняемый файл подсовывает еще какой-то свой код. Который берет довольно много места. Например, когда для работы с LCD дисплеем я использовал Arduino IDE + liquidcrystal_i2c библиотеку, сборка заняла примерно 2500 байт. Без Arduino IDE и со своей библиотекой для i2c и дисплея та же функциональность уместилась в 750 байт.