2025/01/29 3

1장

#include int main() { std::cout iostream :  Input Output stream ~= stdio    std : 이름 공간(namespace)  :: 표준 라이브러리의 (iostream) 모든 함수, 객체 등 정의 나만의 namespace 를 만들자 "header1.h"namespace header1 {int foo();void bar();} header1 namespace 에는 함수2개 정의#include "header1.h"#include "header2.h"namespace header1 {int func() { foo(); // 알아서 header1::foo() 가 실행된다. header2::foo(); // header2::foo() 가..

C++/모두의코드 2025.01.29

게획) SBC, MCU, FPGA

SBC : 라즈베리파이 ( 파이4 model B )                                                 ::  리눅스 탑제 ( 고급기능)            > 운영체제 탑제(리눅스) , 통신, 어플리케이션 등 고급 기능 사용 ::   but 고속 연산 떨어짐FPGA : zynq-7000 시리즈 (FPGA + ARM)              > FPGA : 고속 병렬 데이터/ 신호 > HW  가속                           :: with   matlab, simulink ,verilog           + > ARM   : 제어,통신, 파일관리     > HW ->  SW (RTOS) 제어  :: RTOS 탑제 (실시간처리) with c++    >..

임베디드 2025.01.29

스타트업 코드 분석

0.  링크 스트립트프로그램의 메모리 배치를 정의.text, .data, .bss 등의 섹션 위치 및 크기를 지정ROM, RAM 주소 지정벡터 테이블, 스택, 힙의 위치를 지정     스타트업 코드시스템이 부팅될 때 초기화 코드 실행벡터 테이블 설정.data 섹션을 RAM으로 복사.bss 섹션을 0으로 초기화스택과 힙을 설정main() 함수 호출 1. .bss 섹션 > 초기화안한 변수에 0 을넣어줌 >  안해주면 쓰레기값이 들어감    > 초기화안한변수는 .bss 안에 넣어야함 2. Vector Table ~= 함수포인터들의 배열 Reset 부터 Main()으로 가는 과정!/*STM32 Programmaing manual 참고 + startup code, linker script, Debug > .map..