일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- lambda
- raspberry
- YMODEM
- 서버리스
- flask
- 완속충전기
- homeassistant
- 플라스크
- IOT Core
- AWS
- STM32
- everon
- thread
- dynamodb
- 전기차충전
- OCPP
- 급속충전기
- 홈어시스턴트
- 안드로이드
- 충전기
- 디자인패턴
- Android
- esp8266
- 라즈베리파이
- 전기차
- 보안
- 파이썬
- 펌웨어
- 전기차충전기
- 에버온
- Today
- Total
목록STM32 (21)
Louie NRT Story
작성일: 22년 7월 29일 Contents 1. 이벤트 플래그(EVENT FLAG) 2. EventFlag 생성하기 3. Set Event Flag 위한 Task01 생성하기 4. Get Event Flag 위한 Task02 생성하기 5. 화면 출력 6. Wait Event Flag 위한 Task03 만들기 1. 이벤트 플래그(EVENT FLAG) - 이벤트 플래그를 만들어서 디바이스의 상태를 점검하는 용도로 씀 - Bit0 -> 엔진, Bit1 -> 미션 등 Bit 하나하나가 디바이스의 상태를 나타냄 - 아래의 예제에서는 진단 결과 하나라도 "0" 으로 되어 있다면 주행을 못하게 함 2. EventFlag 생성하기 - FreeRTOS를 활성화 하여 Interface는 CMSIS_V2로 설정함 - Ev..
작성일: 22년 3월 7일 PS. 개발하면서 사용하고 있는 Log를 정리함. 같이 근무하고 있는 박OO 연구원님과 함께함. https://github.com/pus0319 pus0319 - Overview pus0319 has 5 repositories available. Follow their code on GitHub. github.com Index 1. 코드 작성 2. printf 코드 보기 3. __io_putchar() 함수 구현하기 4. Logger를 전처리 5. Logger 출력 결과 1. 코드 작성 - STM32CudeIDE에서 main.c 파일 안에 1초마다 printf 를 찍고자 함. ※ 해당 블로그에서는 UART 설정에 대해서는 생략함 2. printf 코드 보기 - printf 함수..
작성일: 22년 7월 29일 Contents 1. Message Queue 개념도 2. Message Queue 만들기 3. Message Queue 보내는 Task01 코드 4. Message Queue 수신 Task02 코드 5. Message Queue 수신 데이터 출력 화면 6. Queue 버퍼 꽉 찬 상태에서 확인 1. Message Queue 개념도 - Task끼리 데이터를 주고 받는데 여기서 중요한 것은 포인터 변수를 전송하는 것을 확인해야함 - xQueueSendToFront() 함수를 사용하면 메시지를 맨 앞으로 보낼 수도 있고, xQueueSendFromISR()은 ISR 영역에서 사용하는 것으로 MessageQueue 보내는 방법을 선택 할 수 있음 2. Message Queue 만들..
작성일: 21년 8월 1일 Index 1. printf 함수 쓰면 호출 되는 함수 2. __io_putchar 함수 재정의 3. 새로운 방식 1. printf 함수 쓰면 호출 되는 함수 - syscalls 에서 "_write" 함수가 호출 됨 2. __io_putchar 함수 재정의 - 느낌상 _write 함수를 재정의 해야하는 것 처럼 보이는데 지금까지 본 코드들에서는 __io_putchar 함수를 재정의 하였음. 이건 조금 더 공부해봐야겠음. - 코드 설명 해주면 현재 쓰고있는 보드 설계상 UART_EN 포트가 ON이 되어야만 데이터를 보낼 수 있음. UART_EN 포트가 OFF 일때는 데이터 수신만 가능함 - UART_EN을 ON으로 변경해주고 1byte 데이터를 보내고 UART_EN을 OFF로 변..
작성일: 21년 4월 29일 Index 1. WDG(Watch Dog) 2. IWDG(Independent Watch Dog) 3. WWDG(Window Watch Dog) 1. WDG(Watch Dog) - 와치독 타이머는 프로그램이 일정 시간 초과하여 동작하거나 멈춰있을때 MCU 스스로가 리셋하는 기능임. - 특정 함수의 "While" 문에 빠지거나 Timout이 발생하지 않아서 무한정 기다리는 경우 Watch Dog를 통하여 리셋함 2. IWDG(Independent Watch Dog) - IWDG 는 LSI 로부터 clock 을 제공받는 12-bit down counter 타이머로서 HSI/HSE clock 에 문제가 발생하여도 독립적으로 동작할 수 있음. 1) Clock 확인 - LSI가 40K..
작성일: 21년 4월 22일 Index 1. APP FLASH 코드 수정 2. APP BSP System_stm 코드 수정 3. APP main 수정 4. Build 파일 확인 5. 펌웨어 다운로드 6. 직접개발한 GUI 활용한 다운로드 1. APP FLASH 코드 수정 - Application 영역의 Firmware가 시작할 메모리 수정 - version 정보를 특정 메모리에 쓰도록 함 - 용량은 1KB 로 잡아놓음 - 빌드 후 Debug 폴더에 보면 ".map" 파일이 존재함을 확인 할 수 있음 - 파일을 열어보면 version 정보가 0x08010400에 저장되어 있음을 알 수 있음. 2. APP BSP System_stm 코드 수정 - VECTOR OFFSET 코드 수정 - 수정한 VECTOR O..
작성일: 21년 4월 22일 Index 1. STM Example Code 복사 2. 메모리 구조 정의 3. Bootloader Flash 코드 수정 4. Bootloader Main 수정 5. Bootloader menu 수정 6. Tera Term 으로 실행한 결과 1. STM Example Code 복사 - 기능 모듈 부분만 복사를 하도록함 - main 문 같은 경우 "while" 내부의 코드만 복사하면 됨. 2. 메모리 구조 정의 - Bootloader의 시작 주소는 0x0800 0000으로 시작하고 Application Code의 시작 주소는 0x0801 0000로 잡는다. - Bootloader는 64KB 크기로 넉넉하게 잡아줌. - 크기가 부족할 경우 펌웨어 업데이트 하다가 메모리가 지워져 ..
작성일: 21년 4월 7일 Index 1. YMODEM 다운로더 코드 2. 코드 실행 3. 다운로드된 파일 확인 4. 개발자 주저리주저리 - 하루종일 이것만 했네ㅠㅠ 1. YMODEM 다운로더 코드 - javascript로 개발된 YMODEM 코드 github.com/ganioc/ymodem-sender-js ganioc/ymodem-sender-js Contribute to ganioc/ymodem-sender-js development by creating an account on GitHub. github.com - 테스트 하면서 수정한 내용으로는 Config 파일들과 Receive 쪽의 Timeout들을 길게 해주었음 - 펌웨어에서 데이터를 받고 Receive ACK를 늦게 보내서 Download..
작성일: 21년 4월 6일 Index 1. 업로드할 파일 생성 2. 파일 업로드; 보드 기준에서는 다운로드 3. Flash 메모리 확인 1. 업로드할 파일 생성 2. 파일 업로드; 보드 기준에서는 다운로드 3. Flash 메모리 확인 - 데이터가 써진것을 확인 할 수 있음 Referece: github.com/LouieKim/stm32f105_bootload_example LouieKim/stm32f105_bootload_example bootload example. Contribute to LouieKim/stm32f105_bootload_example development by creating an account on GitHub. github.com
작성일: 21년 4월 6일 Index 1. 메모리 삭제 에러 2. Flash Lock이 걸린 재현 상황 예측 3. Flash Lock 해제 4. 메모리 전체 Erase 1. 메모리 삭제 에러 "Mass erase operation failed. Please verify flash protection" "Error: failed to erase memory" 2. Flash Lock이 걸린 재현 상황 예측 1) Boot Loader를 실행함 2) Flash 메모리에 있던것을 Ram에 올려놓고 실행함 3) 실행 도중 Flash 메모리가 손상됨 4) 코드에 따라 Flash 메모리 Lock 걸고 재부팅 5) Flash 메모리 손상으로 인해 부팅 되지 않음 6) 펌웨어 다운로드 하려고 해도 Lock 걸려 있어서 ..