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

Alwinner A13 не стартует с SD-карты

Видимо, производители планшетов на A13 взяли образ из одного источника (что и не удивляет),

а его сборщик почему-то решил "буковки" выключить.

Я просто к тому, что может и тс поэтому их не видит тоже :rolleyes:

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


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

Кстати, интересное дело как-то было, попалось 2 планшета на А13 и 1 на А10, понятно, что андроид на них, но бут-то все равно похожий на линуксовый, так вот, у А13 буковок не было ни на одном уарте, у а10 все по правилам и загрузка бут0 и бут1... Интерерсно, почему так?

как справедливо сказали выше, черпают с одной бочки и тюнингуют под свои вкусы или корпоративные стандарты. просто заглушили выхлоп либо выключив порт, или переопределили под тот, на каком отлаживались и не факт, что это uart0/1

такая фишка полезна от всяких кулхацкеров, которые потом ломают прошивки

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

 

По поводу сериального адаптера.. Ну если ТС не проделал все это - ему минус, ибо проверить TX с RX - дело само собой разумеющееся :laughing:

кому очевидно, кому не очень. у меня нет полной информации о том, что у ТС, вот и приходится тыкать в критичные места..

 

Не буду спорить, но дело такое было, поэтому и написал... К тому же, при отладке незнакомой платформы и непонятному поведению проги вообще, всегда отключаю оптимизацию, после того, как все заработало, можно и включать, ибо уже понятно, что если снова не заработает, то сам накосячил...

ага, я тоже пару раз наступал

 

Я просто к тому, что может и тс поэтому их не видит тоже :rolleyes:

врядли - это отладочные прошивки, а не коммерческие

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


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

Спасибо всем кто хотел помочь и помог! :1111493779:

Удалось запустить плату с A13 ! :rolleyes:

 

Было 2 ошибки.

 

Ошибка номер 1.

 

Начал с проверки COM-порта. Замкнул вывод 2 с выводом 3 на системном блоке компа, убедился как тут писали, что связь есть: получаю то же, что и отправляю.

Значит порт исправен и WinXP дает доступ к нему.

 

Дальше: подсоединил адаптер, запитал его от 3,3V от платы A13-Olinuxino. Выводы TX и RX адаптера соединил вместе. Вот тут и зарылась собака - в ответ летит не то, что отправляю!

Запитал адаптер отдельно от 5V, протестил: обмен исправен. Понизил питание до 3V - снова пошла лажа на скорости 115200 бит/c!.

Понизил скорость до 2400 бит/c - обмен при питании 3V нормальный.

 

Сделал вывод, что тот MAX3232, что стоит в адаптере не позволяет при питании 3,3V давать обмен на 115200 бит/c.

Порылся в закромах, нашёл в резерве одну MAX3232, выпаял ту что была на адаптере и впаял новую.

 

Проверил снова обмен при 5V и при 3.3V на скорости 115200 бит/c - работает исправно! Делаю вывод о бракованной партии микросхем MAX3232, которая попала мне в адаптере.

 

Фотка фуфела MAX3232, не работающего на 115200 бит/с при 3,3V:

post-99126-1522572418.jpg

 

Фотка нормальной микросхемы:

post-99126-1522572483_thumb.jpg

 

Ошибка номер 2.

 

Программа дискового редактора, которую я использовал: HxD Hex-редактор от Maёl Horz, неверно делала запись на 16-й сектор карты!

Позже, скачав win32-disk-imager-0-7-en-win.zip (эта не свежая версия, но идёт под WinXP, что для меня важно!) и записав образ sunxi-spl.bin из папки a13_olinuxino_hwpack, я получил наконец-то запуск программы на A13:

post-99126-1522572798_thumb.jpg

 

Действительно, для отладки используется порт UART1. Образ sunxi-spl.bin для A13 прилагаю:

sunxi_spl.zip

 

ну и далее попробовал запустить Debian, тот самый, что якобы на карту с 4 ГБ влезает (на самом деле нет, олимексовцы по-мойму забыли, что 4 ГБ это не 4*1024^3 байт, а 4*1000^3 :) ) всё пошло:

