부산IT학원/스마트컨트롤러
-
20140725 (Assembly Flags Register)부산IT학원/스마트컨트롤러 2014. 7. 25. 15:09
110일차 -------------------------Assembly mnemonics------------------------- ------- 덧셈, 뺄셈, Flag Reg 위에 것 중에 한가지만 예로 든다면. EFL 이 Flags Register이다.하위 12bit 중에 OF, SF, ZF, CF Flag만 보자. ------- batch file 윈도우에는 실행파일이 3종류가 있다.- bat (cmd)- com- exe 이 중 같은 이름이고 확장자만 다를 때 실행할 경우bat 파일이 실행된다. ---- batch 파일을 만드는 방법 @echo ---------------- compile ----------------ml /c /coff /Zi %1.asm@echo ---------------- ..
-
20140724 (ASM mov, xchg)부산IT학원/스마트컨트롤러 2014. 7. 24. 16:26
109일차 --------------Assembly-------------- ------- []의미 ------- mov 명령어 mov 명령어의 operand에 오는 속성과 정보들이다. --- 경우 1. operand에 Reg, 상수 prefix byte를 실제로 확인. --- 경우 2. operand에 Mem, 상수 --- 경우 3. 추가적으로... ------- 문법 mov buf , number C로 표현하면=> buf = number; 그런데 위에 mov 옵션을 보면메모리에서 메모리로 옴겨지는 경우는 없다. 그래서 mov buf , number이 문법은 틀렸다. 맞는 어셈블리로 짜려면 mov eax , numbermov buf , eax 이렇게 짜야한다. 또, 또, 그래서 INVOKE를 넣어줘야 ..
-
20140723 (Assembly 기초, windbg 사용법)부산IT학원/스마트컨트롤러 2014. 7. 23. 16:06
108일차 --------------------Assembly Windbg-------------------- ------- windbg 로 프로그램 관찰 - string 변수에 1234567890을 입력합니다. - string 에 1234567890 이 아스키코드로 입력됐음을 확인할 수 있습니다. - 1234567890 이라는 10진수를 16진수로 바꾸면 49 96 02 D2 입니다. - 다음 코드로 진행하면 number1에 eax에 저장된 49 96 02 D2 를 저장합니다. - Register는 Big Endian이고, Memory는 Little Endian이라서 Memory에 거꾸로 저장된 것을 볼 수 있습니다. - 위와 같은 과정을 거쳐 number2 에 255 를 입력하면 메모리에 아래와 같이..
-
20140722 (ARM ADC, Assembly 기초, Debug)부산IT학원/스마트컨트롤러 2014. 7. 22. 10:24
107일차 ------------------ARM ADC------------------ ------- ADC 타이밍도 1. ADC_CR Reg에 START bit가 set 되면변환을 시작한다. 2. 변환이 끝나면 ADC_SR Reg에 해당 채널 EOC bit가 set 되고ADC_SR Reg에 DRDY bit도 set 된다. (DRDY는 가장 먼저 변환이 끝난 후 계속 H) 3. 해당 ADC_CDRx Reg로 값을 읽으면 ADC_SR Reg에 해당 채널 EOC bit가 clear 된다. 4. 다시 ADC_CR Reg에 START bit가 set 되면 변환을 시작하고변환이 끝나면 또 해당 채널의 bit가 set 된다. 5. ADC_LCDR Reg에는 최근에 변환이 완료된 값을 가지고 있고이 값을 읽을 시 ..
-
20140721 (ARM adc 소스 작성중, asm)부산IT학원/스마트컨트롤러 2014. 7. 21. 17:06
106일차 --------------ARM ADC-------------- ------- 소스 --- adc.h --- adc.c -----------asm----------- ------- Reg registers 종류 : data reg , general regEAX - EBX - ECX - EDX = Data Reg Or General Reg 라 한다.여기서 특히 사용 많이 하는 EAX 레지스터를 accumulator 라 한다.그래서 특히 4개중에 속도가 최고로 빠르다. 각각의 레지스터들은 32 비트이다 .여기서 EAX는 반을 나누어서 사용한다 . 오른쪽은 AX 라하며 왼쪽은 호칭은 없다여기서 AX를 또 반을 이용해서 사용하는데 반을 나눈 두가지를 AH AL 이라한다. Ex) 레지스터 사용되는 형식..
-
20140717 (ARM Ultrasonic 초음파 모듈)부산IT학원/스마트컨트롤러 2014. 7. 17. 16:10
104일차 -------------------------------ARM Ultrasonic (초음파 모듈)------------------------------- ------- 어제 소스에 이어 계속 거리를 측정하는 소스를 작성한다. --- 원리는 트리거 신호를 발사하면초음파 모듈에서 버스트 신호를 발사하고Echo로 H를 내보내다가버스트 신호가 들어오면Echo가 L로 들온다. 이 때 걸린 시간을 계산하면 물체와의 거리가 된다. ------- 소스 --- usonic.c #include "usonic.h" static volatile unsigned int uiCm; static volatile unsigned int uiDist; void Ultra_Init(void) { Trg_Init(); Echo..
-
20140715 (ARM Timer & Counter)부산IT학원/스마트컨트롤러 2014. 7. 15. 12:46
102일차 ------------------------ARM Timer & Counter------------------------ ------- Block Diagram ------- Product Dependencies 1. I/O Lines우리는 I/O Lines를 사용하지 않을 것이라서 넘어감. 2. Power ManagementTC 장치를 켜야 사용 가능하므로 PMC를 사용한다. 3. InterruptTC 는 인터럽트가 필수다. ------- 소스 --- tc.c --- main.c 문제점.지금은 고쳤지만 처음엔 아래와 같이 소스를 짰었다.--- tc.c 이 소스로 하니 타이머가 똑바로 동작하지 않았다.