Компилятор и редактор кода для Padauk (Free PDK)

Для создания программ для микроконтроллеров Padauk необходим компилятор и редактор. В качестве компилятора будем использовать SSDC — Small Device C Compiler.

Загружаем и устанавливаем SSDC отсюда. На момент написания статьи уже есть версия 4.4.0. Но лучше скачать версию 4.2.0. Именно под нее сообществом Free PDK создавались все файлы для программатора. Использование самого свежего дистрибутива приведет к необходимости корректировки некоторых файлов.

Скачиваем и устанавливаем.

Вторым шагом необходимо подобрать какой-нибудь редактор кода, поддерживающий компилятор SSDC. Мой выбор пал на CodeBlocks. Загружаем и устанавливаем например отсюда.

Создаем первый проект

Открываем CodeBlocks, выбираем Setting / Comiler and Debugger:

Выбираем SSDC (или Small Device C Compiler) и нажимаем кнопку «Set as Default». Сохраняем.

Дальше создадим новый проект: File / New / Project и выбираем «Empty project».

Создаём проект, даём название, например «TEST1».

Убедитесь, что в качестве компилятора выбран SDCC, снимите флажок «Create “Debug” configuration», а галку на “Release” оставьте. Нажмите «Finish».

Скорее всего вы получите такие предупреждения. Их мы игнорируем.

Выставляем свойства проекта

Щёлкните ПКМ имя своего проекта в окне «Management» (слева), и нажмите «Properties».

Откройте вкладку «Build targets». Здесь перечислены все (но в нашем случае одна) конфигурации сборки кода. Изменим настройки единственной конфигурации «Release» — нажмём кнопку «Build options…».

Открываем вкладку «Other options» и вписываем флаг в зависимости от разрядности микроконтроллера. В моём случае это «-mpdk14».

Вы можете изменить цифры согласно таблице ниже.

Таблица разрядности микроконтроллеров

Нажимаем «ОК», закрываем одно окно.

Настраиваем дальше. В поле «Type» выбираем «Console aplication». Меняем расширение «Output filename» c .exe на .ihx. Убираем галку на «Auto-generate filename extension».

«OK», Закрываем.

Теперь создаём новый пустой файл в проекте:

Вас спросят, хотите ли вы, чтобы новый файл был добавлен в проект. Нажмите «Yes».

Даём имя файлу, например, «main.c» Для проверки копируем код отсюда, вставляем в редактор, и нажимаем «Build» (Ctrl+F9).

По окончании получим результат компиляции без ошибок. Заходим через Проводник в папку, в которой создавали проект и открываем bin\Release.

Файл Test1.ihx и есть наша скомпилированная программа, которую необходимо записать в микроконтроллер.

Для прошивки нам снова понадобится EASYPDKPROG, речь о нём шла во второй части. Необходимо скачать, если вы не делали этого раньше. Приложение работает в командной строке.

Нажимаем по пустому месту Shift+ПКМ, выбираем   «Открыть окно команд». В командной строке можно вписать одну из доступных команд для PFS154 (команды пишутся без кавычек).

  • «easypdkprog probe» — для проверки подключения программатора и установленного в него микроконтроллера;
  • «easypdkprog -n PFS154 read readout.ihx» — для чтения из микроконтоллера в файл readout.ihx;
  • «easypdkprog -n PFS154 write Test1.ihx» — для записи в микроконтроллер файла;

Весь список команд можно посмотреть на странице.

Ниже список микроконтроллеров . Красным отмечены неподдерживаемые.

PMS150C  PMS152  PFS154  PMS154B  PMS154C

PMS15A

PFS154   PFS172   PFS173

PMS171B он по списку сообщества проходит как поддерживаемый, но у при запросе, EASYPDKPROG видит его как «unsupported».


Несколько слов о файлах Free PDK на Гитхабе, в частности о примерах кода. Представлены три страницы с примерами кода для микроконтроллеров Padauk.

  • sdcc-pdk-code-examples — здесь находятся примеры для компилятора sdcc, не требующие никаких дополнительных инклудов. Код для компиляции достаточно просто скопировать и вставить в Кодеблок.
  • free-pdk-examples — здесь допиленные сообществом  MCUs. Простым копированием не обойтись. Необходимо дополнить проект файлами include. Соответственно, код становится более читабельным и понятным.
  • fppa-code-examples — это уже примеры от производителя, код совсем приятный. Но компилируется только в родной IDE, которая идет с заводским программатором.

Самый интересный вариант — free-pdk-examples. Нужно учесть, что на странице висит предупреждение, о том что способ ещё в разработке и пользоваться им нужно осторожно.

Чтобы можно было пользоваться примерами сообщества нужно добавить файлы include в проект. Для начала необходимо их скачать. Они находятся здесь .

Скачать папку «include» отдельно не получится, поэтому скачиваем весь проект с Гитхаба (Code / Download ZIP). Распаковываем в любом месте, открываем папку include. Распределяем файлы и папки:

  • папки easy-pdk и pdk копируем в папку include компилятора SDCC. Обычно она находится по пути C:\Program Files\SDCC\include;
  • четыре оставшихся файла .h копируем в проект рядом с файлом .c нашего проекта.

По задумке авторов сборка должна выполняться с помощью программы Make, алгоритм сборки описан в каждом из примеров в файле Makefile. С помощью этого файла в код дополнительно добавляются некоторые define-ы, значения которых установлены в самом «Makefile». Мы это программой пользоваться не будем (она сама и скрипт написаны под linux), поэтому укажем эти дефайны вручную прямо в начале кода.

Для PFS154:

#define PFS154
#define F_CPU 1000000
#define TARGET_VDD_MV  4000
#define TARGET_VDD  4.0

Готовый проект можно скачать и открыть в CodeBlocks.