Don't think! Just do it!

종합 IT 기술 정체성 카오스 블로그! 이... 이곳은 어디지?

전체 213

[nRF52840 + Zephyr] #5. 디바이스 트리 3

2023.05.11 - [임베디드 소프트웨어/Zephyr] - [nRF52840 + Zephyr] #4. 디바이스 트리 2 [nRF52840 + Zephyr] #4. 디바이스 트리 22023.05.09 - [임베디드 소프트웨어/Zephyr] - [nRF52840 + Zephyr] #3. 디바이스 트리 1 [nRF52840 + Zephyr] #3. 디바이스 트리 12023.05.03 - [임베디드 소프트웨어/Zephyr] - [nRF52840 + Zephyr] #2. 뭘 공부해야 하나? [nRF52840 engschool.tistory.com이제 실제로 디바이스 트리를 수정해보자구! printk를 사용해서 hello world!! ㅋㅋ 기본 blink app에서 printk("hello world"); 달..

[nRF52840 + Zephyr] #4. 디바이스 트리 2

2023.05.09 - [임베디드 소프트웨어/Zephyr] - [nRF52840 + Zephyr] #3. 디바이스 트리 1 [nRF52840 + Zephyr] #3. 디바이스 트리 12023.05.03 - [임베디드 소프트웨어/Zephyr] - [nRF52840 + Zephyr] #2. 뭘 공부해야 하나? [nRF52840 + Zephyr] #2. 뭘 공부해야 하나? 2023.05.01 - [임베디드 소프트웨어/Zephyr] - Nordic NRF52840 + Zephyr 개발 환경 구축 Nordicengschool.tistory.com지난 번에는 blinky 앱에서 디바이스 트리의 노드를 어떻게 사용했는지 간단하게 살펴봤어. 이 번에는 조금더 들어가서 unit address하고 chosen에 대해 알아..

[nRF52840 + Zephyr] #3. 디바이스 트리 1

2023.05.03 - [임베디드 소프트웨어/Zephyr] - [nRF52840 + Zephyr] #2. 뭘 공부해야 하나? [nRF52840 + Zephyr] #2. 뭘 공부해야 하나? 2023.05.01 - [임베디드 소프트웨어/Zephyr] - Nordic NRF52840 + Zephyr 개발 환경 구축 Nordic NRF52840 + Zephyr 개발 환경 구축nrf52840을 위한 zephyr 개발 환경은 vscode에 nrf extension을 설치하는 방식으로 구축해. 공 engschool.tistory.com 저번 글에서 적어도 3가지는 공부해야 한다고 그랬어. Device tree, Kconfig, zephyr kernel api. 이 중에 하드웨어 설정과 관련이 있는 Device tre..

[nRF52840 + Zephyr] #2. 뭘 공부해야 하나?

2023.05.01 - [임베디드 소프트웨어/Zephyr] - Nordic NRF52840 + Zephyr 개발 환경 구축 Nordic NRF52840 + Zephyr 개발 환경 구축 nrf52840을 위한 zephyr 개발 환경은 vscode에 nrf extension을 설치하는 방식으로 구축해. 공식 가이드에도 이렇게 나와있으니까 고민하지 말고 따라왓! 우선 아래 링크에서 nrf connect for desktop을 설치!👇 engschool.tistory.com 아래는 저번 시간에 보드에 올리고 테스트 했던 blinky app의 main.c 파일 내용이야. 👇👇 적당히 주석을 달아놨으니 당장 모르겠어도 한 번 주~욱 살펴보라굿. #include #include #define SLEEP_TIME_MS..

[nRF52840 + Zephyr] #1. 개발 환경 구축

nrf52840을 위한 zephyr 개발 환경은 vscode에 nrf extension을 설치하는 방식으로 구축해. 공식 가이드에도 이렇게 나와있으니까 고민하지 말고 따라왓! 우선 아래 링크에서 nrf connect for desktop을 설치! 👇 https://www.nordicsemi.com/Products/Development-tools/nRF-Connect-for-Desktop/Download#infotabs nRF connect for desktop을 통해서 SDK 등 여러가지 nrf 개발용 소프트웨어를 설치할 수 있어. 그리고 아래 링크에서 nrf command line tool 설치! 👇👇 이건 segger debugger 디바이스 드라이버가 들어 있는 놈이지! 플래시에 프로그램하거나 디버..

[nRF52840 + Zephyr] #0. nRF and Zephyr

