C# File Transfer Protocol 소스 코드 5개 출처 - File Download, Upload, Delete in FTP Location using C# 프로젝트 다운로드 〔칸라힘이란 분의 블로그〕에 잘 정리가 되어 있네요. 아래 소스들은 칸라힘이란 분의 블로그에서 인용합니다. C#에서 FTP를 사용하기 위해선 Using System.Net을 먼저 선언해 주셔야 합니다. 맨 아래에 프로젝트 파일을 다운 받으실 수도 있어요. 파일 다운로드 File Download From FTP 1234567891011121314151617181920212223242526272829string localPath = @"G:\FTPTrialLocalPath\";string fileName = "arahimk..
C# Stack Trace. DotNET 4.5 지원 - Logging 기능 C++ 계열에는 편리한 로그 출력 기능이 있습니다. Stack Trace란 것으로, 예를 들면, __LINE__ 키워드 이용 : 로그를 찍는 라인 넘버를 출력창에서 확인 20번 라인에서 __LINE__ 키워드를 이용하면 출력창에서 20이란 숫자가 확인되는 것입니다. 근데, 이런 편리한 기능이 C#엔 없느냐고 묻는다면 있다고 말씀드리겠습니다. 닷넷 프레임워크 4.5 미만 버전에선 Stack Trace와 StackFrame을 이용해 아래처럼 소스를 꾸밀 수 있었습니다. 12345678StackTrace st = new StackTrace(new StackFrame(true));Console.WriteLine(" Stack trace..
리눅스 디바이스 드라이버 모듈 프로그래밍과 커널, 명령어 설명 모듈(module) 소개 리눅스의 특징 중 하나는 리눅스 커널이 동작 중에 기능을 추가- 수행 중에 커널에 부가되는 디바이스 드라이버 코드의 부분을 모듈 : 실행 중인 리눅스 커널에 동적으로 적재되거나 제거- 하나의 오브젝트 파일(*.o)- 이벤트 처리(Event handling) 형태의 프로그램 방식 : main() 함수가 없다 : startup, cleanup 함수 존재 - 주로 파일 시스템과 디바이스 드라이버 구현 시 모듈 프로그래밍- 각 모듈은 동적으로 링크될 수 있는 목적코드로 insmod 로 커널에 링크되고 rmmod로 링크가 해제 모듈 프로그램의 이점- 효과적인 메모리 사용- 커널 전체를 다시 컴파일하지 않고 커널의 일부분 또는 ..
임베디드 시스템 응용 분야 9가지 종류와 사례 전망 Embedded 시스템 응용 분야 활용 분야와 적용 사례 예 - 정보가전 : Digital TV, 인터넷 냉장고 - 정보단말 : 휴대폰, PDA, 무전기, eBook - 통신 장비 : 교환기, 기지국 제어기 - 항공/군용 : 비행기, 군용 전자통신장비, 전자 제어 무기 - 물류/금융 : POS 단말기, ATM 단말기 - 차량/교통 : 엔진 제어, 네비게이션, ITS 제어기 - 사무 : 전화기, 프린터, 팩스, 스캐너, 복합기 - 산업/제어 : 산업용 로봇, 공장제어, 공장자동화 - 의료 : 심전도 측정기, 생명 유지 장치, 자세 제어기 - 게임 : 아케이드 게임기, 콘솔 게임기, 게임보이 임베디드 시스템 정보가전 정보가전 종류 - 다양한 기능의 처리를 ..
임베디드 시스템이란? Embedded 설계 기초 (구성요소와 하드웨어) 임베디드 시스템이란? 컴퓨터 하드웨어와 소프트웨어가 조합되어 특정한 목적을 수행하는 시스템 - H/W : 마이크로프로세서/컨트롤러, 메모리, 센서, 구동기 등 - S/W : OS, 디바이스 드라이버, 응용 프로그램, 네트워크 응용 등 - 응용분야 : 정보가전, 정보단말, 통신 장비, 항공/군용, 물류/금융, 차량/교통, 사무, 산업/제어, 의료, 게임 임베디드 시스템의 구성 임베디드 시스템 구성 - 임베디드 H/W - 프로세서/컨트롤러, 메모리, I/O 장치, 네트워크 장치, 센서, 구동기 - 임베디드 S/W - 운영체제, 시스템 S/W, 응용 S/W 임베디드 시스템의 특징 특정 응용 목적에 부합하는 최적화 설계가 가능 - 소형, 경..
ELF 파일이란, 구조, 포맷, 분석, 생성 원리 (리눅스 커널 2.2 부터 지원) Executable and Linkable Format (ELF 파일) ELF- AT&T System V Unix 시스템에서 개발- 리눅스를 포함하여 거의 모든 UNIX계열의 Object 파일 및 실행 파일 표준 binary format- 리눅스 커널도 2.2 버전으로 오면서 ELF 파일 포맷을 지원하며, 커널의 이미지도 ELF 형태로 만들 수 있음 ELF Header- ELF 파일 포맷임을 표시하는 magic number, 이미지의 형태(.o, exec, .so)- 실행되는 CPU 정보, Little-endian인지 Big-endian인지 표시하는 Byte 순서와 같은 파일 내용의 기본적인 정보 포함 Program He..
CppCheck 윈도우 설치 사용법 (메모리누수, 정적분석도구 등 옵션 검사) Cppcheck 사용법 Cppcheck는 C / C++용 정적 분석 도구입니다. 메모리 누수, 버퍼 오버런 등을 검사해 줍니다. 아래 사항은 사용하게 되면 주로 확인하게 될 검사 항목입니다. Cppcheck 기능 - 예외 처리- 클래스별 코드 (전부)- 메모리 누수 (Memory Leak)- 사용되지 않는 함수, 변수- 잘못 사용된 STL- 초기화되지 않은 변수 등 다운로드 및 설치 아래 사이트에서 다운 받을 수 있습니다. Download - SourceForge : cppcheck [클릭]사용 방법 - Wiki : Cppcheck [클릭] 다운을 받고 나면 설치를 해봅시다. 옵션 설정은 다 되었으니 로컬 디스크에 설치를 시작..
메모리 종류와 분류, RAM ROM 분류 비교 (반도체 flash, dram 블록) 메모리 종류 및 분류 메모리 종류 1. SRAM (Static Random Access Memory) - 기본적으로 래치(latch)에 데이터를 저장 - 전원이 공급되는 동안 래치에 저장된 데이터가 계속 유지 메모리 종류 2. DRAM (Dynamic Random Access Memory) - 커패시터(capacitor)에 충전된 전하(charge)를 이용하여 저장 - 시간이 지나면 전하가 방전되므로 데이터 유지를 위해 재충전 (refresh)가 필요 메모리 종류 3. ROM (Read Only Memory) - 비휘발성 반도체 저장장치 - 플래시메모리(flash memory) : RAM처럼 읽고 쓰기가 쉬우면서 ROM처..
리눅스 명령어 모음과 사용 방법 (VI, EMACS) cat, cp, mv 등 옵션 포함 리눅스 파일 기본 명령어 파일의 생성 명령어리눅스 명령어 문서편집기 이용 : vi, emacs cat(catenate)와 리다이렉션(redirection)- 파일 새로 만들기 / 덮어쓰기 12345$ cat > test.datThis is a test file.^D$ lstest.datcs 파일에 연속 쓰기 123$ cat >> test.datComputer Engineering^Dcs [리눅스 명령어] 파일 내용 보기 명령어 cat, 파일 내용을 화면에 출력 123$ cat test.datThis is a test file.Computer Engineeringcs more, 한 번에 한 화면씩 내용 보기$ more..
임베디드 리눅스 개발, 타겟 시스템 만들기 (교차개발 환경, 프로그램) 임베디드 리눅스 교차개발 환경 구축 임베디드 리눅스 프로세서의 선정- 계획중인 시스템의 용도- 시스템의 크기 – 휴대용 or 설치용 장비- 비용 고려하여 선정 운영체제의 선정- CPU의 성능 – 32bit or 64bit?- 하드웨어가 MMU를 지원하는가?- 메모리와 보조기억장치- 네트워크 환경 사용 유무 임베디드 리눅스 호스트 시스템에 교차 개발 환경 구축- binutils : as, ar, ld, nm, objcopy, objdump, size, strings, strip, add2line,...- 컴파일러(gcc), 디버거(gdb)- 라이브러리(glibc, ulibc, newlib, diet libc ... ) 임베디드 리눅스 ..
부트로더(bootloader) 개념-명령어, JTAG 퓨징 [임베디드 리눅스 기초] 부트로더 (bootloader) 소개 -시스템의 하드웨어를 초기화하고 운영체제의 커널을 메모리에 올려 실행시키는 시스템 프로그램- 부트로더의 위치 : 일반적으로 시스템 메모리의 물리 주소 0번지부터 위치 : 롬, 플래시, SRAM 등 정적인 메모리에 위치 - 부트로더의 기능 : bootloader는 메모리 초기화 : 하드웨어 초기화 - 직렬포트의 초기화 - 네트워크 초기화 - 프로세서 속도, 인터럽트의 초기화 - 커널과 램 디스크 적재 : 커널과 램 디스크를 램에 적재하여 실행 부트로더의 동작 (1)- 부트로더의 실행 순서 부트로더 bootloader 동작 (2) - 하드웨어 초기화 : 프로세서 및 메모리 초기화 : 네트..
[리눅스 개발자 필수] Linux 커널 Kernel 기초 이론 5가지 이해하기 1. 리눅스 커널 접근 방식 구조 리눅스 커널 접근하는 방법에 따라 모노리딕 커널(monolithic kernel)과 마이크로 커널(micro kernel)로 분류 2. 리눅스 모노리닉 커널 - 컴퓨팅 자원 관리에 필요한 모든 기능을 하나로 통합한 커널- 같은 메모리 공간 내에 필요한 모든 기능을 구현 : 함수 호출(function call) 혹은 전역 변수를 이용하여 커널의 기능을 사용 - 장점 : 구현이 쉽고 시스템 자원을 효율적으로 이용- 단점 : 커널 코드에 하드웨어와 관련된 저수준 상호 작용이 포함되어서 다른 시스템에서 이용하기 어려움 : 커널의 기능을 확장할수록 커널의 크기가 방대해져 관리하기 어려움- Solaris..