post-99126-1522572994_thumb.jpg

 

Качал вот этот архив: A13_debian_34_90_mainline_u-boot_release_11_3.7z, с торрента - файл прикладываю:

A13_debian_34_90_mainline_u_boot_release_11_3.zip

 

Естественно, перед заливкой образа, архив распаковать. Образ писал программой, что описана выше: win32-disk-imager-0-7-en-win.zip

 

Потом всё-же решил посмотреть, где же глючит HxD и почему она пишет 16-й сектор не туда, куда надо и не видит там ничего после записи win32-disk-imager-0-7-en-win.zip.

 

Для этого прочёл образ с карты (1% достаточно) и увидел, что сигнатура eGON.BT0 была на 145-м секторе! Делайте выводы, господа! Вот так софтина может подставить программиста!

 

---

 

Шаг 3.

 

После как разобрался в ошибках, попробовал закатать образ своей программы с мигающим светодиодом.

Так как HxD - оказался на поверку говном, а win32-disk-imager не может писать образы не с начала, пришлось 0x2000 байт с самого начала SD-карты скопировать в отдельный файл.

Затем бинарно клеить эти 0x2000 байт со своей программой (у которой уже есть хедер и посчитана контрольная сумма).

 

Тоесть алгоритм такой:

 

1) компилируем и линкуем свою программу (при этом моделируя набросок заголовка: прыжок на main(), заполняя оставшееся место нулями)

 

2) вычисляем контрольную сумму в получившемся бинарнике (я использую checksumm.exe собственноручно скомпилированную из сорцов Гитхаба)

 

3) склеиваем 2 файла: первые 0x2000 байт со своим бинарником (я использую свой конкатенатор concat.exe)

 

4) полученный файл *.img катаем на SD-карту win32-disk-imager-ом.

 

5) вставляем карту в A13-olinuxino, включаем питание и радуемся результату! :)

Загрузка мгновенна, никаких кнопок Power и Home/U-boot жать не надо!

 

Прикрепляю рабочий проект целиком - оптимизация по скорости, максимальная. Проект перелопатил из олимексовского говнокода. (+ утилита для контрольной суммы):

A13_led.zip

 

Использую такие тулчейны:

gcc-arm-none-eabi-6-2017-q2-update-win32.exe

gcc-arm-none-eabi-4_8-2014q3-20140805-win32.exe

 

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

Сорцы пишу в Блокноте (с синтаксической подсветкой типа "Bred"), для сборки батники или make-файлы.

 

По-мойму это лучше, чем искать проприетарное тяжеловесное дерьмо, за которое мудаки требуют деньги (в контексте последних ARM-ов).

И к тому же которое под WinXP идёт либо криво или вообще не пускается.

 

 

Ну и вспомогательные вещи: утилита склейки concat.exe и файл первых 0x2000 байт, которые должны быть до программы.

Утилита склеивает 2 файла : "0x2000.bin" и "spl.bin" в один "image.img" - его катать на карту win32-disk-imager-ом!

concat_util.zip

 

Если достать нормальный дисковый редактор, то можно сразу spl.bin катать на 16-й сектор. Без всяких склеек с 0x2000.bin.

Но пока такой программы не нашёл, все клянчат деньги и не дают работать на запись...

 

---

 

В целом я рад - началу освоения Alwinner положено!!! :yeah:

Надеюсь, что то что написал, поможет начинающим разобраться и не спотыкаться на те грабли, что мне пришлось испытать. :smile3046:

 

to mantech:

регистры, порты ввода-вывода, переменные, менющиеся в обработчиках прерываний - должны быть объявлены как volatile, иначе компилятор оставляет за собой право выкинуть часть кода или закешировать эти переменные в регистры (особенно с максимальной оптимизацией, где не учитывается специфика работы с аппаратурой: допускается многократное присваивание в один и тот же регистр) :)

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

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


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

Спасибо всем кто хотел помочь и помог! :1111493779:

Удалось запустить плату с A13 ! :rolleyes:

спасибо, что поделились результатами, кто-нить следующий придет, прочитает и обойдет подобные грабли..

 

по max3232 - у вас либо перемаркированная max232 или фейк от китайцев

