PIC32MX конвейер

PIC
В прошлой статье осталась некоторая недосказанность по поводу инструкции «nop» сразу после вызова функции.
Такое поведение связано с особенностью архитектуры MIPS32 — «branch delay slot». Как всё это работает?



Читать дальше

Код запуска (startup) на PIC32

PIC
Продолжаем углубляться в процесс загрузки контроллеров PIC32MX. В этой части будет станет понятно как запускается функция main.


Читать дальше

Линковка и стартовый код в PIC32.

PIC
Транслятор с ассемблера в машинные коды, а значит и наши знания assembler MIPS32, были бы безполезны, без способности превратить код в прошивку микроконтроллера. Эта статья описывает скрипт линковки для 32MX320F128L. Ассемблера не очень много, в основном описываются сами процессы и структура файлов.


Читать дальше

Изучение ассемблера на PIC32: COM, буферизованная запись

PIC
Учимся работать со структурами данных, вложенными функциями. Использование препроцессора языка C совместно с ассемблером. На этот раз микроконтроллер PIC будет выводить «Hello World» через COM порт.


Читать дальше

Изучение ассемблера на PIC32: последовательный порт (COM)

PIC
Передаем один байт с платы Chipkit Uno32 на компьютер через UART. Углубляемся в архитектуру процессоров MIPS32.


Читать дальше

Изучение ассемблера на PIC32: моргаем светодиодом

PIC
Постижение программирования под микроконтроллеры требует, если не навыка работы с ассемблером, то хотя бы понимания ассемблера. Я буду использовать Arduino совместимую плату, чтобы показать, как работать с ассемблером на контроллерах PIC32. Начну, по традиции, с мигающего светодиода, который уже распаян на плате.


Читать дальше