반응형 코스웨어/15년 스마트컨트롤러532 20151016 박제혁 module_param, 장치의 타입, 모니터 프로그램 module_param 소스코드에 iNum = 100; cpT = "Hello World"; module_param(iNum, int, 0); module_param(cpT, charp, 0); 을 적고 터미널에서 insmod main.ko iNum=999 cpT="Hi" 명령어를 친 뒤 dmesg 로 확인해보면 모듈이 붙을 때 메시지를 보면 iNum이 999 cpT가 “Hi"로 바뀌었다는 것을 확인할 수 있습니다. 결론 : module_param으로 모듈의 값에 영향을 줄 수 있습니다. ------------------------------------------------------------------- 장치 유닉스에서 장치의 분류 1. 캐릭터 2. 블록 3. 네트워크 캐릭터 디바이스 - 한번에 전송.. 2015. 10. 16. 20151015(목)_박서연_업무일지_Monitor Program(1) 2015-10-15 목 *ASSEMBLY# Monitor Program(1) 만들기 1. Comm 구조체 만들기typedef struct _Comm { char* cpCmd; void (*fp)(void); }Comm;커맨드맵을 위한 구조체로써 cpCmd는 입력받은 문자와 비교하기위한 문자fp는 실행시킬 함수를 가리키는 포인터 2. 전역변수 구간에 Comm구조체형 stCmdMap배열 선언 및 초기화Comm stCmdMap[] = { {"R", PrintR}, {"H",PrintHelp}, {0, 0} };Main에서 switch - case -문을 대체하기 위한 배열로 문자와 함수의 구성으로 되어있다. 함수를 만들 때 마다 {0, 0}사이에 호출하기위한 문자와, 함수로 채워주면 된다. 3. PrintHe.. 2015. 10. 15. 20151014 남수진 라즈베리파이 디바이스 드라이브 왜 리눅스 업데이트를 했나 커널 안에서 프로그래밍 하기 위해서 했음 우리가 커널을 직접 손보지는 않는다 기존의 소스를 복사해서 수정한다(= 포팅) ※ 리눅스 커널 안에서 만든 프로그램 실행 중 에러가 나면 리눅스가 먹통이 된다 => 응용 프로그램과 달리 커널이 처리해줄 수 없으로 라즈베리 파이의 /usr/src/linux/ 폴더에서 커널 프로그래밍에 사용할 기본 소스파일들을 찾을 수 있다 우리가 사용할 디렉토리 경로 /usr/src/linux/arch/mach-bcm2709 커널에서 프로그램을 짜고 build할 때 해당 디렉토리 내부의 내용을 참조 같은 리눅스라도 어떤 CPU를 사용하느냐에 따라 컴파일에 필요한 소스파일이 달라짐 필요 소스는 linux/arch/ 폴더에 칩 별로 분류되어 저장되어있다 분할.. 2015. 10. 14. 20151013 김태현 라즈베리파이 커널 업데이트(작성중) arm과 intel의 차이점 intel cpu는 함수의 인자의 갯수에 상관없이 전부 스택을 사용하지만 arm은 인자가 5개 이상이 되면 스택을 사용한다. arm은 스택을 사용하지 않고 레지스터를 사용하기 때문에 인텔보다 효율적이고 빠르다. Arm의 레지스터 구조 참조 http://egloos.zum.com/recipes/v/5631403 그림 클릭시 이동 총 7가지의 모드가 존재한다. r0~r7까지는 모든 모드가 레지스터를 공유한다.(user 모드에서 r0에 1을 넣고 system모드에서 r0의 값을 읽으면 1이 들어가 있는걸 확인할수 있다.) r8부터는 모드마다 사용하는 레지스터가 달라진다.(각각의 고유 레지스터를 가지고 있다.) r13, r14, r15는 일반 레지스터와 달리 특별한 일을 하는 레지스.. 2015. 10. 13. 20151012-김재홍-어셈블리_Context Switching --------오전수업--------ARM Cortex-M3 Rising trigger 로우에서 하이가 될 때 인터럽트가 일어나게 하기 위한 트리거 입니다. 사용법은 똑 같습니다. 해당 비트에 모두 1로 하면 누를 때 땔 때 모두 인터럽트가 걸립니다. 1로 적히면 해당 인터럽트가 일어났다고 보면 됩니다. --------오후수업-------- 어셈블리 Context Switching운영체제에서 멀티프로세싱할 때 기본개념일종의 가상머신 구현가능저장하는 개념이 복구시키는 개념과 같기 때문에 완벽하게 저장할 수 있다면완벽하게 실행가능프로그램을 실행하다가 바로 전단계로 복원가능윈도우가 A라는 프로그램과 B라는 프로그램을 실행시킬 때A를 실행하다 잠깐 중단시키고 A의 상태를 저장 B 프로그램을 실행도중 A 프로그램.. 2015. 10. 13. 20151008 - 김성주 - M3 : RCC / 어셈블리 : pushad를 이용한 구조체 삽입 오전 - M3의 RCC에 대해서레퍼런스 메뉴얼 p.90 ~ 122 PLL - 클럭을 내부에서 조절해서 보내주는 장치 오후 - 어셈블리 : pushad를 이용한 구조체에 레지스터 정리 후 출력 pushad를 이용해서 smart가 불러오기 전의 레지스트의 값을 구조체에 넣는 방식 ver 1.0 (smart의 stack영역을 이용해서 esp를 넣는 방법) 2. pushad를 이용해서 smart가 불러오기 전의 레지스트의 값을 구조체에 넣는 방식 ver 2.0 (구조체에 들어있는 eax를 이용해서 esp를 삽입하는 방식) 2015. 10. 8. 20151007 - 권오민 - GPIO&AFIO / ASSEMBLY(C와 링크하기) ARM-Cortex◉GPIO & AFIO●General-purpose and alternate-function I/Os(GPIOs and AFIOs) - P.159●GPIO functional description ●open-drain http://terms.naver.com/entry.nhn?docId=755118&cid=42341&categoryId=42341 http://irmus.tistory.com/76 ●GPIO functional description(continue) ●GPIO 실습- 목표 : 스위치를 눌렀을 때는 Main보드에 LED만 켜지고 땠을 때는 Core보드에 LED만 켜져 있어야 한다. - 소스 #define GPIOA_CRL (*(volatile unsigned int *)0x.. 2015. 10. 7. 201501006 - 2번 강동조 (오전: GPIO -LED 오후: ) 오전 ARM cortex m3 DSPDSP는 특성을 많이 탄다 레지스터특성도 복잡하다 DSP는 부동소수점에 엄청난 강점이있다 낮은 클럭으로 속도를 낼수가 있다 보통cpu연산은 덧셈으로 모든걸하지만 DSP는 곱셈회로를 내장하고있다 곱셈회로떄문인지 어마어마한 고사양을 낼수 있다 블랙박스같은것은 DSP칩을 넣어서 만든다ARM은 느려서 못넣는다요즘엔 ARM에도 DSP기능을 집어 넣는 경우가 있다 그래도 역부족이다 Keil프로젝트 생성방법 PORTA의 메모리 주소 GPIO레지스터 RCC 클럭 공급 Bit2번에 1을 넣게되면 port A clock이 enable이 된다 주소로는 0x04가된다 HEX파일 만드는 방법 TIP 코드에 마우스커서를 옮긴후 F12번을 눌리면 구조체나 define되어있는곳으로 이동한다 오후 .. 2015. 10. 6. 20151005 - 홍준모 (오전 : ARMCortexM3, 오후 : Assambly) FTP -> 수업자료 -> Digtal ->CortexM3 복사 다운 um0462.zip프로그램 올리는 용도 이제 컴파일러 다운 회원 가입 칸이 뜨는데 마구 갈겨서 회원 가입 후 다운. 다음 stm 홈페이지 간 뒤, STM32F103ZE 검색 후, 클릭 1. 데이터 시트 다운 2. 레퍼런스 메뉴얼 다운 본격적으로 데이터 시트를 살펴보자. 우리가 쓰는 레퍼런스는 STM32F103xE 플래쉬 메모리의 구성. 무려... 사용 전압 저거 깔라고 계속 씨불씨불 거리는 거 같길래 그냥 깔아 버렸다 옆에 STM32F103ZE 장치명 클릭하고 나면 저거 세개 인스톨 - 업데이트 - 업데이트 예제소스 받아서, 컴파일러 이름 : MDK-ARM 프로젝트 파일로 확장명 바꾼뒤 저기 저 STM32_cor.. 2015. 10. 5. 이전 1 ··· 30 31 32 33 34 35 36 ··· 60 다음 728x90 반응형