임베디드 엔지니어 교과서 1-3정리
1장임베디드 시스템임베디드 시스템은 마이크로컴퓨터를 탑재한 기계나 장치를 말한다.일반적인 임베디드 시스템은 기능이 정해진 목적에 따라 구성되어 전용의 동작을 하기 때문에 동작 중에 기능이 변화하는 일은 없다. 임베디드 시스템의 공통된 특징NTCR: 자연법칙, 실시간성, 제약조건, 신뢰성Nature: 자연 법칙의 취급외부 세계의 변화를 감지하여 마이크로컴퓨터로 처리해 결과를 외부 세계로 피드백하는 IPO(Input, Process, Output) Time: 실시간성의 요구임베디드 시스템은 전용 기기로서의 목적을 실현하기 위해 제작된 것이기 때문에 실시간성이 요구된다.데드라인을 확실히 지켜야함: 하드 리얼타임늦어도 괜찮음: 소프트 리얼타임Constraint: 엄격한 제약사항임베디드 시스템은 전용 기기로 제..
2025.05.01
no image
리눅스와 라즈베리파이1
리눅스 시스템과 네트워크 프로그램리눅스 커널에서 제공하는 기능을 각종 시스템 콜(또는 API)을 이용하여 구현하는 것 커널(kernel)컴퓨터 내에 있는 자원들을 동작시키고 관리하여 사용자의 응용 프로그램이 효율적으로 실행될 수 있는 환경을 제공하는 자원 관리 프로그램 유저 프로그램은 시스템 콜을 통해 커널에 접근할 수 있음. 그 외에는 접근 불가 시스템 콜 - open()커널 안에 있는 시스템 콜.open이라는 시스템 콜을 실행하면 라이브러리 함수 (libc)가 내부적으로 syscall 명령어를 통해 유저모드 -> 커널 모드로 진입 라이브러리 함수 vs 시스템 콜일반적으로 시스템 콜이란 커널의 자원을 사용자가 사용할 수 있도록 미리 만들어 놓은 함수.시스템 콜 호출 과정에서 알 수 있듯이 사용자 ..
2025.05.01
no image
임베디드 리눅스6
시험스포lnsignaluntil컴파일 단계 gcc 다운로드gcc --versionsudo apt install gcc gcc 컴파일러전처리 단계전처리 지시문을 처리하는 단계AI에서 전처리: 비정형 데이터를 정형화 nano hello.i 해보면 전처리 과정을 거쳐 자동으로 .i 파일이 작성된 것을 확인할 수 있다.gcc -E hello.c -o hello.i ---> 전처리된 hello.i 파일 생성 컴파일 단계전처리된 C 코드를 CPU가 이해할 수 있는 명령어에 더 가까운 어셈블리어로 바꾸는 단계문법 검사, 중간코드 생성, 최적화, 어셈블리어 생성 수행어셈블리어: CPU가 직접 실행할 수 있는 명령어(기계어)를 사람이 이해할 수 있도록 문자로 표현한 저수준 언어 어셈블 단계어셈블리어 파일을 컴퓨터가 직..
2025.04.28
라즈베리파이
보호되어 있는 글입니다.
2025.04.17
no image
Qt 실습 5
cmake_minimum_required(VERSION 3.16)project(untitled22 VERSION 0.1 LANGUAGES CXX)set(CMAKE_AUTOUIC ON)set(CMAKE_AUTOMOC ON)set(CMAKE_AUTORCC ON)set(CMAKE_CXX_STANDARD 17)set(CMAKE_CXX_STANDARD_REQUIRED ON)find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Multimedia)find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Multimedia)set(PROJECT_SOURCES main.cpp widget...
2025.04.11
Qt
no image
Qt 실습 4
Qt Text Editor메뉴항목 New, Open, Save, Save As, Exit 메뉴를 만들기.Exit을 누르면 프로그램이 종료되도록.메뉴 구현new - 편집한 내용 사라지게open - 파일 다이얼로그, 선택한 파일을 파일명을 textedit 에 띄워주자 save - 정적 함수 이용#ifndef QTEDITOR_H#define QTEDITOR_H#include #includeclass QtEditor : public QMainWindow{ Q_OBJECTpublic: QtEditor(QWidget *parent = nullptr); ~QtEditor();private: QTextEdit *textedit; QString curfilePath;private slots..
2025.04.10
Qt
no image
[C++] 99클럽 코테 스터디 10일차 TIL - 한국이 그리울 땐 서버에 접속하지
🍟문제 사이트: 백준문제 난이도: Silver III문제 번호: 9996 🚩 문제선영이는 이번 학기에 오스트레일리아로 교환 학생을 가게 되었다.호주에 도착하고 처음 며칠은 한국 생각을 잊으면서 즐겁게 지냈다. 몇 주가 지나니 한국이 그리워지기 시작했다.선영이는 한국에 두고온 서버에 접속해서 디렉토리 안에 들어있는 파일 이름을 보면서 그리움을 잊기로 했다. 매일 밤, 파일 이름을 보면서 파일 하나하나에 얽힌 사연을 기억하면서 한국을 생각하고 있었다.어느 날이었다. 한국에 있는 서버가 망가졌고, 그 결과 특정 패턴과 일치하는 파일 이름을 적절히 출력하지 못하는 버그가 생겼다.패턴은 알파벳 소문자 여러 개와 별표(*) 하나로 이루어진 문자열이다.파일 이름이 패턴에 일치하려면, 패턴에 있는 별표를 알파벳 소..
2025.04.09
no image
Qt 실습 3
StringC++ String 객체를 Qt형으로 바꾸는 멤버함수 Qt의 String 객체를 C++형으로 바꾸는 멤버함수 //#include "widget.h"#include #include int main(int argc, char *argv[]){ QApplication a(argc, argv); std::string str = "hello"; QString qstr = QString::fromStdString(str); // C++ -> Qt std::string str2 = qstr.toStdString(); // Qt->C++ return a.exec();} QList빠른 인덱스 기반의 액세스, 연결리스트 기반 Signal and Slot..
2025.04.09
Qt
no image
[C++] 99클럽 코테 스터디 9일차 TIL - 쇠 막대기
🍟문제 사이트: 백준문제 난이도: Silver II문제 번호: 10799 🚩 문제여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다.쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다.각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다.레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다.아래 그림은 위 조건을 만족하는 예를 보여준다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 ..
2025.04.08