|
Alwinner A13 не стартует с SD-карты, Отладочная плата A13-olinuxino |
|
|
|
Mar 31 2018, 17:29
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(mantech @ Mar 31 2018, 19:32)  Кстати, интересное дело как-то было, попалось 2 планшета на А13 и 1 на А10, понятно, что андроид на них, но бут-то все равно похожий на линуксовый, так вот, у А13 буковок не было ни на одном уарте, у а10 все по правилам и загрузка бут0 и бут1... Интерерсно, почему так? как справедливо сказали выше, черпают с одной бочки и тюнингуют под свои вкусы или корпоративные стандарты. просто заглушили выхлоп либо выключив порт, или переопределили под тот, на каком отлаживались и не факт, что это uart0/1 такая фишка полезна от всяких кулхацкеров, которые потом ломают прошивки у меня валяется подаренный под разборку сетевой медиаплейер (вроде на броадкоме), припаял консоль и буковки вижу, но остановить не могу - запрещено опцией в юбуте. а т.к. проц защищен цифровой подписью, то ломать бессмысленно Цитата По поводу сериального адаптера.. Ну если ТС не проделал все это - ему минус, ибо проверить TX с RX - дело само собой разумеющееся  кому очевидно, кому не очень. у меня нет полной информации о том, что у ТС, вот и приходится тыкать в критичные места.. Цитата Не буду спорить, но дело такое было, поэтому и написал... К тому же, при отладке незнакомой платформы и непонятному поведению проги вообще, всегда отключаю оптимизацию, после того, как все заработало, можно и включать, ибо уже понятно, что если снова не заработает, то сам накосячил... ага, я тоже пару раз наступал Цитата(mantech @ Mar 31 2018, 20:10)  Я просто к тому, что может и тс поэтому их не видит тоже  врядли - это отладочные прошивки, а не коммерческие
|
|
|
|
|
Apr 1 2018, 08:36
|

Местный
  
Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126

