Перейти к содержанию
    

Уважаемые форумчане.

 

Прошу не пинать строго, до этого момента я работал с ядрами ARM Cortex от М0 до M7. С более мощными ядрами, в данном случае A7, столкнулся впервые. Камень, который хотелось бы освоить - V3S от Allwinner. Сам камень внутри достаточно простой и очень интересный, но. Я думаю у каждого, только начинающего работу с ними, возникали похожие проблемы. Как начать? Какие инструменты нужны? Как все собрать и настроить, чтобы я мог подергать пином в цикле? Не надо отправлять в гугл, по крайней мере без конкретных ссылок, был я там, понятнее не стало. Возможно я просто не совсем понимаю, что именно надо почитать. На всякий случай, немного приведу список вопросов, по которым мне бы хотелось получить подсказки от уважаемых гуру:

- IDE. Какие есть или, хотя бы, какой можно было бы воспользоваться. Пока что все показывают на Eclipce, может есть еще чего удобного, Code Block, например. Посты типа "чувак, на хрена тебе IDE, делай как я" с более-менее подробным, или тезисным описанием как и что автор делает также приветствуются, буду премного благодарен за любую информацию, особенно если автор сможет ответить на хулиард тупых вопросов (шучу, вопросов буду стараться задавать по минимуму, только если я совсем в тупике);

- Компилятор. Откуда и какой скачать, какие есть ньюансы установки для чайника. Я нашел только gcc-arm-11.2-2022.02-mingw-w64-i686-arm-none-eabi, не уверен, что выбран правильно, дайте совет.

- Компоновщик. Где взять под этот камень, или под ядро, или хз как и что, главное, чтобы работало. Находил посты, в которых парни рассказывали про чудесные настройки под IAR, пытался сделать по образу и подобию, результат получить не вышло.

- После получения hex как правильно все собрать на SD-карте, чтобы запустилось. Может есть какое-то общее пособие/описание формата, где и что должно располагаться, с какого адреса точка входа, какие нужны обязательные заголовки, как считается контрольная сумма заголовков и т.д.

- Может кто в курсе и сможет рассказать сам, или пнуть в правильном направлении, где почитать, как вообще работает встроенный загрузчик у V3S, не считая скудного описания в даташите. Куда, откуда и сколько кода изначально грузит, куда передает управление, что из периферии при этом уже настроено и т.д. Любая информация как глоток свежего воздуха. USB вариант можно опустить, у меня загрузка предполагается с SD.

Очень хочется, чтобы работать можно было из-под Windows. Помогите кто чем сможет, кто не может, или не хочет, прошу Вас, проходите мимо. Всем добра и, заранее, огромное спасибо всем, кто откликнется.

 

З.Ы. Обещать не буду, но очень постараюсь объединить все полученные знания в единый гайд по конкретному камню.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

41 минуту назад, __Евгений сказал:

Камень, который хотелось бы освоить - V3S от Allwinner. Сам камень внутри достаточно простой и очень интересный, но

Не все так просто, как кажется, и камень я не сказал бы, что простой. 

41 минуту назад, __Евгений сказал:

- IDE.

Рекомендую ИАР или эклипс.  Первый достаточно версии 6.50 или более, сам работал на 6.50.  Там нужно просто выбрать Кортекс А7 и задать файл линкера.  У эклипса и Гцц настройки куда сложнее, но есть описание в инете...

41 минуту назад, __Евгений сказал:

- После получения hex как правильно все собрать на SD-карте, чтобы запустилось.

Для этого нужно сначала собрать загрузчик, т.к. обращаю внимание, пока не проинициализирован контроллер памяти, для кода и данных доступно ТОЛЬКО первые 32 килобайта встроенной статической памяти.

Затем этот загрузчик должен быть прогнан через прогу, которая посчитает его КС.

И еще важно - загрузчик должен иметь заголовок с преамбулой eGon, с параметрами длины и доп. параметров, только он загружается процессором в ОЗУ и запускается там.

41 минуту назад, __Евгений сказал:

USB вариант можно опустить, у меня загрузка предполагается с SD.

