IDE для MIK32 Амур с тулчейном Syntacore

ВНИМАНИЕ!!! ПРОЕКТ ПЕРЕНЕСЁН НА ПЛАТФОРМУ ВК.​

Подробности читайте здесь.

Предисловие (крик души, ничего личного!)​

К большому сожалению разработчик микроконтроллера MIK32 (он же Амур) не радует наличием современных IDE, предназначенных для разработки ПО. В настоящее время пользователям доступна возможность использования PlatformIO (на базе VS Code) и MikronIDE (Eclipse). Если последняя IDE и получает очень редкие обновления, то в отношении первой складывается ощущение о полной заброшенности поддержки. Если выразится точнее, то MikronIDE построен на базе Eclipse IDE for C/C++ Developers (даже не сборка для Embedded) версии 4.24.0 (выпуск июнь 2022). При этом сборка абсолютно не масштабируема, любая установка пакетов приводит к сбросу всех настроек. Библиотеки исходных кодов (LL и HAL), по непонятным мне причинам, дублируются в каждом проекте, и разбросаны по разным уровням папок проекта. Примеры программ и генератор периферии разработаны для PlatformIO, в состав MikronIDE включены всего два шаблона (причем, один из них похож на полигон мыслей) и пример загрузчика. Обновление среды штатными средствами невозможна. Но не смотря на все недостатки, она позволяет быстро начать работу с микроконтроллером, и что не мало важно, позволяет мониторить значения в регистрах при отладке кода.
В тоже время, новым пользователям, для освоения перспективных горизонтов отечественной электроники (вывод сделан на основе личного опыта) необходима полноценная, современная, масштабируемая среда разработки с "джентльменским" набором примеров кода для решения различных задач использования микроконтроллера (а возможно и с обвязкой LL и HAL библиотек высокоуровневым API типа Wiring для быстрого прототипирования устройств и обучения).

По существу​

Всё описанное выше натолкнуло меня на мысль, а не собрать ли IDE и пакет библиотек, которые позволили бы решить, если не все проблемы, то хотя бы большую часть из них. Изучение используемых различными разработчиками микроконтроллеров IDE привело к выводам, что большинство из них используют Eclipse Embedded сборку, на втором месте оказались плагины IDE VS Code. Если говорить о MIK32, то использование VS Code, как минимум требует написания кучи скриптов для CMake, что пока не видится мне осуществимым в краткосрочной перспективе (хотя Syntacore активно занимается этим вопросом, но основная их направленность на поддержку эмулятора qmenu). В итоге остался первый вариант - использовать Eclipse. В результате экспериментов и пары бессонных ночей удалось собрать IDE для MIK32 на базе Syntacore Development Toolkit for RISC-V (SC-DT, использовал версию 2023.11-win). Данная IDE разработывается Syntacore с учетом особенностей SCRx ядер (для справки, MIK32 построен на ядре SCR1).

В сухом остатке...​


В текущей, выставляемой на суд общественности, версии можно выделить следующие моменты:
  • появилась возможность использовать компилятор LLVM/clang;
  • по умолчанию используется кроссплатформенные компиляторы GCC (в т.ч. Assembler) и линковщик объектного кода для RISC-V архитектуры (от Syntacore для SCRx);
  • настроена поддержка отладки кода с помощью GNU GDB в связке с OpenOCD и программаторами JTAG на основе чипов FT2232Hx;
  • есть возможность настройки отладки с использованием нативных драйверов SEGGER для JLink (ядро SCR1 поддерживается J-link v11 и выше);
  • добавлен и настроен скрипт загрузки бинарного кода посредством OpenOCD + JTAG - mik32-uploader;
  • установлен плагин Embedded Systems Peripherals Register View, добавлена карта регистров MIK32 (из MikronIDE);
  • переработаны шаблоны для создания новых проектов:
    • исключено дублирование LL и HAL библиотек путем их выноса в отдельную папку (MIK32_SRC). Что позволяет упростить процесс обновления библиотек и повторно использовать их в новых проектах (линкуются к проекту в настройках и рассматриваются Eclipse, как source-папка проекта не нарушая работы построителя индексов);
    • добавлен и переработан шаблон template (для создания программ использующих LL и HAL библиотеки);
    • добавлен и откорректирован шаблон template_freertos (для создания программ на основе ОСРВ);
    • библиотеки описания регистров ядра и периферии перенесены в папку LL (Low level);
    • библиотеки уровня аппаратной абстракции сохранились в папке HAL;
    • библиотеки (файлы) для работы с UART и xprint перемещены в папку SF (Service function);
    • в шаблоны включены файлы readme.md с описанием их назначения и инструкцией для создания новых проектов на их основе.