|
Спасибо всем кто хотел помочь и помог! Удалось запустить плату с A13 ! Было 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:  Фотка нормальной микросхемы:
Ошибка номер 2.Программа дискового редактора, которую я использовал: HxD Hex-редактор от Maёl Horz, неверно делала запись на 16-й сектор карты!Позже, скачав win32-disk-imager-0-7-en-win.zip (эта не свежая версия, но идёт под WinXP, что для меня важно!) и записав образ sunxi-spl.bin из папки a13_olinuxino_hwpack, я получил наконец-то запуск программы на A13:
Действительно, для отладки используется порт UART1. Образ sunxi-spl.bin для A13 прилагаю:
sunxi_spl.zip ( 11.61 килобайт )
Кол-во скачиваний: 15ну и далее попробовал запустить Debian, тот самый, что якобы на карту с 4 ГБ влезает (на самом деле нет, олимексовцы по-мойму забыли, что 4 ГБ это не 4*1024^3 байт, а 4*1000^3  ) всё пошло:
Качал вот этот архив: A13_debian_34_90_mainline_u-boot_release_11_3.7z, с торрента - файл прикладываю:
A13_debian_34_90_mainline_u_boot_release_11_3.zip ( 25.23 килобайт )
Кол-во скачиваний: 13Естественно, перед заливкой образа, архив распаковать. Образ писал программой, что описана выше: 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 ( 21.39 килобайт )
Кол-во скачиваний: 13Использую такие тулчейны: 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 ( 33.44 килобайт )
Кол-во скачиваний: 10Если достать нормальный дисковый редактор, то можно сразу spl.bin катать на 16-й сектор. Без всяких склеек с 0x2000.bin. Но пока такой программы не нашёл, все клянчат деньги и не дают работать на запись... --- В целом я рад - началу освоения Alwinner положено!!! Надеюсь, что то что написал, поможет начинающим разобраться и не спотыкаться на те грабли, что мне пришлось испытать. to mantech: регистры, порты ввода-вывода, переменные, менющиеся в обработчиках прерываний - должны быть объявлены как volatile, иначе компилятор оставляет за собой право выкинуть часть кода или закешировать эти переменные в регистры (особенно с максимальной оптимизацией, где не учитывается специфика работы с аппаратурой: допускается многократное присваивание в один и тот же регистр)
Сообщение отредактировал __inline__ - Apr 1 2018, 09:37
|
|
|
|
|
Apr 1 2018, 10:30
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(__inline__ @ Apr 1 2018, 11:36)  Спасибо всем кто хотел помочь и помог! Удалось запустить плату с A13 !  спасибо, что поделились результатами, кто-нить следующий придет, прочитает и обойдет подобные грабли.. по 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 ридер прямо на плате, но это уж как кому удобнее..
|
|
|
|
|
Apr 1 2018, 13:43
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Jury093 @ Apr 1 2018, 13:30)  поищите winhex или какой-нить discedit, у того же олимекса были ссылки на дисковые редакторы
формально, можно загрузиться с uSD в дефолтный дебьян и пилить вторую карточку через usb ридер прямо на плате, но это уж как кому удобнее.. Я предлагал ТСу программу cfimager от фриски. Пишет с на сд карту свой бинарь с первого сектора и ничего изобретать не нужно... Причем, что удобно, в ней нет гуя, работает с командной строки без установки драйверов или еще чего-либо. Цитата(Obam @ Apr 1 2018, 13:44)  В маркировке MAX-а смущает "+": вот не помню, это способность большого ESD (1.5кВ)? А если перемаркированная 232, то можно было бы увеличить ёмкости конденсаторов накопительных. В прочем, на фиг (; С успехом вас (: Неа, тут это не поможет, проверял. Цитата(__inline__ @ Apr 1 2018, 11:36)  Сорцы пишу в Блокноте (с синтаксической подсветкой типа "Bred"), для сборки батники или make-файлы.
По-мойму это лучше, чем искать проприетарное тяжеловесное дерьмо, за которое мудаки требуют деньги (в контексте последних ARM-ов). И к тому же которое под WinXP идёт либо криво или вообще не пускается. Т.е. ИДЕ не используете. А если ошибка в программе, как она отображается? В ИДЕ можно сразу на строчку с ошибкой кликнуть, ИМХО удобнее будет...
Сообщение отредактировал mantech - Apr 1 2018, 13:37
|
|
|
|
|
Apr 1 2018, 14:49
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(aaarrr @ Apr 1 2018, 17:12)  В консоли, естественно. Перейти на нужную строку в нужном файле можно и без ИДЕ - обычно все и так перед глазами. Не говорю, что нельзя, просто в иде удобнее, особенно, когда файлов больше сотни, а у ТСа, если он реально будет камень осваивать, будет и больше...
|
|
|
|
|
Apr 1 2018, 15:39
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(aaarrr @ Apr 1 2018, 14:08)  Просто разные 4GB карты несколько отличаются по размеру. карточки разного размера могут быть в двух случаях - производитель-параноик откусил часть флеша под сейв-блоки и второй - производитель-халтурщик поставил в карточку флеш с большим кол-вом бед-блоков. других вариантов как-то в голову не приходит.. для ленивых олимекс продает готовые карточки с нарезанной осью: https://www.olimex.com/Products/OLinuXino/A...source-hardwareЦитата По-хорошему, надо было файловую систему урезать до минимума не каждый сможет из комплекта бинарников сплодить рабочую систему, там обычно масса тонкостей и олимекс правильно делает, что выкладывает образы (не он первый такое практикует и это правильно), тем самым отсекает отрицательный фидбек по продукту.. опять же всегда можно взять 8ГБ карточку и на нее накатить предоставленный образ а если "по-хорошему", то рутовая генерится стандартными средствами, хошь debian armel/hf, хошь ubuntu, чистые дистрибутивы 60-100МБ, впрочем это уже не для ветки "Микроконтроллеры (MCs)".. ок, пожелаю ТС успехов в пилёжке..
|
|
|
|
|
Apr 1 2018, 15:51
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Jury093 @ Apr 1 2018, 18:39)  карточки разного размера могут быть в двух случаях - производитель-параноик откусил часть флеша под сейв-блоки и второй - производитель-халтурщик поставил в карточку флеш с большим кол-вом бед-блоков. других вариантов как-то в голову не приходит.. Да мало ли причин. В любом случае нельзя считать, что на карту с надписью "4GB" уместится 4 * 10^9 байт. Цитата(Jury093 @ Apr 1 2018, 18:39)  не каждый сможет из комплекта бинарников сплодить рабочую систему, там обычно масса тонкостей и олимекс правильно делает, что выкладывает образы (не он первый такое практикует и это правильно), тем самым отсекает отрицательный фидбек по продукту.. опять же всегда можно взять 8ГБ карточку и на нее накатить предоставленный образ Под "урезать" имелось в виду убрать свободное место, а не лить тупо содержимое карты через dd.
|
|
|
|
|
Apr 1 2018, 16:22
|

Местный
  
Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126

|
Всем спасибо за помощь! Цитата(mantech) Я предлагал ТСу программу 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-карты Цитата(mantech) Т.е. ИДЕ не используете. А если ошибка в программе, как она отображается? В ИДЕ можно сразу на строчку с ошибкой кликнуть, ИМХО удобнее будет... Когда писал под STM32, то открывал Keil исключительно для сборки проекта. Код писал в блокноте. В GCC ошибки выдаются в консоли: номер строки + тип ошибки = достаточно чтобы найти и исправить, не забыть в конце батника pause добавить, а то закроется. Или можно из под MSYS работать (или как там его - желтого цвета в винде mingw32 ...) Если сорцов много, то мейк-файл. Цитата(aaarrr @ Apr 1 2018, 16:51)  Да мало ли причин. В любом случае нельзя считать, что на карту с надписью "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 всё инитит, что с ним проще, особенно, если он может что-то загрузить
Сообщение отредактировал __inline__ - Apr 1 2018, 16:25
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|