А вот это зря, ибо пока понимаешь, как это все работает, особенно, если это в первый раз, то задолбает дергать сд карту. Проверено на себе.

41 минуту назад, __Евгений сказал:

Помогите кто чем сможет

Тут 2 варианта, 1) разбираться самому, что не просто, по своему опыту, либо платить деньги тем, кто разобрался, тут на форуме есть подобные предложения. Готовое до деталей никто конечно разжевывать не будет, тут все-таки форум для более-менее профессионалов.

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, уважаемый mantech.

С IDE понятно, IAR, пожалуй, будет самым простым вариантом. По крайней мере, для меня, самым понятным и удобным, за неимением, как говорится, лучшего. 

Есть ли где-то более-менее подробная информация по загрузчику? Прога с подсчетом КС мелькала среди форумов, я ее скачал и сравнивал, что она пишет в файл. Вроде совпадает с готовым uboot. 

Насколько я понял, сам загрузчик на SD должен располагаться с адреса 0x2000, так как копирование загрузчика на SD в линуксе осуществляется командой:

sudo dd if=[файл загрузчика.bin] of=[SD карта] bs=1024 seek=8

Заголовок начинается с какого-то адреса, или смещения, не разобрался, но 4 первых байта в заголовке очень похожи. Потом идет eGON.BT0, затем 4 байта контрольной суммы.

Далее что-то очень похожее на таблицу векторов, но, опять же, из-за нехватки информации не уверен. В общем, собрав все знания в кучу, я попытался помигать светодиодом и, естественно, ничего у меня не вышло.

З.Ы. Прогу расчета КС прилагаю, может кому еще пригодится

З.З.Ы Я бы и вменяемых денег заплатил бы за информацию, но не за готовый проект/загрузчик, который уже работает и поддерживает все-все-все. 

checksum.exe

Изменено пользователем __Евгений

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, __Евгений сказал:

но, опять же, из-за нехватки информации не уверен. В общем, собрав все знания в кучу, я попытался помигать светодиодом и, естественно, ничего у меня не вышло.

Учитесь искать на форуме, тут уже неоднократно предлагались готовые проекты на данном камне, вот например этот, я по нему со многим разобрался...

v3s_tinygl_gears.7z

Смотрите по заголовку файл boot.c

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 10/22/2022 at 8:09 PM, mantech said:

вот например этот, я по нему со многим разобрался...

v3s_tinygl_gears.7z 239.5 kB · 2 downloads

Смотрите по заголовку файл boot.c

v3s вроде Cortex, а таблица векторов как у ARM7(9)

Как так ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, dimka76 сказал:

v3s вроде Cortex, а таблица векторов как у ARM7(9)

Не путайте кортекс А и М. У серии А контроллер прерываний, как и АРМ 7, 9, 11...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

добавлю немножко.

вот там есть исходники(и для V3s) и вполне прилично написаны
https://github.com/xboot/xboot

тут программа для загрузки по ЮСБ в процессор(или внутреннюю или внешнюю память, а так же прошивка во флешь, инициализация процессора и тд...), я переделывал её под VisualStudio
https://github.com/xboot/xfel
 

часть драйверов есть там(брал оттуда эзернет)

https://github.com/liu2guang/bsp_v3s

для отладки можно пользоваться клоном J-Link и программой Ozone from Segger(правда регистры заполнять самому придётся).
 

компилятор gcc  что-то вроде такого: gcc-arm-none-eabi-5_4-2016q3-20160926-win32.zip
ну и под виндовс ещё понадобится что-то вроде этого(чтобы makefile собирался): xpack-windows-build-tools-4.3.0-1-win32-x64.zip

и любой тестовый редактор по желанию...
 как работает начальная загрузка посмотрите в xboot(там загружается во внутреннюю память небольшой кусок прошивки(там должны быть правильные байты в начале и правильная контрольная сумма) и исполняется, он инициализирует процессор,DDR и тд, загружает основную программу в DDR и прыгает туда ).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо огромное. Я установил себе arm developer studio, но, пока, в ассемблерных вставках в С куча ошибок. Пытаюсь как-то всё это переписать, но ещё не выходит. Что-то не до конца понимаю

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 hours ago, __Евгений said:

Спасибо огромное. Я установил себе arm developer studio, но, пока, в ассемблерных вставках в С куча ошибок. Пытаюсь как-то всё это переписать, но ещё не выходит. Что-то не до конца понимаю

может gcc-шный формат вставок? вроде бы IAR раньше не поддерживал gcc-шные расширения (если не прав - извиняюсь)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 10/22/2022 at 8:09 PM, mantech said:

Учитесь искать на форуме, тут уже неоднократно предлагались готовые проекты на данном камне, вот например этот, я по нему со многим разобрался...

v3s_tinygl_gears.7z 239.5 kB · 15 downloads

Спасибо прорекламировали 🙂  Вот ссылка на эту тему, там много полезного. И кстати, автор той темы активно продвигает свой sdk под V3S.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По сути мне sdk не нужен. Самая большая проблема - старт. Правильно создать среду, правильно скомпилировать и получить бинарник, или хекс, без разницы, правильно понял влить все это на SD и оттуда стартануть. Вот эти знания нужны. С ADS, вроде, ничего сложного не должно было случиться, но, отчего то, синтаксис ассемблерный внутри __asm(); компилятором не жуется, хотя ошибок не вижу. Пока пытаюсь по выходным курить все, что доступно, но светодиодами так и не поморгал ((( Но я ещё не в панике )))

 

З.Ы. плата lichee pi zero, наверное, самый дешёвый вариант с Али.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Снова я с траблами. Проект собрал, бинарник получил. Там ерунда, светодиодами поморгать, не суть. Проблема в другом. Как я понял, чтобы не искать проблемы в записях на SD, нашел я следующую информацию:

 

Все контроллеры от Allwinner, в частности V3S, внутри содержат некий код, который позволяет через USB совершать ряд действий, в частности загружать программу в SPI flash и т.д.

Работать с контроллером по USB умеет, по идее, специальный софт sunxi-fel

Для контроллеров можно найти спец.драйвер, который не содержит электронной подписи и ставится с маленьким бубном, но тоже это не основная проблема.

Я поставил драйвер, у меня нашлось устройство, запускаю sunxi-fel, а она устройство не видит, говорит, что не подключено ни одного. Кто знает, что я делаю не так?

Плата, напомню, lichee-pi-zero. Подключаю шнурком, больше ничего не делаю. Но, раз устройство находится, то, вроде, контроллер в нужном режиме, или нет? По даташиту есть некий BSP пин, который надо к 0 притянуть. Информации о том, какой это пин я не нашел, но, судя по схеме, вроде бы PF6. Пока я его не трогал. Или это SPI_MISO, который PC0? На схеме там он может притягиваться к 0 резистором, который не установлен. Но на схеме он обозначен как 0 Ом, что тоже как-то не особо, тогда ж flash работать не будет. У меня flash пока не стоит, поставлю на выходных. Как я понимаю, sunxi-fel умеет в нее код прошивать через USB шнурок, так ведь? 

Но, опять же, не суть. Судя по алгоритму загрузки, так как у меня не установлены SD карты и флешки SPI-ной тоже нет, камешек должен автоматически войти в режим USB boot? Правда там есть, как я понял, два режима, это и есть причина, почему sunxi-fel не видит камень, или что-то еще я не смог разыскать, или не увидел?

Помогите, кто чем сможет )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, __Eugene сказал:

почему sunxi-fel не видит камень, или что-то еще я не смог разыскать, или не увидел?

Если плата живая и кабель исправный, то в диспетчере устройств должно появиться AW-device, если нет, то надо добиться этого иначе дальше бессмысленно что-то делать. Если данное устройство есть в системе с платой больше ничего делать не надо, нужно либо переустановить драйвер, либо ставить его с помощью zadig

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В диспетчере у меня USB device(VID_1f3a_PID_efe8) появился. Возможно драйвер не тот нашел. Поищу zadig, переустановлю дрова

Изменено пользователем __Евгений

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...