Post #372
395
Коробочка обрела домик, теперь живет в распечатанном корпусе
VW Showing posts older than #373 · Back to latest

buildroot_out_folder/host/share/buildroot/toolchainfile.cmakeВ моем случае это будет путь вида:
/home/valenti/Development/Embedded/exercise8/build_orange_zero_image/host/share/buildroot/toolchainfile.cmake2. В VSCode настраиваем все, чтобы можно было работать с CMakePresets - файлами:
{
"version": 2,
"configurePresets": [
{
"name": "buildroot_orange_pi_zero",
"displayName": "Orange Pi Zero buildroot custom toolchain",
"description": "Sets orangepi custom buiild toolchain",
"generator": "Unix Makefiles",
"binaryDir": "${sourceDir}/build/${presetName}",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_TOOLCHAIN_FILE": "/home/valenti/Development/Embedded/exercise8/build_orange_zero_image/host/share/buildroot/toolchainfile.cmake",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}"
}
}
]
}
4. Собираем, в теории сборка должна пройти безболезненно. По ходу докидываем в образ системы необходимые зависимости, собираем, повторяем до готовности образа. На всякий случай проверяем, как собрался итоговый образ{
"version": "0.2.0",
"configurations": [
{
"name": "Test server ARM Orange Zero",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/build/buildroot_orange_pi_zero/app_test_drogon_server",
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"miDebuggerServerAddress": "192.168.0.116:8876", // тут 8876 это порт, на котором будет поднят gdbserver
"miDebuggerPath": "/home/valenti/Development/Embedded/exercise8/build_orange_zero_image/host/bin/arm-buildroot-linux-uclibcgnueabihf-gdb",
"externalConsole": true,
"MIMode": "gdb",
"stopAtConnect": true,
"setupCommands": [
{
"text": "source /home/valenti/Development/Embedded/exercise8/build_orange_zero_image/staging/usr/share/buildroot/gdbinit"
},
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
],
"compounds": []
}
На целевом устройствеgdbserver :8876 app_test_drogon_serverВ VSCode запускаем отладку по
T
hread 2 "DrogonIoLoop" hit Break
point
2,
JsonCtrl::asyncHandleHttpRequest(std::shared_ptr<drogon::HttpRequest> const&, std::function<void (std::shared_ptr<drogon::HttpResponse> const&)>&&) (this=0x5b9920, req=..., callback=...) at /home/valenti/Development/Embedded/dragon_playground/main.cpp:18Собственно, можем удаленно отлаживать
18 spdlog::info("Handlded get request to json!");
make menuconfig2. Добавляем поддержку overlayfs:
Kernel->Custom Kernel Patches
Добавляем https://github.com/altera-opensource/linux-socfpga/commit/ec497e866a22c9b90e8600177a5a6b0c2dec6938.patch
3. Сохраняемся, собираем образ, закидываем на SD карту
make linux-menuconfig
File systems->Overlay Filesystem Support
(Можно включить все опции)
Device Drivers-> Device Tree and Open Firmware support -> Device tree overlays + Device tree Overlay ConfigFS interface
Получаем configfs
mount x /sys/kernel/config -t configfs
mkdir /sys/kernel/config/device-tree/overlays/foo
&spi1 {
status = "okay";
temp-sensor@0{
compatible = "maxim,max6675";
reg = <0>;
spi-max-frequency = <4300000>;
spi-cpha;
};
// spidev@0 {
// compatible = "rohm,dh2228fv";
// reg = <0>;
// spi-max-frequency = <10000000>;
// };
};
А дальше - поправили dts,в случае orange pi zero - это будет BUILDROOT_BUILD_DIR/build/linux-5.10.10/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
И
make linux-rebuild.
make
P
S.Н
асчет
make
linux-rebuild не уверен, скорее всего есть способ как собрать чисто DTS и собрать образ, чтобы не триггерить постоянно пересборку ядра
make linux-rebuildпроходит достаточно быстро
cd sys/bus/iio/devices/iio:device0/Только потом полученное значение надо перегнать в нормальный формат
cat in_temp_raw
Forwarded from федрольня
make linux-menuconfig
Device Drivers->Industrial IO Support->Temperature Sensors->Maxim Thermocouple sensors
make menuconfig
Kernel->Additional configuration fragment files




