juvf 17 10 ноября, 2016 Опубликовано 10 ноября, 2016 · Жалоба собираю софт мэйком make xconfig (или make minuconfig или в конце концов make config) make all make all спотыкается. ему нужен кросскомпилятор. нужно так make CROSS_COMPILE=arm-none-eabi- all добавил параметр CROSS_COMPILE в Kconfig. Один раз в менюшке указал "arm-none-eabi-" и забыл. Это я так думал, что забыл. Параметр CROSS_COMPILE в make xconfig появился. задал. но при сборке опять make пытается собрать компилятором gcc вместо arm-none-eabi-gcc. Как мэйку передать из конфигурации этот параметр? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 10 ноября, 2016 Опубликовано 10 ноября, 2016 · Жалоба добавил параметр CROSS_COMPILE в Kconfig. Один раз в менюшке указал "arm-none-eabi-" и забыл. Это я так думал, что забыл. Параметр CROSS_COMPILE в make xconfig появился. задал. но при сборке опять make пытается собрать компилятором gcc вместо arm-none-eabi-gcc. Как мэйку передать из конфигурации этот параметр? пара вариантов 1. в файле настроек шелла (для bash например ~/.bashrc) пропишите export CROSS_COMPILE=arm-none-eabi- потом выйдите из терминалки или запустите новую, чтобы выполнились настройки 2. в своем скрипте напишите строку: GCC=arm-none-eabi- и далее для make указывайте make CROSS_COMPILE=$GCC можно вообще ничего не прописывать, запустили терминалку, дали команду export CROSS_COMPILE=arm-none-eabi- и пока не вышли, переменная будет работать.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 10 ноября, 2016 Опубликовано 10 ноября, 2016 · Жалоба Я для raspberry вот таким скриптом ведро компелял: #!/bin/bash make -j4 ARCH=arm CROSS_COMPILE=/usr/bin/arm-none-eabi- Image modules dtbs mkdir Modules make ARCH=arm CROSS_COMPILE=/usr/bin/arm-none-eabi- INSTALL_MOD_PATH=Modules modules_install А потом перенес на флеху. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 10 ноября, 2016 Опубликовано 10 ноября, 2016 · Жалоба вопрос не в том, как мейку из шела и всякими экспортами передать CROSS_COMPILE. вопрос в том, как в конфигурацию включить CROSS_COMPILE? на пальцах.... качаем исходгники uсLinux. выполняем две команды make menuconfig make получаем бинарь. при конфигурации указываем, что кросскомпилятор есть arm-none-eabi-. потом маке подхватывает эту переменную и вместо gcc использует arm-none-eabi-gcc. потом можно ковырять сырци и многократно на разных компах делать сборку. кросскомпилятор всегда подхватиться. красиво? красиво! далее.... качаем u-boot. теже яйца команды make menuconfig make но тут авторы Kconfig уже не воткнули кроскомпилятор. приходится бубном писать скрипты или делать всякие экспорты. хотелось бы также в make menuconfig есдиножды указать этот кросскомпилятор и чтоб маке all его подхватил без дополнительных указаний. Я в Kconfig архитектура процессора добавил переменную CROSS_COMPILE. Теперь при вызове make menuconfig? там где выберается таргет, боард, фэмели... можно указать кросскомпилятор. Но при выполнении make all почемуто маке не знает про секс CROSS_COMPILE по мимо CROSS_COMPILE я бы в Kconfig воткнул бы -j8 и ещё чего нибудь. Хотелось бы научиться делать красивые конфиги для make-а. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psL 0 10 ноября, 2016 Опубликовано 10 ноября, 2016 · Жалоба как в конфигурацию включить CROSS_COMPILE? Как-то так: https://patchwork.kernel.org/patch/69210/ Переменные в Kconfig имеют префикс CONFIG_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 11 ноября, 2016 Опубликовано 11 ноября, 2016 · Жалоба Еще один вариант — все делать внутри армовского чрута при помощи qemu. Я так разворачивал генту на raspberry (т.к. она слишком тормозная, чтобы непосредственно на ней компелять). Вот таким скриптом у меня монтируются разделы "малинки": #!/bin/bash CHRT="ROOT" if [ $# != 1 ]; then echo "usage: $0 /dev/sdb" exit 1 fi function mnt(){ mount --rbind $1 ${CHRT}$1 } [ -f /proc/sys/fs/binfmt_misc/arm ] || echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\x ff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-static:' > /proc/sys/fs/binfmt_misc/register mount ${1}2 ${CHRT} mv ${CHRT}/usr/bin/qemu-arm-static_ ${CHRT}/usr/bin/qemu-arm-static mount ${1}1 ${CHRT}/boot mount -o bind linux ${CHRT}/usr/src/linux mnt /dev mnt /sys mount -t proc none ${CHRT}/proc mnt /run mount -o bind portage ${CHRT}/usr/portage chroot ${CHRT} И скрипт для размонтирования: #!/bin/bash CHRT="ROOT" mv ${CHRT}/usr/bin/qemu-arm-static ${CHRT}/usr/bin/qemu-arm-static_ umount ${CHRT}/boot umount ${CHRT}/usr/portage/ umount ${CHRT}/usr/src/linux umount ${CHRT}/proc umount ${CHRT}/run umount ${CHRT}/sys umount ${CHRT}/dev/pts umount ${CHRT}/dev/shm umount ${CHRT}/dev umount ${CHRT} Главное - не забыть /usr/bin/qemu-arm-static, иначе на настоящем железе система не загрузится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 11 ноября, 2016 Опубликовано 11 ноября, 2016 · Жалоба а паи (орандж пай, банана пай, расбери пай) можно на низком уровне пощюпать? На али есть орандж пай, фоты.... не вижу разъема для подключения отладчика. У процессора я так понял нет внутреннего флеша. Т.е. страт либо с тфт, либо с усб, либо с лан. От куда старт программы и как выбирается? можно ли подебажить подобный проц/комп начиная с ресета? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 14 ноября, 2016 Опубликовано 14 ноября, 2016 · Жалоба Как-то так: https://patchwork.kernel.org/patch/69210/ Переменные в Kconfig имеют префикс CONFIG_ Не понятно, как так? Ещё понадобилось включить в конфигурацию параметры. Кто нибудь создавал свои конфиги? Как в них добавлять параметры и как их передавать в makefile? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 14 ноября, 2016 Опубликовано 14 ноября, 2016 · Жалоба можно на низком уровне пощюпать? Да, если в настройке загрузки указано дублировать tty на последовательный порт. Я так отлаживал загрузку "малинки". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 15 ноября, 2016 Опубликовано 15 ноября, 2016 · Жалоба Да, если в настройке загрузки указано дублировать tty на последовательный порт. Я так отлаживал загрузку "малинки".ну вот после ресета программа процессор (обычно) страртует с адреса 0х00. там вектор прерывания. по вектору прерывания обычно уходим в startup.s. Далее идет инициализация тактового генератора, инициализация таблицы векторов прерывания, инициализация сдрам, ног GPIO и т.д. Низкоуровневая инициализация.... до инициализации UART ещё далеко. тем более до /drv/tty. Ещё нет линукса... только u-boot начал работать. как это дебажить? как по шагам в таких процессорах выполнять программу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 15 ноября, 2016 Опубликовано 15 ноября, 2016 · Жалоба только u-boot начал работать. как это дебажить? как по шагам в таких процессорах выполнять программу? Только через JTAG, если он выведен, конечно. А смысл на столь ранних этапах дебажить? Разве только если пытаться написать свой собственный загрузчик... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 15 ноября, 2016 Опубликовано 15 ноября, 2016 · Жалоба А смысл на столь ранних этапах дебажить? Разве только если пытаться написать свой собственный загрузчик...я это и пытаюсь сделать. нужно сделать свою железку, со своими блекджеком и шлю.... своей мэмори мэп, со своей переферией, залить туда свой загрузчик, который зальёт свой линукс. Но для начало можно на готовых фруктах потренироваться, если у них конечно есть аппаратный отладчик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 15 ноября, 2016 Опубликовано 15 ноября, 2016 · Жалоба В табличке "I/O interfaces and ports" можно выбрать одноплатник с распаянным JTAG. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 15 ноября, 2016 Опубликовано 15 ноября, 2016 · Жалоба В табличке "I/O interfaces and ports" можно выбрать одноплатник с распаянным JTAG.малины с джитагом нет ((.... чтонить выберу. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
R6L-025 1 29 ноября, 2016 Опубликовано 29 ноября, 2016 · Жалоба Может быть Вам будут ближе системы на кристалле? Вроде платки DE0-SoC-nano. Там код зашитый в проц грузит прелоадер, и начиная с этого момента данные выводятся на последовательную консоль. После чего грузится сам u-boot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться