본문 바로가기

분류 전체보기246

인베디드 레시피 -2 , 시스템 hardware 구성요서 플레시 메모리 1. Nor Flash : 주소를 가지고 있어서 , flash 메모리에서 실행코드를 바로 실행 하능하다. 2. Nand Flash : 주소를 가지고 있지 않아서 sdram 으로 실행코드를 가지고 와서 실행 해야 한다. sdram 에 가지고 오기 위해서 부트로더와 인터널램이 필요하다 . 시피유에서 낸드를 사용할때 부트로더를 인터널램에 올리고 , 인터널램에 있는 부트로더를 시피유는 실행한다. 이 실행에서 낸드의 바이너리 파일이 sdram 에 올라오는 것이다. 또한 낸드는 주소가 없기 때문에 읽고 ,쓰고 지우기 기능을 할때 자신만의 특수한 체계를 따른다. page 와 블록인데 블록은 여러개의 페이지으로 구성되어 있고 , 1개의 페이지는 256byte ~ 4kbyte 까지 다양한다. arm cup.. 2021. 9. 2.
인베디드 관련 공부 사이트 http://recipes.egloos.com/ 임베디드 레시피 친절한 임베디드 개발자되기 강좌 recipes.egloos.com http://recipes.egloos.com/5207842 임베디드 레시피 친절한 임베디드 개발자되기 강좌 recipes.egloos.com https://open-support.tistory.com/entry/%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C%ED%8E%8C%EC%9B%A8%EC%96%B4-%EA%B4%80%EB%A0%A8-%EA%B0%95%EB%A0%A5-%EC%B6%94%EC%B2%9C%ED%95%98%EB%8A%94-%EC%B1%85-2%EA%B6%8C?category=1178118 2021. 9. 1.
Advanced Interrupt Controller (AIC) Advanced Interrupt Controller (AIC) at91sam7s cup 의 경우 32 개 까지의 인터럽트를 가질 수 있다. ( 0~ 31) 여기서 0 번은 무조건 FIQ 이고, 1 번은 SWI 용으로 존재한다. 때문에 interrupt sources 를 FIQ, SYS(소프트웨어 인터럽트), PID2 to PID31. 라고 부른다. IRQ 인터럽트는 8단계로 우선순위를 정할 수 있는다. 물론 아무리 우선 순위가 높은 IRQ 라도 FIQ 가 발생하면 FIQ의 ISV 가 실행된다. 2021. 9. 1.
Branching and Looping jmp goto 문이랑 동일 ;; jmp label 실습 SMART_SART: mov ecx, 0 inc ecx jmp SMART_SART ex) jmp StatementLabel ; Label 이 있는 곳으로 점프하라 점프 명령어 구조 near : 4 byte , 멀리 갈때는 short : 1byte , 근처 갈 때는 short 쓸 때는 밑의 경우와 같이 조금 이동할 경우 에만 (1byte 미만 이동) jmp 01 ; 1칸 앞으로 이동 jmp ff ; -1 칸 이동 ( 점프는 항상 singed이다.) 결국 jmp LabelName 명령어는 기계어로 해석되면 Label까지의 상대적인 거리만큼 계산해서 jmp 한다. 00000008SMART_SART: 00000008 49dec ecx 00000009 74.. 2021. 9. 1.
random stack address 옵션 끄기 https://wowcat.tistory.com/2073 Visual Studio Random Stack Address option off ( 랜덤 스택 옵션 , 랜덤 변수 주소 옵션 끄기 ASLR ) Address space layout randomization Visual Studio에서는 고정되어있는 stack 시작 주소를 랜덤화하여 임의주소로 바꾸는 옵션을 켜 놓았음. 이 기술을 Address Space Layout Randomization(ASLR)라고 함. 관련.. wowcat.tistory.com random stack address 옵션 끄기 2021. 9. 1.
add & sub LargeNumber 32bit -> 63 bit 계산 하기 Num1_HI DWORD 11112222h Num1_LI DWORD 33334444h Num2_HI DWORD 22223333h Num2_LI DWORD F5551111h mov eax , Num1_LI ; Low 덧셈 add eax , Num2_LI ; 33334444h + 0F5551111h mov Num1_LI , eax mov eax , Num1_HI ; high 덧셈 adc eax , Num2_HI ; 11112222h + 22223333h + carry mov Num1_HI, eax adc 캐리 bit 까지 더함 2021. 8. 31.
mul,imul cf ) 레지스터 상식 eax 계산용 ebx 주소 ecx 반복 edx 계산용 서브 mul 곱셉의 경우 곱셈후 결과 값이 자리수가 커질 가능성이 높다. 따라서 자릿수 확장이 필요하다. 위 그림에서 ax 16bit 곱셈은 eax 의 ax 와 edx 의 dx 를 사용해서 32bit 로 표현 한다. eax, edx 32bit 의 곱셈또한 두개의 레지스터를 사용해서 32 bit로 표현한다. 단 : al 8bit 단위의 곱셈은 ah 가 앞의 숫자를 갖는다. 이는 16bit 컴퓨터의 잔제로 16bit 컴퓨터를 만들때 위와 같이 만들었기 때문에 32bit로 넘오 와서도 똑같은 명령어를 가지고 있는것이다. 속도를 보면 32 bit 가 16bit 나 8bit 보다 빠른것을 알수 있다. 이는 32bit cpu 에서 사용할 .. 2021. 8. 31.
AVR cygwin 설치 , arm gcc 다운 출처: https://wowcat.tistory.com/3112?category=223662 GNU ARM 4.1.1 Compiler for Cygwin and AT91SAM7S256 Documents bu-2.17_gcc-4.1.1-c-c++_nl-1.14.0_gi-6.exe installation GNU ARM Compiler 4.1.1 for Cygwin : Windows installation Version AT91SAM7S Sample Source SAM-BA : ATEML ISP AT91SAM7S Series Datasheet US.. wowcat.tistory.com window 환경에서 리눅스 형태의 명령어를 실행 시키기 위해 필요함 별말 없는 부분은 그냥 패스 하면 됨 다운 받아서 설치 .. 2021. 8. 31.
UST-MPB-AT91SAM7S256 v1, 보드 분석및 , sam-ba로 코드 넣는법 avr 보드의 경우 부트로더가 따로 존재 하지 않고 usb 시리얼 통신으로 코드를 올릴기 위해서 samba 라는 프로그램이 존재한다. 이는 위의 블록다이어 그램에서 rom 이 존재 하는 곳에 위친한다. 즉 우리는 samba 프로그램을 이용해서 우리가 컴파일한 바이너리 파일을 avr 보드에 올릴수 있다. sam ba 를 위한 프로그램 다운 보드는 sam 프로그램을 flash 에 올려야하는데 아래와 같이 동작시키면 sam 프로그램이 flash 에 올라간다. 출처: https://wowcat.tistory.com/2256 2015-07-21 32번 천정호 AT91ARM7S256 Chip 분석 및 ARM을 이용한 LED 제어 오전 이승규 선생님의 수업은 중간프로젝트 기간으로 개인 프로젝트 공부와 프로젝트 보고서.. 2021. 8. 31.