728x90

MCU 6

[WSL] VSCode server for WSL closed unexpectedly. check WSL terminal for more details

WSL 18.04 환경에서 VSCode를 사용할 때, 아래와 같은 오류가 발생했다. VSCode server for WSL closed unexpectedly. Check WSL terminal for more details. 기본적으로 갑작스럽게 VSCode와 WSL의 연결이 끊기면서 발생한다. 자세한 내용은 Terminal을 참조하면 된다.   아래와 같은 오류가 발생했다. 아래 오류는 VSCode가 업데이트됨에 따라 18.04에서 지원하지 않는 GLIBC 버전을 사용해서 발생한다. /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28' not found 굳이 18.04를 사용하는 이유가 없다면 20.04로 업데이트해주는 것이 가장 쉬운 방법이다.sudo apt..

MCU 2025.04.08

[WSL] WSL ERROR_FILE_NOT_FOUND로 인해 Ubuntu 실행 불가 문제

Microsoft store에서 WSL을 설치하고 실행하니 아래와 같은 오류가 발생하였다. 'C:\Users\USER\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx' 디스크를 WSL2에 연결하지 못했습니다. 지정된 파일을 찾을 수 없습니다.오류 코드: Wsl/Service/CreateInstance/MountVhd/HCS/ERROR_FILE_NOT_FOUNDPress any key to continue... WSL2의 ext4.vhdx 파일을 찾지 못했다고 한다.   WSL 등록해지 (cmd에서 진행)$ wsl --unregister ubuntu WSL 재설치 (cmd에서 진행)$ ..

MCU 2025.02.26

[WSL] WSL 18.04 32비트 바이너리 실행 환경 설정하기

리눅스 시스템에서는 멀티 아키텍처(Multiarch) 지원을 통해 64비트 시스템에서 32비트 바이너리를 실행할 수 있게 해줍니다. 멀티 아키텍처는 하나의 시스템에서 서로 다른 아키텍처의 바이너리를 동시에 실행할 수 있는 기능으로, 리눅스에서는 이를 `dpkg`와 `apt` 패키지 관리 도구를 통해 관리할 수 있습니다. 이를 통해 32비트 라이브러리와 패키지를 설치하고, 32비트 애플리케이션을 실행할 수 있게 됩니다. 현재 사용중인 하드웨어 아키텍쳐를 봅시다.$ uname -m `x86_64` → 64비트 아키텍처`i686` → 32비트 아키텍처`aarch64` → 64비트 ARM 아키텍처`armv7l` → 32비트 ARM 아키텍처저는 x86_64 환경에서 진행했습니다.  예를 들어 `make_ext4f..

MCU 2025.02.10

FreeRTOS ARM-M0 직접 포팅

5일동안 삽질하면서 ARM-M0 보드에 FreeRTOS를 포팅하는 과정과 오류를 정리하겠다.여기서 Keil 컴파일러를 사용하였지만 Keil Pack Installer에서 CMSIS-FreeRTOS를 설치하는 과정에서 오류가 생겨 직접 포팅하였다. 직접 포팅1. FreeRTOS-Kernel 다운로드 https://github.com/FreeRTOS/FreeRTOS-Kernel 에서 Kernel 파일을 가져와 프로젝트 파일에 넣어준다.Keil에서 본인 프로젝트에 Manage Project Itmes로 Kernel 파일 일부를 가져와야 된다. 2. Keil 프로젝트 구성공통 파일.\tasks.c.\list.c.\queue.c.\...(본인 선택)Keil - ARM_M0.\portable\RVDS\ARM_CM0..

MCU 2024.12.19

[MCU] Startup 코드란?

Startup Code는 글자 그대로 MCU의 시작을 의미한다. MCU의 전원을 켰을 때(Power-On Reset) 시작되는 / 실행되는 코드라는 것이다. 하드웨어와 소프트웨어 환경을 초기화하여 애플리케이션 코드가 실행될 준비를 한다. 이 코드는 시스템 운영의 기초가 되며, 주로 어셈블리 언어 또는 저수준 C 코드로 작성된다. Startup Code의 일반적인 동작 순서벡터 섹션 정의모든 인터럽트 비활성화초기화된 데이터를 ROM에서 RAM으로 복사초기화되지 않은 데이터 영역을 0으로 설정스택 공간 할당 및 초기화프로세서의 스택 포인터 초기화힙 공간 생성 및 초기화인터럽트 활성화main 함수 호출이 외에도 실행될 수 있는 몇 가지 명령어를 포함할 수 있고, 이는 main 함수가 종료되는 경우에만 실행된다..

MCU 2024.12.11
728x90