aaarrr
Модератор-
Постов
14 203 -
Зарегистрирован
-
Победитель дней
22
Весь контент aaarrr
-
Считывание кейлом старт прошивки и ее длину
aaarrr ответил Метценгерштейн тема в ARM
hash.c volatile const hash_type_t fw_hash = { 0 }; .sct: LR_IROM1 0x00000000 { ; load region size_region ER_IROM1 0x00000000 { ; load address = execution address *.o (NUC_INIT, +First) *(InRoot$$Sections) .ANY (+RO) hash.o (*, +Last) } RW_RAM1 +0 { ; RW_RAM1 start address is after ER_ROM1 .ANY (+RW +ZI) } } В программе считаем хеш от начала (Load...Base) до &fw_hash, сравниваем с fw_hash. Внешней утилитой перезаписываем последние sizeof(hash_type_t) байт прошивки. -
Считывание кейлом старт прошивки и ее длину
aaarrr ответил Метценгерштейн тема в ARM
Да, .sct Можно, например, определить массив под хеш и средствами линкера закинуть его в конец загрузочного региона (+LAST). -
Считывание кейлом старт прошивки и ее длину
aaarrr ответил Метценгерштейн тема в ARM
Вы правы, посмотрел сейчас - у меня в конце CRC дописывается, поэтому 0. А внутри только длина и номер сборки. Достаточно скрипт линкера поправить таким образом, чтобы в конце загрузочного региона оставалось пространство, достаточное для хранения хеша. И спокойно приклеивать его. -
Считывание кейлом старт прошивки и ее длину
aaarrr ответил Метценгерштейн тема в ARM
Перетирает. Участвуют. План такой: - Резервируете поле в известном месте прошивки (не обязательно в векторах, просто так удобнее), пишете в него 0 - Считаете CRC прошивки, заменяете 0 на результат В прошивке считаете CRC подряд, убеждаетесь, что на выходе результат 0 В прошивке считаете CRC с нулевым содержимого поля, сравниваете с реальным. -
Считывание кейлом старт прошивки и ее длину
aaarrr ответил Метценгерштейн тема в ARM
Не разместилось ли что аккурат по тому адресу, где ожидалась добавленная вручную КС. -
Нет, не тянет V3s 60.
-
И что, кто-то их отнимет?
-
Если привыкли писать по пикселю во фреймбуфер, ничего не помешает реализовать тот же подход. Может, Гугл проплатил?
-
В космосе без меня обошлось.
-
Ничего не мешает сделать графику "в стиле бареметал" под линуксом.
-
Я ручаюсь только за то, что делал сам.
-
Не читайте. Многочисленные сказки о том, как все тормозит под Линуксом, от тех, кто этого Линукса и не запускал, несколько утомили. Кроме того, при воспроизведении 1080p процессор нужен примерно никак, только декодеру данные подбрасывать. По SDIO лучше подключить что-нибудь из серии AP62xx или клонов. Работать будет предсказуемо и на нормальной скорости. Под MangoPi MQ1RDW2 в свежем buildroot'е есть готовая конфигурация. Т.е. буквально достаточно написать make mangopi_mq1rdw2_defconfig && make и забрать готовый образ SD-карты.
-
Считывание кейлом старт прошивки и ее длину
aaarrr ответил Метценгерштейн тема в ARM
Скорее затирает после. Это легко проверить, если посмотреть содержимое map-файла. -
Считывание кейлом старт прошивки и ее длину
aaarrr ответил Метценгерштейн тема в ARM
Так же, как в случае с флеш - просто по указателю. Хорошо. Как была добавлена контрольная сумма? Не получилось ли так, что линкер о ней не в курсе, и затирает её данными программы при старте? -
Считывание кейлом старт прошивки и ее длину
aaarrr ответил Метценгерштейн тема в ARM
Тут способа не обозначено. Что передается в hashAddr? -
Месяцами точно работает. Неужели даже хоткеи не в ходу? Это элементарно быстрее, чем наматывать километры мышкой.
-
Не сложнее - без преувеличения, собаку съел в свое время на этой ниве, что весьма помогает при работе в т.ч. и с линуксовыми потрохами. Честно говоря, редко приходится в рабочем процессе писать в командной строке что-то длиннее "make". У меня стабильно работает браузер в киоске. И не только у меня - он и в космос летал, что уж. Именно. А никсовая среда для программизмов удобна как никакая другая.
-
Считывание кейлом старт прошивки и ее длину
aaarrr ответил Метценгерштейн тема в ARM
Регион загрузки - это место, откуда берутся данные (в т.ч. и код) для раскидывания по регионам исполнения перед стартом программы. Как правило, для флешового МК код остается на месте (адрес загрузки = адресу исполнения), а данные копируются/распаковываются в ОЗУ. -
Сэкономил бы месяцы и годы жизни, потраченные на решение вопросов типа "как растеризовать TTF", "как воспроизвести видео", "как забороть xyzHCI", "как окучить неизвестный контроллер тача", "как быть с MIPI экранами" и т.д. и т.п. Жизнь коротка )
-
Считывание кейлом старт прошивки и ее длину
aaarrr ответил Метценгерштейн тема в ARM
Адрес региона загрузки LR_IROM1. А уж ОЗУ там или что еще - откуда линкеру знать? (это не функция) -
Нет: какая может быть опасность, если только не рушить данные и контекст?
-
https://mcuoneclipse.com/2019/01/20/freertos-how-to-end-and-restart-the-scheduler/
-
На всяких кортексах запустить поверх не проблема, достаточно снизить приоритет прерываний ОС до нужного уровня. Но всю синхронизацию между ОС и собственным кодом придется городить врукопашную.
-
Такой у нас бареметал.