본문 바로가기

임베디드129

디바이스드라이버 LED ON/OFF 1. 호스트 (우분투) #linux kernel source KDIR = /home/sss/linux //커널소스 있는곳 obj-m := test_dev2.o default: $(MAKE) ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -C $(KDIR) M=$$PWD modules clean: $(MAKE) -C $(KDIR) M=$$PWD clean //test_dev2.c #include #include #include #include #include #include #define BUFF_SIZE 1024 #define MAJOR_NUMBER 257 #define DEVICE_NAME "my_device" static char *buffer = NULL; //커널에.. 2020. 12. 18.
-fstack-protector-strong’ 오류 stackoverflow.com/questions/60578752/unrecognized-command-line-option-fstack-protector-strong-with-arm-linux-gnuea unrecognized command line option ‘-fstack-protector-strong’ with arm-linux-gnueabihf-gcc I have cloned the Raspberry Pi toolchain using the following command and added the tools path to bashrc git clone https://github.com/raspberrypi/tools.git --depth=1 echo PATH=$PATH:~raspberry/to.. 2020. 12. 18.
atmega128- 03_external_pulldown 외부 풀다운 /* * 03_external_pulldown.c * * Created: 2020-12-17 오후 6:08:40 * Author : User */ #define F_CPU 16000000UL #include #include #define BUTTON1 PORTE0 #define BUTTON2 PORTE2 int main(void) { DDRE = 0x00; DDRB = 0xff; while (1) { if (PINE & (1 2020. 12. 17.
test_app 1. test_app.c 라즈베리파이에서 작업 test_app.c : 디바이스 드라이버를 사용하는 애플리케이션 # app Makefile CC = gcc OBJECT = test_app.o TARGET = test_app CFLAGS = -g -Wall $(TARGET) : $(OBJECT) $(CC) -o $(TARGET) $(OBJECT) clean: rm -f $(OBJECT) $(TARGET) #include #include #include #include int main(int argc,char *argv[]) { int fd; char val; if(argc < 2 ){ printf("usage: %s [no] \n",*argv); return 1; } fd = open("/dev/testde.. 2020. 12. 17.
ATmega328p datasheet 2020. 12. 17.
Raspberry Pi 4에서 커널 모듈 kernel module 프로그래밍 / hello world https://webnautes.tistory.com/555 호스트 - 우분투 설치된 피시 타겟 - 라즈베리파이 Raspberry Pi 3에서 커널 모듈(kernel module) 프로그래밍 커널 소스 준비 모듈을 작성하기 위해서는 라즈베리파이에서 현재 사용중인 커널 버전과 같은 버전의 커널 소스가 필요합니다. 버전을 맞추기 위해서 라즈베리파이에 커널을 최근 버전으로 webnautes.tistory.com KDIR 한 이유 : #include #include #include 땡겨오려고 .. (가) Hello world 모듈 - 호스트(우분투)에서 작업. #include #include #include static int __init hello_init(void) { printk(KERN_ALERT "He.. 2020. 12. 17.
가져온 코드 #include //Servo 라이브러리를 추가 Servo servo; //Servo 클래스로 servo객체 생성 int value = 0; // 각도를 조절할 변수 value void setup() { servo.attach(7); //맴버함수인 attach : 핀 설정 Serial.begin(9600); //시리얼 모니터 사용 고고 } void loop() { if(Serial.available()) //시리얼 모니터에 데이터가 입력되면 { char in_data; // 입력된 데이터를 담을 변수 in_data in_data = Serial.read(); //시리얼모니터로 입력된 데이터 in_data로 저장 if(in_data == '1') //입력된 데이터가 1이라면 { value += 30; //.. 2020. 12. 15.
도트매트릭스 8x8 숫자 0~9 띄우기 / 흐르게 하기 https://blog.naver.com/dododokim/221368935252 도트 매트릭스로 숫자찍기 먼저 0의 모양을 배열에 나타내보면 이렇게 된다. 이 모양을 도트 매트릭스에 나타내야 하는데 소스에서는 ... blog.naver.com #define F_CPU 16000000UL #include #include unsigned char arr[10][8]={ {0xff, 0xff, 0x81, 0x7e, 0x7e, 0x81, 0xff, 0xff}, {0xff, 0xff, 0x7b, 0x7d, 0x00, 0x7f, 0xff, 0xff}, {0xff, 0xff, 0x1d, 0x6e, 0x76, 0x79, 0xff, 0xff}, {0xff, 0xff, 0xbd, 0x76, 0x76, 0x89, 0xff.. 2020. 12. 14.
반도체 다이오드 트랜지스터 반도체와 다이오드 드리프트drift 현상 : 자유전자는 전기장에 의해 전위가 낮은 쪽에서 높은 쪽으로 끌려감 2020. 12. 14.
HBE - MCU - Multi 2 base 로 배우는 마이크로 컨트롤러(AVR) HBE - MCU - Multi 2 base 로 배우는 마이크로 컨트롤러(AVR) 마이크로프로세서 - 순수 연산기능만 됨 마이크로 컨트롤러 = 마이크로 프로세서 안에 여러 기능을 하는 칩이 들어가 있다 AVR 마이크로 컨트롤러 *하버드구조 : 프로그램과 데이터에 대해 별도의 메모리와 버스를 사용한 구조 *RISC(Reduced Instruction Set Computer): 컴퓨터 실행 속도를 높이기 위해 명령 세트를 축소 설계한 컴퓨터 (명령 세트중 일부를 하드웨어로 만들었음) *플래시 메모리 기술과 접목시켜 소자 내에 프로그램 코드용 플래시 메모리를 내장 (롬이 아니라서 매번 시디 굽듯이 안구워도 됨 -> 개발 시 시간단축) *ISP (In-System Programming) 방식 ATmega128A.. 2020. 12. 13.
크로스 컴파일러 환경 *심볼릭 링크ln -s tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/ arm-gccarm-gcc로 들어가면 바로 arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/ 로 들어가진다..길게 치면 힘드니까 만들어주는것 6. 커널설정 및 빌드 7-ㄱ 7-ㄴ 8 2020. 12. 10.
디바이스 드라이버 분석 설계 . host, target 펌웨어 : 일반적으로 os없이 제어 디바이스 드라이버 : 임베디드 운영체제가 반드시 들어감. 커널 안에 디바이스드라이버가 있고 응용프로그램에서 커널을 거쳐 디바이스(하드웨어)제어 porting : 운영체제 인식 스마트팜 만들기 난이도 : 아두이노 소프트웨어를 개발하는 시스템과 실행시키는 시스템이 다르다. 실행되는 시 jeongchul.tistory.com https://hee77.tistory.com/12 임베디드 시스템 이해_02 * 본 포스팅은 개인 공부 목적으로 그 내용이 사실과 다를 수 있습니다 :) 임베디드 시스템 이해 ▶ CONT.. 2020. 12. 10.
도트매트릭스 8x8 차례대로 켜기 / ㄹ 모양으로 흐르게 하기 https://kogun.tistory.com/12 AVR(ATmaga128)로 LED 매트릭스 장난하기 안녕하세요 고군입니다. 이번시간에는 디스플레이 장치 중 문자 또는 그림까지도 디스플레이 할 수 있는 장치인 LDM(LED Dot Matrix)에 대해 알아보고 프로그램을 통해 표시해 보겠습니다. 1. LED 매트 kogun.tistory.com 더보기 2. 도트 매트릭스에 대해서 행과 열 개념을 이해하셔야 도트 매트릭스를 켤 수 있습니다. 이부분에 대해서 레포트 작성해주세요. 3. 도트매트릭스의 불빛 하나를 켜서 ㄹ 모양으로 불빛이 움직이게 프로그램을 작성해주세요. 4. 도트매트릭스에 0~9까지 숫자를 찍어서 나타나게 해주세요. #define F_CPU 16000000UL #include #inclu.. 2020. 12. 9.
프로테우스 7.0 설정 (아트멜 스튜디오에서 코드 올릴 때) 2020. 12. 9.
74LS47IC http://blog.naver.com/PostView.nhn?blogId=specialist0&logNo=221254434269&parentCategoryNo=&categoryNo=41&viewDate=&isShowPopularPosts=true&from=search 74LS47(7447) BCD to 7-segment 디코더(Decoder)의 동작 실험 논리회로를 다루다 보면 7-segment LED(FND)를 사용할 때가 있는데요. 이때 74LS47(7447)같이 BC... blog.naver.com 이진수를 입력하면 십진수로 나온다.. A0~A3 아트메가와 연결 a~g segment 와 연결. 7핀이라 .까지 있는 segment와는 연결안된다 입력 출력 0000 0 0001 1 0010 2 001.. 2020. 12. 8.
LED8개 차례대로 켜기 시프트 /* * LED8on.c * * Created: 2020-12-07 오후 6:55:53 * Author : User */ #include #include int main(void) { DDRB = 0xFF; while (1) { PORTB = 00000001; _delay_ms(500); for (int i=0; i 2020. 12. 7.
kernel https://www.kernel.org/ The Linux Kernel Archives www.kernel.org https://github.com/raspberrypi/linux raspberrypi/linux Kernel source tree for Raspberry Pi Foundation-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://www.raspberrypi.org/forum - raspberryp... github.com 2020. 12. 7.
FND (7 segment) /* * FNDexample.c * * Created: 2020-12-07 오전 9:31:46 * Author : User */ #include unsigned char digit[] = {0x77, 0x41, 0x3B, 0x5B, 0x4D, 0x5E, 0x7C, 0x43, 0x7F, 0x4F}; void display_7segled(unsigned char led[], unsigned int number){ PORTB = led[number]; } int main(void) { DDRB = 0xFF; display_7segled(digit, 4); return 0; } https://kocoafab.cc/tutorial/view/351 7세그먼트-숫자 표시하기 개요 1) 7세그먼트란 무엇인가? 7세그먼.. 2020. 12. 7.
펌웨어와 임베디드 펌웨어는 하드웨어와 애플리케이션/운영 체제 레벨의 소프트웨어 사이의 인터페이스를 제 공하는 하위 레벨 소프트웨어이다. 하드웨어만으로 기능을 구현하게 되면 기능 변경 및 추가를 하는 것이 불가능하기 때문에 하드웨어 내부의 제어 부분에 저장 공간을 만들어 그곳에 논리 회로의 기능을 보강하거나 대신할 수 있는 프로그램을 넣을 수 있게 한 것이 펌웨어(firmware)이다. 펌웨어는 펌 소프트웨어의 줄임말로 하드웨어(hardware)의 기능 중 일부를 소프트웨어(software)로 구현한 것이다. 하드웨어와 소프트웨어의 중간 형태이므로 펌이라고 표현하고 있다. 펌웨어 : OS가 없는 상태에서 하드웨어를 제어하는 C 프로그래밍 펌웨어 개발자가 임베디드 개발자 보다 하드웨어 쪽에 더 가까움 실시간 운영 체제(RTO.. 2020. 12. 7.
201203 프로테우스회로 / 코드리뷰 위 회로 프로테우스로 작성 #include #define S0 PB5 //S0 변수를 PB5로 정의 #define S1 PB6 //S1 변수를 PB6로 정의 #define S2 PB7 //S2 변수를 PB7로 정의 #define D0 PB0 //D0 변수를 PB0 로 정의 #define D1 PB1 //D1 변수를 PB1 로 정의 #define D2 PB2 //D2 변수를 PB2 로 정의 #define D3 PB3 //D3 변수를 PB3 로 정의 #define D4 PB4 //D4 변수를 PB4 로 정의 int main() { DDRB = 1 2020. 12. 3.