Win7 32-х битная?Кстати, стащил полученный EXE-шник на другой пека, но тоже под Win7. И там он заработал нормально.
Win7 32-х битная?Кстати, стащил полученный EXE-шник на другой пека, но тоже под Win7. И там он заработал нормально.
Нет, 64 разумеется. Раз уж есть возможность не ютиться в 3 гигах ОЗУ, которое даёт 32-битная архитектура, то не вижу причин продолжать это делать. Да, насколько я понимаю, и маломальски актуальный софт под 32 бита тоже давно не работает.Win7 32-х битная?
objcopy.exe input.elf -O binary output.bin
srec_cat.exe output.bin -bin -fill 0xFF 0x0 0x8000 -o output_full.bin -Binary
Примитивный EEPROM-загрузчик принимает файл расширенного RAM-загрузчика, сохраняя его по мере приёма в оперативку, затем передаёт ему управление. RAM-загрузчик может сам проверять целостность своего кода.Полистал немного описание ZModem, взгрустнул... Даже если это каким-то чудом реализовать, в 8кБ оно ой как вряд-ли влезет. Интересно, а какие ещё есть альтернативы, чтобы не изобретать велосипедов для пекашной стороны, но при этом код загрузчика не разрастался бы до уровня какого-нибудь U-Boot?
Маленькая не обязательная правка к коду. Тактирование шины в загрузчике лучше сделать от внутреннего генератора 32Мгц. А то я уже купился на внешнем кварце 32Мгц с третьей гармоникой - где в итоге получается частота поделенная на 3. И по незнанию этого момента - долгий поиск почему все работает в 3 раза медленнее. Всякое бывает, все кварцы не проверишь. А осадочек у пользователя останется, особенно если на плате не будет установлен разъем JTAG.Полистал немного описание ZModem, взгрустнул... Даже если это каким-то чудом реализовать, в 8кБ оно ой как вряд-ли влезет. Интересно, а какие ещё есть альтернативы, чтобы не изобретать велосипедов для пекашной стороны, но при этом код загрузчика не разрастался бы до уровня какого-нибудь U-Boot?
Можно, конечно. В этом случае достаточно просто не активировать кварцевый. Только следует понимать, что на RC-тактировании уже не факт, что у вас сохранится стабильная связь на 115200 б/с. Придётся настраивать что-нибудь вроде 9600, и тогда прошивка будет литься долго и печально. Так что, считаю, лучше сразу разобраться с тактированием, а потом уже всё остальное.Тактирование шины в загрузчике лучше сделать от внутреннего генератора 32Мгц.
Тут уж скорее RISC-V код сам по себе получается довольно длинным, поскольку это же Ъ-RISC! Т.е. минимально необходимый для работы набор команд.или резать всякие проверки в исходном коде библиотеке HAL. Она оказалась очень прожорливой.
После старта МК тактируется от кварцевого генератора, если этот генератор запустился. Поэтому в загрузчике нужно сразу переключиться на тактирование от HSI32M (AHB_Mux = 1). После этого кварцевый генератор можно выключить (CLOCKS_SYS = 0x201).В этом случае достаточно просто не активировать кварцевый.
Встроенный генератор HSI32M обладает достаточно высокой температурной стабильностью, выходная частота практически не зависит от изменения питающего напряжения. Т.о., необходимо компенсировать первоначальный разброс. Для этого достаточно единожды подобрать и сохранить в энергонезависимой памяти значение делителя частоты для USART. Это значение будет индивидуальным для каждого образца МК.на RC-тактировании уже не факт, что у вас сохранится стабильная связь на 115200 б/с.
Используя часовой кварц можно с высокой точностью измерять частоту внутреннего генератора 32 МГц и корректировать её. При этом автоматически заполнять таблицу значениями коэффициентов коррекции частоты в зависимости от индекса температуры. Если коэффициент записан ранее, то повторное измерение частоты на этой отметке температуры уже не потребуется.Встроенный генератор HSI32M обладает достаточно высокой температурной стабильностью, выходная частота практически не зависит от изменения питающего напряжения.
Повторюсь. Выходная частота генератора практически не зависит ни от температуры, ни от напряжения питания. В документации подробно рассмотрено, за счет каких схемотехнических решений это достигнуто (п. 4.2, стр. 265, 266 ТО версии 2.1.5). Все, что требуется, - это один раз измерить частоту при нормальных условиях и зафиксировать делитель для модулей USART. Делать это с помощью часового кварцевого резонатора, - не лучшее решение, поскольку наличие этого резонатора в схеме не является обязательным. Проще при первом запуске подать с другого устройтва последовательность известных байтов (например, 0x55) и измерить длительность битов с помощью таймера Timer16_0, или определить границы устойчивого приема перебором значений делителя, а затем зафиксировать центральное.в зависимости от индекса температуры
Видимо не лохи сделали коррекцию частоты внутренних генераторов, потому что не все разработчики в своих поделках из периферийных устройств используют лишь один только USART.Согласно ТУ, частота внутреннего высокочастотного генератора HSI32M должна составлять 31,5 ... 32,5 МГц в диапазоне температур от минус 45 до плюс 85. Это значит: 32 МГц ±1,6%. UART работает устойчиво при отклонении опорной частоты ±2% от номинала.
У МК редакции V0 действительно были проблемы: был больше разброс между образцами, и сама частота была порядка 28,5 МГц.
Интересно, что это должна быть за поделка такая хитрая, чтобы без кварцевого резонатора, но при этом нужно было подстраивать RC-генератор? Да и набор периферийных устройств у МК К1948ВК018 к изыскам не особо располагает. Сделать ровно-ровно 16 МГц на SPI? Или ровно-ровно 1 МГц на I2C?Видимо не лохи сделали коррекцию частоты внутренних генераторов, потому что не все разбработчики в своих поделках из всех периферийных устройств используют лишь один только USART.
Ждём внедрения кварцевого генератора внутрь корпуса микроконтроллера, как это уже сделали западные буржуины ещё в 2019 году.А вот если формировать импульсы или измерять скважность сигналов таймерами, по-серьезному, то скорее всего без резонатора будет не обойтись.
А ещё раньше они запихали в чип MEMS-резонатор. Хотя можно было бы вспомнить и более ранний дорогущий DS3232.Ждём внедрения кварцевого генератора внутрь корпуса микроконтроллера, как это уже сделали западные буржуины ещё в 2019 году.
В статье упоминается сравнительная таблица потребляемой энергии чипами с внешним и с внутренним кварцевым резонатором. Так вот внешний кварц победил. Думаю именно поэтому подобная продукция не стала популярной и дальше одной единственной модели микроконтроллера не пошла.Но как по мне, это всё технологический перебор. Повесить снаружи копеечный кварц, если надо, это гораздо дешевле и универсальнее.
Разве там ещё можно что-то выжать большее, чем QPI на максимальной для Амура частоте?За прошедшую ночь разобрался как уменьшить задержки чтения из микросхемы внешней флеш-памяти через SPIFI до предела.