У нас есть вопросы по настройке КФДЛ.441461.024, которой нет на http://ao-sms.ru/om.html, но есть на https://niiet.ru/product/%d0%ba%d1%84%d ... 41461-024/
Я склонировал репозиторий из https://bitbucket.org/niietcm4/k1921vkx_sdk и попробовал позапускать примеры из projects/NIIET-EVAL-K1921VK028/, а именно led_run (стоковая прошивка), ext_sram и lwip_helloworld.
Использовал Ubuntu 22.04 LTS (в виде Linux Mint 21)
Компилятор арм-none-eabi-gcc (15:10.3-2021.07-4) 10.3.1 20210621 (release) https://packages.ubuntu.com/jammy/gcc-арм-none-eabi
CMake 3.22.1, Ninja-build 1.10.1, Qt Creator 6.0.2, OpenOCD-0.12.0-rc2+niiet.
1. led_run работает соответственно ожиданиям, lwip_helloworld заработал только при форсировании 10 Мбит/с со стороны тестирующего сеть ноутбука, ext_sram показывает ошибки в тесте записи внешней ОЗУ, а читает всегда 0xFF.
Пробовал уменьшать тайминги EXT_RAM с дефолтных 15-15-15 (должно быть достаточно 9*5нс для 45нс-СОЗУ), понижать частоту ядра с 200 МГц, попутно проверил механизм аварийной перепрошивки. Пробовал 8-битный режим (по умолчанию 16-битный). Не смог добиться полностью безошибочной работы. Согласно https://bitbucket.org/niietcm4/k1921vkx ... c#lines-81 используется банк MEM_EXT2=0x82000000UL и CE2 на GPIOD6 (т.к. на CE0 висит внешняя параллельная Flash), альтернативная функция 1.
Проверил распиновку и iomux/AF в bsp.c по приехавшей бумажной документации и по файлу КФДЛ.441461.024 РП.docx -- вроде всё соответствует. Все джамперы и DIP-переключатели стоят в положениях по умолчанию, вроде бы корректных.
Только при замене функций доступа BSP_SRAM_Write/Read с пары 16-битных на одинарные 32-битные обращения и в режиме 8-битной трансляции я увидел хоть какой-то ответ от памяти:
- Serial log | Показать
2. Мне пришлось извлекать ваши изменения к OpenOCD в виде патчей самостоятельно, включая поиск выбранной вами релизной версии, портирование на upstream и доработку исходников к убежавшему внутреннему ABI. Теперь у меня openocd-0.12.0-rc2-amd64 с поддержкой k1921vk028.cfg, успешно шьёт flash и отлаживает ядро. Версии 0.11.0 или старее -- нас не интересуют, так как с тех пор добавили важные исправления, поддержку новых ядер, а мы работаем с разными микроконтроллерами и микропроцессорами.
Кто-нибудь у вас занимается поддержкой вашей версии openocd? На OpenOCD gerrit вроде нет активных changeset по ВК028. Последняя активность в 2015 https://review.openocd.org/c/openocd/+/3011/ , в 2016 https://review.openocd.org/c/openocd/+/3171 и в 2019 https://review.openocd.org/c/openocd/+/5082
Если вам интересна поддержка настольных дистрибутивов Linux -- доработайте, пожалуйста, код vk028-035, или я могу выслать три патча (на nor, flash_loader, tcl_target).