ближайший пост:

https://www.eevblog.com/forum/reviews/fake-...tional-details/

 

(на самом деле нет, олимексовцы по-мойму забыли, что 4 ГБ это не 4*1024^3 байт, а 4*1000^3 sm.gif )

там помимо олимексовцев, д.б. разозленные клиенты, которые заплатили деньги за плату, а "образ на карточку не лезет"

напишите им фидбек - "какого хрена 'ссылка' не лезет на 4ГБ", если это их косяк, то исправят

 

Если достать нормальный дисковый редактор, то можно сразу spl.bin катать на 16-й сектор. Без всяких склеек с 0x2000.bin.

поищите winhex или какой-нить discedit, у того же олимекса были ссылки на дисковые редакторы

 

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

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


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

В маркировке MAX-а смущает "+": вот не помню, это способность большого ESD (1.5кВ)?

А если перемаркированная 232, то можно было бы увеличить ёмкости конденсаторов накопительных. В прочем, на фиг (;

С успехом вас (:

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


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

там помимо олимексовцев, д.б. разозленные клиенты, которые заплатили деньги за плату, а "образ на карточку не лезет"

напишите им фидбек - "какого хрена 'ссылка' не лезет на 4ГБ", если это их косяк, то исправят

Просто разные 4GB карты несколько отличаются по размеру. По-хорошему, надо было файловую систему урезать до минимума

и расширять при первом включении, как делает Armbian.

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


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

поищите winhex или какой-нить discedit, у того же олимекса были ссылки на дисковые редакторы

 

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

 

Я предлагал ТСу программу cfimager от фриски. Пишет с на сд карту свой бинарь с первого сектора и ничего изобретать не нужно... Причем, что удобно, в ней нет гуя, работает с командной строки без установки драйверов или еще чего-либо.

 

В маркировке MAX-а смущает "+": вот не помню, это способность большого ESD (1.5кВ)?

А если перемаркированная 232, то можно было бы увеличить ёмкости конденсаторов накопительных. В прочем, на фиг (;

С успехом вас (:

 

Неа, тут это не поможет, проверял.

 

Сорцы пишу в Блокноте (с синтаксической подсветкой типа "Bred"), для сборки батники или make-файлы.

 

По-мойму это лучше, чем искать проприетарное тяжеловесное дерьмо, за которое мудаки требуют деньги (в контексте последних ARM-ов).

И к тому же которое под WinXP идёт либо криво или вообще не пускается.

 

Т.е. ИДЕ не используете. А если ошибка в программе, как она отображается? В ИДЕ можно сразу на строчку с ошибкой кликнуть, ИМХО удобнее будет...

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

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


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

Т.е. ИДЕ не используете. А если ошибка в программе, как она отображается? В ИДЕ можно сразу на строчку с ошибкой кликнуть, ИМХО удобнее будет...

В консоли, естественно. Перейти на нужную строку в нужном файле можно и без ИДЕ - обычно все и так перед глазами.

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


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

В консоли, естественно. Перейти на нужную строку в нужном файле можно и без ИДЕ - обычно все и так перед глазами.

Не говорю, что нельзя, просто в иде удобнее, особенно, когда файлов больше сотни, а у ТСа, если он реально будет камень осваивать, будет и больше...

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


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

Просто разные 4GB карты несколько отличаются по размеру.

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

для ленивых олимекс продает готовые карточки с нарезанной осью:

https://www.olimex.com/Products/OLinuXino/A...source-hardware

 

По-хорошему, надо было файловую систему урезать до минимума

не каждый сможет из комплекта бинарников сплодить рабочую систему, там обычно масса тонкостей и олимекс правильно делает, что выкладывает образы (не он первый такое практикует и это правильно), тем самым отсекает отрицательный фидбек по продукту.. опять же всегда можно взять 8ГБ карточку и на нее накатить предоставленный образ

 

а если "по-хорошему", то рутовая генерится стандартными средствами, хошь debian armel/hf, хошь ubuntu, чистые дистрибутивы 60-100МБ, впрочем это уже не для ветки "Микроконтроллеры (MCs)"..

ок, пожелаю ТС успехов в пилёжке..

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


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

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

Да мало ли причин. В любом случае нельзя считать, что на карту с надписью "4GB" уместится 4 * 10^9 байт.

 

не каждый сможет из комплекта бинарников сплодить рабочую систему, там обычно масса тонкостей и олимекс правильно делает, что выкладывает образы (не он первый такое практикует и это правильно), тем самым отсекает отрицательный фидбек по продукту.. опять же всегда можно взять 8ГБ карточку и на нее накатить предоставленный образ

Под "урезать" имелось в виду убрать свободное место, а не лить тупо содержимое карты через dd.

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


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

Всем спасибо за помощь! :a14:

 

Я предлагал ТСу программу cfimager от фриски. Пишет с на сд карту свой бинарь с первого сектора и ничего изобретать не нужно... Причем, что удобно, в ней нет гуя, работает с командной строки без установки драйверов или еще чего-либо.

 

Я вначале подумал, что она заточена только под I.MX. Теперь вижу, что она универсальна!

Нашёл её здесь: ftp://125.7.130.110/imx/5/Mfgtools-Rel-1....Utils/cfimager/

 

Теперь действительно стало проще лить образ без всяких дополнительных файлов и склеиваний - в батник её прописал после билда и чек-суммы, получилась сборка в 1 клик:

cfimager.exe -raw -offset 0x2000 -f spl.bin -d F

где F - буква диска SD-карты

 

Т.е. ИДЕ не используете. А если ошибка в программе, как она отображается? В ИДЕ можно сразу на строчку с ошибкой кликнуть, ИМХО удобнее будет...

Когда писал под STM32, то открывал Keil исключительно для сборки проекта.

Код писал в блокноте.

В GCC ошибки выдаются в консоли: номер строки + тип ошибки = достаточно чтобы найти и исправить, не забыть в конце батника pause добавить, а то закроется.

Или можно из под MSYS работать (или как там его - желтого цвета в винде mingw32 ...)

Если сорцов много, то мейк-файл.

 

Да мало ли причин. В любом случае нельзя считать, что на карту с надписью "4GB" уместится 4 * 10^9 байт.

 

Под "урезать" имелось в виду убрать свободное место, а не лить тупо содержимое карты через dd.

Я ради этого купил карту 16 ГБ UHS-I , пригодится в хозяйстве.

Хотя и на старой карте 2 ГБ без класса скорости работают мои программы

 

---

2 вопроса:

 

1) Какими командами с помощью U-Boot загрузить по UART1 программу и дать ей управление? И по какому адресу должен быть слинкован код для A13 ?

 

С AT91RM9200 было так: был DFU Downloader, 2 команды: Load и Go

 

2) spl-sunxi.bin - инитит всё железо(тактовую частоту, SDRAM, MMU) или нет? Или это уже U-boot делает?

 

Просто если spl-sunxi.bin всё инитит, что с ним проще, особенно, если он может что-то загрузить

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

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


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

Какими командами с помощью U-Boot загрузить по UART1 программу и дать ей управление? И по какому адресу должен быть слинкован код для A13 ?

Например, loady и go

 

Линковать с любого адреса SDRAM, не занятого самим u-boot.

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


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

2) spl-sunxi.bin - инитит всё железо(тактовую частоту, SDRAM, MMU) или нет? Или это уже U-boot делает?

Да, SPL проводит минимальную инициализацию. Насчет MMU не помню, скорее всего, кэш данных и MMU остаются отключены.

 

Для полной автоматизации загрузки рекомендую посмотреть USBBoot

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


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

Качал вот этот архив: A13_debian_34_90_mainline_u-boot_release_11_3.7z, с торрента - файл прикладываю:

Прикрепленный файл A13_debian_34_90_mainline_u_boot_release_11_3.zip ( 25.23 килобайт ) Кол-во скачиваний: 10

 

Если не сложно, можете сюда выложить первый мегабайт этого файла, с их торрентов не скачивается, а у них (олимекса) на форуме даже не скачать файлы для их плат, дурдом какой-то, все ссылаются на торренты, на которых нет раздачи...

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


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

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

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

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

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

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

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

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

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

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