Актуальная версия IDE для MIK32

Вместо заключения​


Просьба к сообществу, по возможности провести тестирование данной сборки, обратная связь приветствуется!

В данной теме прошу оставлять ваши замечания и предложения по сборке IDE.

Так же хотелось бы узнать о целесообразности дальнейшей поддержки и развития данной сборки IDE.

Если у вас появилось желание помочь в этом нелегком деле, тоже пишите.
 
Последнее редактирование:

cryptozoy

Member
mik32-uploader с добавлением команды выхода микросхемы внешней памяти из режима QPI в режим SPI перед началом её прошивки. Изменения найдёте в файле «mik32_spifi.py» и естественно в пересобранном «mik32_upload.exe». Пересоберите его сами, если вдруг пути к библиотекам пайтона не соответствуют. Данная тема обсуждалась ранее тут и тут.
 
Последнее редактирование:

Shagen

New member
1. Спасибо за предложенный вариант и сборку!

2. Для template примера, "из коробки" работает пример для SPIFI и не работают сборки конфигурации для RAM и EEPROM, ссылаясь на отсутствующий файл:

../src/main.c:1:10: fatal error: mcu32_memory_map.h: No such file or directory

Если ручками прописать - то всё ОК.
 
Подготовлена новая версия IDE для MIK32 на основе Syntacore IDE. В данной версии учтены высказанные замечания и предложения, а также внесены изменения в настройки шаблонов.
Список внесенных изменений.
  1. Обновлена версия Syntacore IDE с 2023.11 на 2024.05 (сборка 0.1.0.202405171149):
    • компилятор GCC 13.2;
    • компилятор LLVM 17.0.0;
    • отладчик GNU GDB 13.2;
    • OpenOCD 0.12+dev;
    • Eclipse IDE 2024-03;
    • и др. см. на оф. сайте
  2. Поддержка MIK32:
    • обновлен mik32-uploader-master (добавлена команда выхода микросхемы внешней памяти из режима QPI в режим SPI перед началом её прошивки);
    • добавлен плагин Embedded Systems Peripherals Register View + карта памяти регистров MIK32;
    • в файл конфигурации m-link.cfg, для программаторов на основе чипов FT2232H(L), добавлен параметр adapter speed 500;
    • для настройки ярлыка запуска IDE в корневую папку добавлен файл иконки с логотипом Syntacore;
    • исправлена ошибка в настройках шаблонов проектов, приводившая к невозможности сборки проектов в режимах RAM и EEPROM.
 
Последнее редактирование:

ejsanyo

Active member
Подготовлена новая версия IDE для MIK32 на основе Syntacore IDE.
0,18 Микрона этому господину! (y) По крайней мере, у меня оно стартует даже чуть быстрее, чем "Mikron IDE". На самом деле, конечно, некоторые нюансы есть. Чтобы у меня всё заработало, сделал следующее:
Хмм, с моих исходников Синтакоровский компилятор делает код на несколько кБ длиннее, чем "обычный". У меня выставлена опция -Ofast, если что. По скорости выполнения кода, правда, результаты не сравнивал.
Ещё такой момент: при запуске мне Эклипс из данной сборки каждый раз выкидывает сообщение, мол, 'Windows Defender Exclusion check' has encountered a problem. Работать это ему, вроде, не мешает, но не очень понятно, нафиг вообще ему лезть в настройки фаервола? :unsure: Вроде это не PlatformIO, чтоб каждый раз лезть за обновлениями?
 

