본문 바로가기

임베디드 시스템반도체 개발자 과정 by 서울기술교육센터/후기

95일차

11월 8일

 

펌웨어 보충

 

c언어 문법은 대충 알겠는데 코딩 시작이 막막하다 --> 왜 그런가?

 

국어 문법 안다고 작문에 능한 건 아니듯, 코딩 잘하는 법을 알 필요가 있다. 남 코드를 보는 것도 좋고, 이번 보충으로 배우는 리마인드도 좋다.

 

---------

application 실행 : 외장디스크 -(실행코드, 변수, memory)-> RAM(Loading) <--> CPU

 cf)외장디스크가 아닌 RAM에 올려서 실행하는 이유 : 속도 ; cpu 내부 cache 메모리말고 RAM이 주인 이유는 가격 때문.

 

MCU의 경우는? 하나의 칩 형태인 경우가 많음. 어쨌든 내부적으로 나누면 위와 같다.

 실행코드는 어디에 저장돼있는가? Flash memory로 들어간다. cf)ROM을 사용할 때는? ROM writer를 이용해서 구운 뒤 장착했다. 자외선을 쐬서 지우고 다시 굽고 이러했는데 지우는데 몇 시간씩 걸렸다고 한다.

 

Flash memory(실행코드 저장), RAM(Stack, heap)

 

PC 같은 구조 : 폰 노이만 구조 실행코드와 메모리영역이 같음

 

MCU 같은 구조 : 하버드 구조 실행코드와 메모리 영역이 분리

 

https://sangcho.tistory.com/entry/%ED%8F%B0-%EB%85%B8%EC%9D%B4%EB%A7%8C-%EA%B5%AC%EC%A1%B0-vs-%ED%95%98%EB%B2%84%EB%93%9C-%EA%B5%AC%EC%A1%B0

 

폰 노이만 구조 vs 하버드 구조

폰 노이만 구조 - 폰 노이만이 고안한 내장 메모리 순차처리 방식이다. - 데이터 메모리와 프로그램 메모리가 구분되어 있지 않아 하나의 버스를 가지고 있는 구조를 말한다. - CPU는 메모리로부

sangcho.tistory.com

따라서 컴퓨터언어로 실행코드 부분, stack 부분, heap 부분 등을 알려줘야 함. c언어 기준으로 이걸 startup code라고 함.

-----

의료, 방산, 통신 등 분야를 막론하고 입력, 처리, 출력의 절차를 거친다.

항상 동작해야 하는 부분은 입력과 출력이다. 입력 : 센서값이 들어오는지 아닌지 항상 감시, 출력 : 예를 들어 온도값을 출력할 때 입력 센서의 값을 한 번 보여주고 끝내는 게 아니다. 화면에 계속 값을 띄우고 있어야 한다.

 

처리는? 굳이 연산을 항상 해야 하는 건 아니다. 상황에 따라 다르다.

 

입력단은 Event 처리부를 생각해야 해서 Listener로 만들었고, 출력단은 지속적으로 나타내기 위해서 View로 만들었다.

 

기본구조

spring Framework

 

-------

뭔가 잘 안 돼서 정리를 했었는데 그냥 chip이 고장난 거였다.

------

cf)연산자 이름 헷갈려서... 

http://www.tcpschool.com/c/c_pointer_intro

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

"주소 연산자(&)

주소 연산자는 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환합니다.

'&'기호는 앰퍼샌드(ampersand)라고 읽으며, 번지 연산자라고도 불립니다.

참조 연산자(*)

참조 연산자는 포인터의 이름이나 주소 앞에 사용하여, 포인터에 가리키는 주소에 저장된 값을 반환합니다."

------

c언어에서의 캡슐화 방법

1. 구조체

2. 라이브러리화 file.c

----

0 0 0 0 1 1 0 0 / CTC mode(WGM00, 01 --> 01), 64 분주비(CS00, 01, 02 --> 001), pwm 사용x

 

 

https://github.com/316415/led_shift_by_button

 

GitHub - 316415/led_shift_by_button: led shift by button. it is spring framework(listener, view architecture)

led shift by button. it is spring framework(listener, view architecture) - GitHub - 316415/led_shift_by_button: led shift by button. it is spring framework(listener, view architecture)

github.com

https://youtube.com/shorts/HykPGY6vLRw?feature=share 

 

 

'임베디드 시스템반도체 개발자 과정 by 서울기술교육센터 > 후기' 카테고리의 다른 글

93일차  (1) 2022.11.04
88일차  (0) 2022.10.27
87일차  (0) 2022.10.26
86일차  (0) 2022.10.25
85일차  (0) 2022.10.24