nucleo-stm32F429zi 보드에서 Linux를 실행할 수 있나요?

nucleo-stm32F429zi 보드에서 Linux를 실행할 수 있나요?

내가 아는 한 stm32nucleoF429zi에는 하드웨어 MMU가 없지만 Linux 커널 구성 옵션에서 MMU 옵션을 비활성화할 수 있습니다.

이렇게 하면 stm32 F429zi에서 Linux를 실행할 수 없는 이유는 무엇입니까? 왜 uCLinux만 실행할 수 있나요? Linux 커널 구성에서 MMU를 비활성화하면 uCLinux는 실행할 수 있지만 Linux는 실행할 수 없는 이유는 무엇입니까?

답변1

stm32f429에서 메인라인 Linux를 쉽게 실행할 수 있습니다.그리고 다른 MMU가 없는 MCU도 있습니다. 저는 stm32h743에서 메인라인 Linux 커널을 실행하고 있습니다(stm32f4와 같은 MMU도 없습니다).

하지만유일한 문제는귀하의 개발 보드에는외부 메모리.

리눅스를 실행하기 위해최소 4MB RAM이 필요합니다..

그러니 꼭 구매하시길 추천드려요STM32F429NI MCU를 갖춘 평가 보드. 평가 보드에는 SD 카드 슬롯도 있습니다.

마더보드에서 Linux를 실행하는 단계:

  1. 다운로드유스타트그리고리눅스 커널그리고 바쁜 상자.
  2. u-boot 및 Linux 커널과 비지박스 빌드(비지박스를 사용하여 rootfs 생성용)이 가이드).
  3. stm32 내부 플래시 메모리에 u-boot 굽기
  4. SD 카드 준비(20MB FAT 파티션 생성 및 대형 EXT4 파티션 생성)
  5. 부팅 파일을 sdcard에 복사합니다(마더보드의 dtb 파일과 커널의 zImage를 fat 파티션에 복사하고 rootfs를 ext4 파티션에 복사).
  6. u-boot 명령을 사용하여 DTB 및 zImage를 DRAM에 로드하고 커널을 시작합니다.

유용하고 필요한 u-boot 명령:

  1. DTB 및 zImage를 로드하려면 "fatload" 명령을 사용하십시오(예: fatload mmc 0:1 ${kernel_addr_r} zImage).
  2. "setenv bootargs" 명령을 사용하여 설정합니다.부팅 매개변수예를 들어(setenv bootargs console=ttySTM0,115200n8 root=/dev/mmcblk0p2 rw rootwait loglevel=7 init=/linuxrc).
  3. 예를 들어 "bootz" 명령을 사용하여 커널을 부팅합니다(bootz ${kernel_addr_r} - ${fdt_addr_r}).

추신: uClinux는 오래되고 쓸모가 없습니다. 최신 메인라인 리눅스 커널을 사용할 수 있다면 사용하지 마세요.

관련 정보