ejsanyo

Active member
Ещё уточню такой момент, чтобы они скомпилялись нормально, сделал вот что:
  • Добавил в проекте путь "${workspace_loc:/${ProjName}/MIK32_SRC/HAL/utilities/Include}"
  • Заменил файлы spifi.h и scr1_timer.h на более свежие, которые вытащил из моей текущей версии "Mikron IDE"
 

ejsanyo

Active member
Если вас не затруднит, сделайте пожалуйста архив и скинте мне ссылку
Если это поможет, то вот держите.
На счет долбежки IDE в сеть, я подозреваю это связано с автоматическим обновлением
Вроде там они и так выключены, насколько могу судить из настроек, в какие смог добраться. А у вас такого не происходит? В интернетах про это что-то находится, но, похоже, даже самим разработчикам до конца не понятно, то ли это баг, то ли фича. Кстати, на другом компе это сообщение не вылезает, хотя там практически такое же окружение. Потихоньку начинаю подозревать диверсию со стороны Касперского, на первом компе он заметно так занимается "самодеятельностью"... 🤫
 
Последнее редактирование:

Shagen

New member
Ещё уточню такой момент, чтобы они скомпилялись нормально, сделал вот что:
  • Добавил в проекте путь "${workspace_loc:/${ProjName}/MIK32_SRC/HAL/utilities/Include}"
  • Заменил файлы spifi.h и scr1_timer.h на более свежие, которые вытащил из моей текущей версии "Mikron IDE"
Если я не ошибаюсь, то:

Если будет ещё кто-нибудь не разбирающийся в Эклипсе (как я), то прописывать надо сюда:
Project - properties - C\C++ Build - Settings - Tool settings - Cross C Compiler - Includes.
Include paths (-I) -> add...
 

Shagen

New member
Для тех у кого не работает UART1 и работает UART0 приведу вариант решения.
Если настроен только UART1, без UART0, то МК виснет после функций на передачу из списка xprintf.


В uart_lib.c, на которую ссылается xprintf.c,
функция putc "намертво прибита" только к UART0:

void __attribute__((weak)) xputc(char c)
{
UART_WriteByte(UART_0, c);
UART_WaitTransmission(UART_0);
}

Это и в родной Mikron_IDE(*) и в Syntacore_IDE 0.1.0.202405171149 от Sparrow в среду (поэтому пишу здесь)
Понимаю что Sparrow196 и ejsanyo могли уже исправить.
Также про устаревшую версию xprintf уже писал ejsanyo ранее:

*
*Администратор форума, если нужно, могу продублировать в разделе "периферийные блоки" или "Eclipse IDE" в любой теме про UART или создать отдельную тему.


П.С. пара дней огорчений впустую...
 