NRF52 시리즈 중 하나를 아주 잠깐 사용해본 적이 있었어. 어렴풋한 기억으로는 RTOS에 블루투스 스택이 돌아가고 있었고 유저는 유저 테스크에서만 한정적으로 코드를 만졌던 것 같아 -_-;;; 스쳐지나가는 프로젝트라 깊게도 안팠지만 그 때 뭐랄까.. 좀 나쁜 이미지가 있었는데 이제와서 다시 보니~ 제퍼 OS를 사용하고 있네? 오~ 👇👇👇 사용자 환경도 매우 잘 구축되어 있고 예제도 충실해! 이것 저것 테스트해보고 나니 이건 뭐 신세계! 개인적으로 느끼기에 지금까지 경험해본 임베디드 개발 환경 중 단연 으뜸이라 말할 수 있었어. 블루투스 쪽 스택이나 프로파일도 알아야 하고 제퍼 RTOS도 해야 한다는 압박감이 있는 걸 알지만 nordic에서 제공하는 vscode extension을 설치하고 예제를 몇개..

CCMRAM 사용하기

지금 사용하고 있는 stm32f407vg는 sram 192kbytes 있다고 되어 있는데; 빌드해보니 CCMRAM이라는 녀석은 사용을 안하고 있더라고? 이건 집에서 만든 예제라 사용량이 여유가 있지만 내가 하고 있는 실제 프로젝트에서 RAM 사용량이 90퍼센트가 넘어가다보니 CCMRAM 사용을 안할 수가 없더라고 ㅎㅎㅎ 램 사용량 빨간거 보면 참 ㅋㅋㅋ 생각이 많아지지 ㅋㅋ 저 영역을 사용하는 건 간단해. 👇 __attribute__((section(".ccmram"))) uint8_t buffer[1024]; 앞에다가 __attribute__((section(".ccmram"))) 이라고 선언만 해주면 됨! 그런데 귀찮으니까 메크로 고고! #define CCMRAM __attribute__((secti..

[Flutter] Iphone Local ip address

앱에서 자기 자신의 ip주소를 얻어와야 할 때가 있는데.. 음... 특히 내 경우는 hot spot 상태에서 폰의 local ip address하고 폰에 붙은 클라이언트들의 ip address를 읽어와야 할 때가 있어. 그래서 해봤음. 기본적인 아이디어는 이래. dart:io 패키지-> NetworkInterface class를 통해 hot spot용 네트워크 인터페이스가 생겼는지 확인하고 로컬 ip 주소를 가져왓! dart_ping 패키지를 사용해 2 ~ 255 까지 핑 쐇! 핑이 있는 ip 주소 업데이트! 참 쉽죠? main을 보자! 👇 import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:ither..

Flutter 2023.03.20

STM32F407 32.768kHz Crystal 선정 및 디버그!

보통은 큰 문제가 안돼. STM의 경우 메인 크리스탈은 any vendor(아무거나) 8Mhz 때려박고 대강 18pf 정도 달아주면 왠만하면 동작해. 그런데 문제는 32.768khz.... RTC용 크리스탈인데;;; 이게 잘 동작하지 않는 경우를 한 두어번 본거 같은데 첫 번째는 십수년 전, stm32f103! 이 때는 해결을 못해서 클럭을 내부 RC 오실레이터로 몰래 변경하고 모른척 했어 ㅋㅋㅋㅋ stm32 mcu의 clock tree에서 RTC 부분을 보면 mux를 통해서 3개 중 하나를 RTC 클럭 소스로 사용할 수 있게 되어 있어. HSE를 분주한 것, 외부 32.768khz 클럭 소스, 내부 32khz RC 오실레이터 이렇게 3 가지인데 RTC를 사용하는 Application에서는 1초를 정확하..

LWIP TCP Send가 느릴 때

stm32f407vg + freeRTOS 조합에서 lwip을 사용하고 있는데 TCP Send에 문제가 있는 걸 발견했어! 왠지 모르게 조금 늦게 패킷이 나가더라구. 작은 패킷은 상관없는데 약간 큰 패킷(그래봐야 1024bytes)은 바로 나갈 때도 있고 딜레이가 생길 때도 있고 하더라구. 한.. 0.5초에 한번쯤 나가는 느낌? 해결하려고 신나게 뻘짓을 했지. TCP Thread 스택 크기가 작아서 그런가? 하고 TCP_THREAD_STACKSIZE도 4096 Word(16k)까지 늘려봐도 안되고~ 혹시 Segment 때문에 그런가 싶어서 536 bytes -> 1460 bytes(최대값)으로도 변경하고 Sender buffer도 이빠이 늘려보고~ Queue length도 늘리고~ 해봐도 증상에 변함이 없..

반응형