1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/QHCH-linux-stm32

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Это что такое

Это набор средств разработки (SDK) для операционной системы Linux, работающий на платформе STM32F429I-Discovery. Загрузочный модуль Winterboot в SDK загружает ядро Linux и дерево устройств с microSD-карты в память SDRAM, а затем запускает его. Однако сама плата STM32F429I-Discovery не имеет адаптера для microSD-карт, а встроенный STLink не поддерживает режим USB2UART, поэтому вам потребуется самостоятельно установить адаптер microSD-карты и USB2UART-донгл.

1. Как собрать

Должна быть установлена компиляторская среда gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2, которая находится в SDK, перед тем как начать сборку.

  1. $ cd winterboot
  2. $ make
  3. $ ./burnflash.sh
  4. $ bzip2 -d Stm32_mini_rootfs.cpio.bz2
  5. $ mkdir rootfs && cd rootfs
  6. $ sudo cpio -idmv < ../Stm32_mini_rootfs.cpio
  7. $ touch init && chmod +x init && vim init # записать следующий текст
#!/bin/sh
# devtmpfs не автоматически монтируется для initramfs
/bin/mount -t devtmpfs devtmpfs /dev
exec 0</dev/console
exec 1>/dev/console
exec 2>/dev/console
exec /sbin/init
  1. $ cd ..
  2. $ tar xf linux-4.13.12.tar.xz
  3. $ cd linux-4.13.12
  4. $ make ARCH=arm CROSS_COMPILE=arm-none-eabi- stm32_defconfig
  5. $ make ARCH=arm menuconfig # rootfs прикреплен к ядру
Общие настройки  --->
    [*] Поддержка временной файловой системы RAM (initramfs/initrd)
         (<введите абсолютный путь до вашего rootfs здесь>) Исходные файлы initramfs

Опции загрузки  --->
    [*] Выполнение ядра из ROM
        (0x90008000) Логическое положение XIP ядра
```Тип системы --->
    [ * ] Установка размера флэш/SDRAM и базового адреса
           (0x90400000) Базовый адрес SDRAM
           (0x00400000) Размер SDRAM
           (0x90000000) Базовый адрес флеш-памяти
           (0x00400000) Размер флеш-памяти# Примечание: используйте Shift+Backspace для удаления
  1. $ make ARCH=arm CROSS_COMPILE=arm-none-eabi- # вы получите xipImage и stm32f429-disco.dtb
  2. скопируйте xipImage и stm32f429-disco.dtb из линукса в корневую директорию microSD-карты как kernel.bin и devicetree.bin
  3. вставьте microSD-карту в плату STM32F429I-Discovery, соедините USART1 с COM-портом компьютера, затем перезагрузите плату
  4. наслаждайтесь результатом

Структура образа будет следующей:

файл адрес
загрузчик 0x8000000
devicetree 0x8004000
ядро 0x8008000

2. Как отлаживать Linux

  1. $ cd winterboot
  2. $ openocd
  3. $ # откройте ещё одно окно SSH и перейдите в директорию winterboot
  4. $ ./gdb.sh
  5. (gdb) b main.c:291 # остановитесь перед переходом к Linux
  6. (gdb) c
  7. (gdb) file ~/linux-stm32/linux-4.13.12/vmlinux # вам потребуется ввести 'y', чтобы подтвердить вашу операцию здесь
  8. (gdb) b _text # остановитесь при входе в Linux
  9. (gdb) c
  10. наслаждайтесь процессом

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Заставьте Linux работать на STM32. Развернуть Свернуть
OSL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/QHCH-linux-stm32.git
git@api.gitlife.ru:oschina-mirror/QHCH-linux-stm32.git
oschina-mirror
QHCH-linux-stm32
QHCH-linux-stm32
master