Подготовлена новая версия IDE для MIK32 на основе Syntacore IDE. Список внесенных изменений.
  1. Syntacore IDE с 2023.11:
    • в настройках отключены режим автообновления, проверки наличия обновлений и репозитории обновлений.
  2. Поддержка MIK32:
    • обновлена библиотека HAL (источник https://github.com/MikronMIK32/mik32-hal);
    • обновлена библиотека LL (источник https://github.com/MikronMIK32/mik32v2-shared);
    • обновлена библиотека xprintf с версии 2012 до версии 2021 (источник https://github.com/sinferwu/xprintf), внесены изменения в шаблон template и заголовочный файл uart_lib.h (в т.ч. добавлена возможность выбора использования UART_0 или UART_1 для вывода сообщений функцией xprintf при инициализации проекта);
    • в папку SF добавлены низкоуровневые библиотеки для работы с DMA, RTC и SPI (входят в состав сборки библиотек MIK32 для PlatformIO);
    • внесены изменения в настройки шаблонов проектов - добавлена ссылка на заголовочные файлы размещенные в папке /MIK32_SRC/HAL/utilities/Include;
    • устранена коллизия символьных переменных в заголовочных файлах низкого уровня riscv_csr_encoding.h и scr1_csr_encoding.h (дублирование символьных констант MSTATUS_MIE, MSTATUS_MPIE, MSTATUS_MPP, MIP_MSIP и MIP_MEIP приводили к выводу предупреждений IDE при компиляции проекта).
 
Последнее редактирование:
== 2024-07-13 == IDE для MIK32 на основе Syntacore IDE

Список изменений:
1. Обновлены библиотеки xprintf и uart_lib (источник https://github.com/spam-receiver/mik32v2-shared/tree/main). Отдельное СПАСИБО пользователю cryptozoy за оперативное исправление библиотек!!!
2. В настройки IDE для сборки кода добавлены директивы предпроцессора MIK32_RAM, MIK32_EEPROM, MIK32_SPIFI.
3. Для уменьшения объема исполняемого файла, в xprintf при сборке программы для RAM и EEPROM по умолчанию выключена поддержка типов long int и float.
4. Для отключения поддержки типов long int и float в режиме сборки для SPIFI может использоваться директива XF_NO_USE_LL_F.
5. В xprintf включен режим преобразования "\n" => "\r\n" (константа предпроцессора XF_CRLF).

6. (!Экспериментально!) Добавлена поддержка модульного тестирования:
- внедрен фреймворк Unity, запуск тестов осуществляется непосредственно на устройстве (источник https://github.com/ThrowTheSwitch/Unity/tree/master);
- вывод результатов выполнения тестов и сообщений осуществляется через терминал (UART_x) с использованием функции xputc из библиотеки xprintf;
- для работы с Unity в IDE добавлен шаблон template_for_test, демонстрирующий простой пример использования фреймворка (на период эксперимента все файлы фреймворка располагаются в папке src);
- включен режим чтения настроек из unity_config.h (директива UNITY_INCLUDE_CONFIG_H);
- включен режим поддержки форматирования (цветного режима) вывода в терминал (директива UNITY_OUTPUT_COLOR);
- включен режим вывода сообщений в стиле Eclipse (директива UNITY_OUTPUT_FOR_ECLIPSE).

Примечания:
- фреймворк Unity добавлен для проведения экспериментов и оценки целесообразности его использования в проектах на базе MIK32 Амур;
- так как выполнена только первичная настройка фреймворка, возможны ошибки и сбои в его работе;
- для адаптации кода Unity в экосистему MIK32 используется отдельный шаблон (проект), в случае успешного исхода, фреймворк будет интегрирован в общий шаблон для проектов и добавлены настройки в IDE для запуска тестов;
- так как Unity не поддерживает кириллицу, выводит её символы в виде 16-ричных кодов (зашито в коде, строка 81 файла unity.c) рассматриваю вопрос о интеграции Unity с библиотекой xprintf в части вывода информации.

P.S. И как обычно, готов принимать предложения, замечания и рекомендации.
 
Последнее редактирование:

ejsanyo

Active member
== 2024-07-13 == IDE для MIK32 на основе Syntacore IDE
Пару модификаций я всё-таки для себя сделал. Вот, в частности, добавил в mik32_hal_spifi_w25.c функцию:
C:
const uint32_t cmd_write_disable =
    SPIFI_DIRECTION_INPUT |
    SPIFI_CONFIG_CMD_INTLEN(0) |
    SPIFI_CONFIG_CMD_FIELDFORM(SPIFI_FIELDFORM_ALL_SERIAL) |
    SPIFI_CONFIG_CMD_FRAMEFORM(SPIFI_FRAMEFORM_OPCODE) |
    SPIFI_CONFIG_CMD_OPCODE(WRITE_DISABLE);

void HAL_SPIFI_W25_WriteDisable(SPIFI_HandleTypeDef *spifi)
{
    HAL_SPIFI_SendCommand_LL(spifi, cmd_write_disable, 0, 0, 0, 0, 0, HAL_SPIFI_TIMEOUT);
}
Не знаю, правда, насколько это кому надо.
И ещё, возможность переопределения вывода с помощью xdev_out я таки себе оставил, поскольку слепил для UART свои функции, использующую прерывания.
 

cryptozoy

Member
...SPIFI_W25_WriteDisable...

Не знаю, правда, насколько это кому надо.
Цитата из документации микросхемы W25Q64FV:

"A Write Enable instruction must be issued before a Page Program, Sector Erase, Block Erase, Chip Erase or Write Status Register instruction will be accepted. After completing a program, erase or write instruction the Write Enable Latch (WEL) is automatically cleared to a write-disabled state of 0".

В кратком переводе это означает, что запрет записи выставляется автоматически после завершения любой из операций стирания или записи.
 
Последнее редактирование:
== 2024-07-15 == IDE для MIK32 Амур

Список изменений:
  1. Обновлена версия Eclipse IDE for Embedded C/C++ Developers до 2024-06 (4.32.0). Ядро Eclipse приведено к ванильному состоянию, что позволяет использовать пользовательские плагины;
  2. В корневой каталог IDE добавлены две иконки для использования при создании ярлыков;
  3. Добавлен плагин Eclox, позволяющий автоматизировать процесс формирования документации с использованием Doxygen, а также упрощающий процесс настройки конфигурации генератора за счет использования экранных форм Eclipse.
  4. Включен режим автоматического добавления комментариев doxygen с включением в них входных и выходного параметров функций.
  5. Добавлены проекты с примерами использования функций HAL MIK32 (источник https://github.com/MikronMIK32/mik32-examples). Все примеры помещены в отдельную рабочую область "workspace-examples". Планируется работа по приведению кода примеров к единообразному виду, в т.ч. очистка кода от неактуальных ветвей для MIK32V0. В настоящее время примеры перенесены как есть, могут содержать ошибки, так как некоторые из них не актуализировались после изменения HAL библиотек.
Особенности плагина Eclox:
  • включает упакованные двоичные файлы doxygen (для Windows и Linux);
  • позволяет добавлять в проект файл настроек doxyfile;
  • интегрирует в IDE специальную экранную форму-редактор настроек doxygen;
  • добавляет кнопку "@" в панель управления IDE для запуска процесса генерирования doxygen документации для текущего проекта;
  • выводит лог работы doxygen в консоль IDE.
Дорожная карта:
  • интеграция модульных тестов на основе фреймворка Unity;
  • коррекция примеров использования функций HAL;
  • разработка мини руководства для пользователя (быстрый старт).
P.S.
  1. Вопросы, предложения, комментарии и критика приветствуются. Если у вас завалялись хорошие примеры функционально законченного кода, которыми вы готовы поделиться с сообществом, направляйте ссылки на исходники, буду добавлять.
  2. И риторический вопрос, как вы думаете, есть ли потребность пользователей (в первую очередь начинающих работу с микроконтроллером MIK32) в библиотеке типа Wiring для MIK32? Я подозреваю, что есть и не малая. Поэтому предлагаю форумчанам задуматься об участии в коллективной разработке данной библиотеки в ближайшей перспективе. Под Wiring я понимаю классическую версию, основанную на подмножестве языка Си, с учетом архитектуры микроконтроллера + функции для работы с периферией.
 
Последнее редактирование:
== 2024-07-15 == IDE для MIK32 Амур (обновлено)
Добавлена поддержка загрузки прошивок во внешную SPIFI память с использованием USB-кабеля для отладочных плат Elbear ACE-UNO.
  1. В рабочую область добавлен проект elbear_fw_bootloader - прошивка EEPROM (источник https://github.com/Elron-tech/elbear_fw_bootloader).
  2. В папку tools добавлен загрузчик elbear_uploader.exe (источник https://github.com/Elron-tech/elbear_uploader).
  3. В список запуска внешних инструментов добавлены пункты:
    • Elbear_erase_upload (COM_PORT), запускает режим загрузки программы с предварительной очисткой внешней SPIFI памяти;
    • Elbear_upload (COM_PORT), запускает режим быстрой загрузки программы без очистки внешней памяти.
Мини инструкция по использованию инструментов для Elbear ACE-UNO:
  1. Собираем проект elbear_fw_bootloader, записываем в EEPROM память с помощью программатора (в настройках проекта выставлен параметр компилятора для агрессивной оптимизации кода по размеру (-Oz), используется только сборка для EEPROM).
  2. Подключаем Elbear ACE-UNO через USB-кабель, в диспетчере устройств находим номер com-порта, выделенный ОС для подключения.
  3. Создаем переменную среды окружения ОС с именем COM_PORT, и присваиваем ей значение comX, где X - номер com-порта подключенного к устройству.
  4. Закрываем mik32-ide, так как eclipse считывает переменные окружения только при запуске.
  5. Запускаем IDE.
  6. Если используется (установлен) джампер на контактах BOOT1 или BOOT0, то его необходимо убрать и нажать кнопку RESET.
  7. Создаем новый проект на основе шаблона template.
  8. Собираем его в режиме SPIFI (обязательное требование!).
  9. В списке внешних инструментов выбираем пункт Elbear_erase_upload (COM_PORT) или Elbear_upload (COM_PORT). Ждем загрузки прошивки (выводится диалоговое окно с индикатором выполнения процесса).
  10. Проверяем работу прошивки (перезагружать не нужно, после загрузки прошивка стартует автоматически). Подключите терминал к com-порту, должно выводится сообщение "Set value 1".
Примечание:
  1. Для загрузки прошивок не требуется зажимать кнопки и замыкать контакты, запуск процесса загрузки определяется прошивкой автоматически.
  2. Если потребуется записать другую прошивку в память EEPROM (при наличии в ней выше описанной прошивки-загрузчика), необходимо установить джампер BOOT1, перезагрузить устройство и после этого начать процесс загрузки с помощью программатора. Если данные шаги не выполнить, то программатор при загрузке будет выдавать ошибку.
 
Последнее редактирование:
Здравствуйте коллеги, кто будет работать с SPI и библиотекой HAL может столкнуться с ошибкой в функции
HAL_SPI_Exchange. Что б как я долго не искать причину проблемы - обратите внимание на метку error, перед ней необходимо поставить
return error_code; иначе в любом случае натыкаемся на эту метку. Я кинул Микрону на GitHub pullRequest, но когда они исправят у себя не известно. Так что имейте ввиду...
 
== 2024-07-20 == IDE для MIK32 Амур (обновлено)

1. Обновлен bootloader для Elbear ACE-UNO (оф. сборка от 19.07.2024) (источник: https://github.com/Elron-tech/elbear_fw_bootloader) - проект elbear_fw_bootloader.
2. Добавлен bootloader для Elbear ACE-UNO (не оф. сборка от spam-receiver) (источник: https://github.com/spam-receiver/elbear_fw_bootloader) - проект elbear_fw_bootloader_xip.
3. Добавлен проект XIP_bootloader с поддержкой инициализации XIP режима (от spam-receiver) (источник: https://github.com/spam-receiver/mik32-examples/blob/main/HAL_EEPROM_to_SPIFI/src/main.c) - проект xip_bootloader.
4. Обновлены HAL и LL библиотеки для MIK32 (требуются для сборки xip_bootloader).
5. Обновлен mik32-uploader для работы с загрузчиком xip_bootloader.

Примечание: все перечисленные загрузчики настроены для сборки и загрузки в EEPROM. Установлены параметры компилятора для максимального сжатия исполняемой программы (-0z), если ваш компилятор (не от Syntacore) выдает ошибку, то замените параметр оптимизации на -0s.

Мини инструкция по использованию загрузчиков для ELBEAR ACE-UNO с возможностью заливать прошивки через USB:
1. Собираем проект содержащий необходимый вам загрузчик (команда Build).
2. Устанавливаем на устройстве режим загрузки из EEPROM (используется по умолчанию, если нет перемычек на BOOT1 и BOOT0).
3. Подключаем JTAG к устройству.
4. Заливаем загрузчик в EEPROM (единственно доступная сборка для данного вида проектов) выбрав команду Load Code (OpenOCD).
5. Отключаем питание от устройства (обязательно для плат ELBEAR ACE-UNO с загрузчиком elbear_fw_bootloader и elbear_fw_bootloader_xip).
6. Подключаем USB-кабель (для загрузчиков elbear_fw_bootloader), как настроить com-порт смотрите предыдущее сообщение об обновлении (переменная среды окружения COM_PORT).
7. Создаем проект на основе template, собираем для SPIFI, загружаем в устройство командой Elbear_upload (COM_PORT) или командой Elbear_erase_upload (COM_PORT).
8. После загрузки пользовательский светодиод должен мигать в режиме 1 сек. вкл - 1 сек. выкл, а в терминал должно выводиться сообщение "Set value 1".

Мини инструкция по использованию загрузчика xip_bootloader (поддерживает только JTAG):
1. Собираем проект содержащий необходимый вам загрузчик (команда Build).
2. Устанавливаем на устройстве режим загрузки из EEPROM (используется по умолчанию, если нет перемычек на BOOT1 и BOOT0).
3. Подключаем JTAG к устройству.
4. Заливаем загрузчик в EEPROM (единственно доступная сборка для данного вида проектов) выбрав команду Load Code (OpenOCD).
5. Создаем проект на основе template, собираем для SPIFI, загружаем в устройство командой Load Code (OpenOCD).
6. После загрузки пользовательский светодиод должен мигать в режиме 1 сек. вкл - 1 сек. выкл, а в терминал должно выводиться сообщение "Set value 1".

Примечание: Счастливым обладателям ELBEAR ACE-UNO настоятельно рекомендую использовать загрузчики xip_bootloader (JTAG) или elbear_fw_bootloader_xip (JTAG + UART), так как данные загрузчики переводят внешнюю память данных устройств в режим максимального возможного для MIK32 быстродействия при запуске выполнения программы из SPIFI (о режиме QPI + XIP подробнее можно почитать тут).

Примечание: для данной и всех последующих сборок будет использоваться неизменяемая ссылка, что позволит всегда загружать последнюю версию сборки, и упростит процесс отправки ссылки на скачивание IDE другим пользователям MIK32 Амур.
 
Последнее редактирование:

ejsanyo

Active member
Хмм, заметил такую странную (для меня) вещь:
Делаю простой проект, который (пока что) немножко настраивает периферию, и всё. Если компиляю его под SPIFI он занимает даже с опцией -Ofast где-то 3,7 кБ, но когда под EEPROM или RAM - даже с опцией -Os код резко раздувается почти до 8 кБ! Ещё немного - и вылезет за пределы EEPROM. :eek: И с -Ofast, конечно, вылезает.
Происходит такое и на сборке от Sparrow196, и на родной от Микрона. Отсюда вопрос: это так и должно быть, или всё же я что-то делаю не так?
 

StF

New member
Добрый день,
первый раз в Eclipse, подскажите пожалуйста как исправить пути D:/mik32-ide... в Includes в Project Explorer? - Eclipse их серым рисует тк на диск C распаковал. Уже все настройки вроде бы просмотрел...
---
вопрос снимается- я проект криво скопировал, хз как так получилось.
 
Последнее редактирование:
Сверху