본문 바로가기

임베디드.일렉트로닉스   ( 649 )


SES. 힙 사이즈 설정 SES 프로젝트 Options... 클릭하여 뜬 아래창에서 붉은 박스 힙사이즈 기본 0으로 되어있는데 이 값이 0인 경우 코드에서 malloc 으로 동적 메모리 할당해도 메모리 할당에 실패하므로 적절한 사이즈로 설정해둔다. 아래 예에서는 8192byte 로 설정한 예. 연관 C/C++. 메모리 스택, 힙,지역변수, 동적 메모리 할당. stack, heap, new, delete 스택(Stack), 힙(Heap) C/C++ 에서의 스택이니, 힙이니 하는 것들은 C/C++ 컴파일러에서 메모리 핸들링 하는 것에 대한 기능적 메모리 구분 명칭. (타겟 시스템에 하드웨어적으로 스택, 힙 영역의 메모리가 따로.. igotit.tistory.com 첫 등록 : 2020년 1월 16일 최종 수정 : 단축 주소 : ht.. 2020. 1. 26.
KEIL. 임베디드 프로젝트에서 C++ 활용 KEIL 에서는 C 뿐만 아니라 C++ 컴파일러도 포함되어있고, C와 C++ 혼재된 프로젝트 구성가능하며, KEIL 에서 특별한 설정을 하지 않고 현재 작업 중인 KEIL 프로젝트에서 확장자 cpp 인 C++ 소스파일 추가하면 해당 파일은 C++ 규격에 준한 클래스등 활용가능. 연관 C/C++. C 에서 C++ 함수 호출하기. extern "C" 선언 C와 C++ 이 혼재된 프로젝트에서 C++ 에서 정의된 함수를 C 에서 호출하는 방법. C++ 측에 C에 노출시킬 함수에 extern "C" 선언 추가된것은 C에서 호출가능함. /// C++ mycpp.cpp 측 코드. void function(void) {.. igotit.tistory.com KEIL 내장된 C++ 컴파일러. Rogue Wave Stan.. 2020. 1. 24.
STM32CubeMX. SPI SPI 설정법. - STM32CubeMX 버전 5.0.1 SPI 기본설정방법. SPI DMA 설정방법. SPI Chip Select 핀 설정예. - 일반적인 GPIO Out 설정과 동일. 연관 SPI mode 4종. CPOL, CPHA SPI Mode 4종. SPI master 와 SPI Slave 의 모드가 동일해야 정상 SPI 통신 가능함. ( -동시에 SPI 클럭도 칩마다 최고 속도가 다르며 최고속도 이하에서만 정상통신 가능) SPI 통신 규격의 CPOL(0, 1) , CPHA(0,.. igotit.tistory.com STM32. SPI 읽기 쓰기. 동작특성. 개요. STM32 의 SPI 이용하여 Keil MDK-ARM 에서 읽기 쓰기 간단한 코드와 쓰기 , 읽기 동작 특성 스코프로 확인. SPI.. 2020. 1. 20.
Wi-Fi 6. 802.11ax. 와이파이 6. Wi-Fi 6 - 기술규격 802.11ax 을 쉽게 표현한 공식 명칭. - 주파수 : 2.4GHz , 5GHz - 최대 속도 : 9.6Gbps . ( 직전 버전 wi-fi 802.11ac 대비 3배고속. ) - 8x8 MU-MIMO : Multi User MIMO . 동시 통신 최대 기기수 8 - 채넉폭 : 160MHz . (기존 80MHz 의 2배 ) WiFi 6 지원 폰. (2019년 12월 시점 ) - 갤럭시 S10 첫 등록 : 2020년 1월 20일 최종 수정 : 단축 주소 : https://igotit.tistory.com/2449 2020. 1. 20.
STM32. GPIO IDR 레지스터 값 읽기 주의사항 핀설정 : Open drain, 내부풀업. 1. 코드에서 핀 출력 1 "직후" IDR(핀의 전압->슈미트트리거 출력 논리값 기록되는곳 ) 값을 읽은 경우 1 아닌 0 반환. - - 시간지연 1msec 이후 IDR값 읽어보면 정상. 2. 핀 출력 0 직후 IDR 읽는경우에는 정상적으로 0 반환. 핀 출력 응답빠름. 상기 1번은 버그는 아니며 , 핀 주변 회로상황 때문. 내부 풀업저항값이 40k옴 수준으로 높고 C에 의한 느린 응답 보임. 2020. 1. 19.
STM32. 버그 해결. SPI 통신. 첫 SPI 송수신 데이터 비트 밀림 . 해결방법. 개요 버그 요점 : STM32 를 SPI Master 로 설정하여 SPI Slave 와 통신시 STM32 부팅후 첫 SPI 통신시 비트 밀림 오류 있음. 버그 상황 상세 환경. STM32 라이브러리 버전 : STM32Cube FW_L4 V1.14.0 (2020년 1월 18일 최신버전) STM32 칩 품번 : STM32L4R5VI STM32 측 SPI 설정 - SPI 1번. (SPI 1번만의 문제가 아니라 다른 SPI 들도 동일할 것임 ) - SPI Master full duplex. - SPI Clock : 15MHz / 7.5MHz / 이하 낮은 주파수 모두 동일 오류 발생하였음. STM32 와 통신하는 SPI Slave 측 : nRF52840 - nRF52840 의 SPI Slave 측의 오류 일 수.. 2020. 1. 19.
GCC 컴파일러 optimization 위험성. 예 : SW4STM32 에서 optimization 에 따라 float 변수 바이트 단위 접근시. GCC 기반툴( SW4STM32 등) 에서 컴파일러 셋팅에 있는 Optimization 설정(아래그림)에 따라 프로그램 작동결과가 심각하게 다른 결과가 나오는 경우 있다. 특히 float 형 변수 사용하는 경우 옵션에 따라 황당한 결과를 주는 경우가 많음. 위 그림은 SW4STM32 화면에서 optimization 부분인데, 프로젝트 생성초기 기본 값은 -Og 가 선택된 상태이다. 옵션 -O1, -O3 -Og 상태로 "float 형변수의 메모리 1바이트 단위로 접근하는 처리" 실행시켜보면, 엉뚱한 결과를 준다. 오류없이 정상적으로 실행되는 옵션 : 상기 Optimization 옵션을 적용하지 않는 None, 혹은 -Os, -O1 을 선택하면 정상 작동한다. 컴파일 옵션에 따른 오류의 실예. 옵션 : No.. 2020. 1. 13.
KEIL MDK-ARM. Debug (printf) Viewer 에서 printf 출력결과 보기. 개요 KEIL MDK-ARM 으로 작성된 펌에어코드상의 printf 구문의 출력값을 KEIL MDK-ARM Debug (prontf) Viewer 창에서 보기 위한 설정법. 설정법 설명 사이트 : http://www.keil.com/support/man/docs/ulink2/ulink2_trace_itm_viewer.htm 본 방법이 편한이유. 1. 통상 펌웨어 상의 코드에서 printf 출력결과 보려면 타겟칩에 UART 결선하고 PC측에서 하이퍼 터미널등을 이용하여 보게된다. 2. 상기1처럼 별도의 결선처리와 PC측 하이퍼 터미널 없이 타겟보드와 debug 만 연결된 상태(예 : 아래 사진처럼 ST-LINK/V2 연결된 상태, 혹은 ULINK 등) KEIL 개발환경에서 펌웨어 상의 printf 출력결과.. 2019. 12. 30.
STM32. 힙 , 스택 사이즈 설정 . KEIL. SW4STM32. CubeMX 개요 STM32 에서 사용가능한 힙 과 스택 메모리 사이즈 설정하기. 사용하는 IDE 에 따라서 힙 , 스택 사이즈 설정되는 곳이 다르다. - KEIL MDK-ARM 에서는 파일 startup_stm32xxx.s 에서 힙과 스택 최대 사이즈 지정한다. - SW4STM32 에서는 파일 STM32xxx_FLASH.ld 에서 힙과 스택 최대 사이즈 지정한다. 설정된 최대 힙사이즈 이하에서만 메모리 동적할당 가능하다. 초과하는 경우 malloc 반환값이 null 로 메모리 할당 실패한다. 코드내에서의 스택 메모리 할당량이 지정된 스택사이즈 초과하는 경우에는 컴파일 단계에서 알 수 있기에 조치하기 편리하나, 코드내에서 동적 할당되는 경우에는 컴파일 단계에서 알 수 없기에 동적 할당 할때마다 malloc 함수의 반.. 2019. 12. 29.
STM32. EXTI (Extented Interrupts and events controller) 본 글 설명의 STM32 칩시리즈 : STM32L4+ - 다른 시리즈의 STM32도 개념은 유사. EXTI - event/interrupt 가능 총수량 : 39 - - cinfigurable line 수 : 26 - - direct line 수 : 9 - 각 line 별로 개별적으로 mask 가능. - Configurable line - - 상승, 하강에지 설정가능. - GPIO 에 할당가능한 EXTI 라인 : 0~15 (총 16개) Interrupt 와 event - Interrupt : 코드상에서 인터럽트 핸들러 함수 실행되게 하는것. 즉 CPU 관여되는 처리. - event : 페리페랄 하드웨어상으로 직접 신호 전송되어 CPU 관여없이(즉, 핸들러 코드없이) 처리되게하는것. EXTI Block Di.. 2019. 12. 22.
STM32. System tick timer 인터럽트 사용방법. 개요 STM32 코딩시 간단하게 일정 시간격으로 인터럽트 발생시키는 방법 전체 절차. 1. STM32CubeMX 에서 System tick timer 에서 IRQ Handler 코드 생성 하도록 선택. 2. IDE (SW4STM32 , KEIL MDK-ARM 등) 에서 IRQ Handler 함수 사용자 구현. 즉, 별도의 타이머 페리페랄 활성화 하지 않아도 간단하게 구현가능함. STM32CubeMX 에서 System tick timer 설정. 아래 동영상 처럼 STM32CubeMX 에서 NVIC 설정부에 있는 Time base : System tick timer 체크된 상태에서 코드 생성하면 자동으로 관련 코드 만들어져 있다. 인터럽트 핸들러 코드 구현 상기 STM32CubeMX 에서 설정한 후 코드 생.. 2019. 12. 15.
KEIL. CMSIS Configuration Wizard 개요 - KEIL 의 CMSIS Configuration Wizard 보는 방법. - 작성규칙에 맞게 작성된 파일을 KEIL 에서 오픈하면 자동으로 하단에 아래 그림 붉은 박스와 같이 탭이 나타남 . 사용자가 설정할것도 없이 코드작성시 규칙에 맞게 기록하면 보임. 위 탭을 눌러보면 아래 그림처럼 GUI 환경에서 설정을 할 수 있는 편리함 제공. 연관 작성규칙. CMSIS Configuration Wizard 개요. - CMSIS Configuration Wizard 코드상의 주요 파라메타 설정 용도의 파일(통상 h 파일로 작성됨) 을 text 형식 아닌 GUI 환경에서 일목요연하게 표현되게하고 설정 가능하게 하는 것. KEIL 에서는 아래 그림.. igotit.tistory.com 첫 등록 : 2019년.. 2019. 12. 12.
SW4STM32(이클립스). add my own library folder to project 개요 - SW4STM32 (eclipse) 프로젝트에서 외부임의 위치의 폴더에 몰아둔 소스들 폴더째 포함시키는 방법. 연관 SES 와 KEIL 에서 위와 동일한 형식으로 구축하는 방법 있음 nRF52. 본인 만든 범용 소스들 재활용 가능 구성 개요. 본 내용은 아래 링크 의 4번 항목에서 설명된 것처럼 코드 작업중 범용적인 것들을 다른 프로젝트에서도 재활용 가능한 형식 구축방법 정리. https://igotit.tistory.com/2339 nRF52. 예제프로젝트 기반 내.. igotit.tistory.com STM32 개발시 SW4STM32 / KEIL MDK-ARM 멀티 개발 환경 개요 타겟 MCU STM32 펌웨어 프로젝트 생성시 SW4STM32 에서도 작업가능하고 , 동일 프로젝트를 KEIL M.. 2019. 12. 11.
STM32L4R5VI. 플래시 메모리. 용량 : 2Mbytes 플래시 메모리 맵. 위 표의 메모리 사이즈 4k 로 표현되었지만 정확한 크기는 4096 byte . - 각 페이지 메모리 어드레스 시작값 포함 끝값까지의 바이트수 4096. 즉, 실제 바이트 사이즈는 메모리 할당되는 어드레스범위로 정확한 사이즈 알 수 있음. from : RM0432. STM32L4Rxxx and STM32L4Sxxx 페이지 97 첫 등록 : 2019년 12월 7일 최종 수정 : 단축 주소 : https://igotit.tistory.com/2413 2019. 12. 7.
STM32L4R/S (STM32L4+ 계열) . 부트로더 STM32L4R/Sxxx (STM32L4+ 계열) 부트로더. - 부트로더 관련 전체 정보 있는 곳 page 336 of AN2606 : STM32 microcontroller system memory boot mode 부트로더 관련 주요 숙지 사항. RCC - USART, I2C, USB bootloader 작동위하여 HSI(내장 클럭소스) 가 enable 되고 system clock 는 60MHz 로 설정된다. - CAN interface 가 선택된 경우에는 HSE(외부클럭소스) 필수 요구되며 외부크리스탈 주파수는 24, 20, 18,16,12,9,8,6,4MHz 중 어느 하나여야한다. 부트로더 버전 현재(2019년 12월 7일 ) 최신버전은 9.5. 부트로더 작동 시퀀스 USB DFU - 부트로더 중.. 2019. 12. 7.
ALTIUM. Pick & Place 파일 출력방법. SMT 이용하여 부품들 잡아서 PCB 에 배치하기 위해서는 PCB 상의 부품들의 좌표 정보 파일이 있어야 한다. 알티움에서 CPL( Component Placement List, Pick & Place 데이터) 파일 출력방법. 연관 SMT 머신. 소량다품종 제작에 적합 ZB3245T 가격 : 2,300달러. http://s.click.aliexpress.com/e/MEFOEios US $2340.0 |자동 데스크탑 smt led smt 기계 수 포장-에서용접노즐부터 도구 의 Aliexpress.com | Alibaba 그룹 Smarter Shopping, Better.. igotit.tistory.com 첫 등록 : 2019년 12월 1일 최종 수정 : 단축 주소 : https://igotit.tisto.. 2019. 12. 1.
PCB 홀더 자석식 . PCB 작업시 유용. 자석식으로 위치 이동 간편. US $19.9 |EleksMaker®EleksFix 2019 pcb 회로 기판 홀더 납땜 어셈블리 자기 고정 위치 프레임-에서공구 부품부터 도구 의 AliExpress Smarter Shopping, Better Living! Aliexpress.com ko.aliexpress.com 2019. 11. 28.
L293D. L293DD. 4채널 전류 드라이버 . 모터 구동에 많이 사용. L293D/L293DD - 4채널 전류구동 - 연속구동 최대 전류 : 600mA 각 채널당. - 피크 최대전류 : 1.2A - 패키지 : L293D DIP 14핀. L293DD SO 20핀. 아래그림 L293D/L293DD 기능 블럭 데이터 시트 : https://www.st.com/resource/en/datasheet/l293d.pdf 가격 : 칩 1개 200원 수준으로 저렴. 칩. L293D 5개 한묶음 1.11달러. US $1.11 |5PCS L293D L293 DIP16 DIP 새로운 원본-에서반도체 집적회로부터 전자 부품&보급품 의 AliExpress Smarter Shopping, Better Living! Aliexpress.com ko.aliexpress.com 칩. L293DD US $.. 2019. 11. 27.


 

비트코인




암호화폐       외환/나스닥/골드       암호화폐/외환/나스닥/골드 암호화폐/외환/나스닥/골드   암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)     롤오버 이자 없는 스왑프리계좌
( 스왑프리 암호화폐도 거래 가능 )    
MT4, MT5 , cTrader 모두 지원     FTMO 계좌 매매운용. MT4,MT5