레이저 절단 절곡 샘플가공 서비스 Custom Service
레이저 절단, 절곡 비철금속 가공 서비스 입니다.
판재/각재의 비철금속을 절단 또는 절곡하여 소량 샘플 또는 대량 양산까지 가공 가능합니다.
판재 가공은 사용자의 선택에 따라 많은 분야에 사용할 수 있는데요, 장점으로는 금형을 필요로 하는
사출/압출 의 대량생산 과정 없이 필요한 만큼 소량 제작이 가능하다는 점 입니다.
커스텀의 장점을 살려 간단히 도면을 제작하여 판재와 두께를 선택 하여 견적 요청을 주시면
빠른 시간안에 견적을 발송 드립니다. 제작하여 발송까지는 최소 4일정도 소요됩니다.
많이 의뢰가 들어오는 가공상품에는 모터마운트, 바디프레임, 커버케이스 가 있습니다.
또는 각 조립부를 제작하여 기능성 기계부품과 2~4족 로봇 바디, 주행로봇 바디도 연구소/교육기관에서 많이 진행됩니다.
비철금속 판재 종류는 많이 사용되는 판재와 두께를 보유고 있어 빠른 작업을 진행합니다.
그 외, 요청 판재가 없을 경우 상황에 따라 구하여 작업도 가능합니다. 하지만 수요가 없는 판재를 원판 구입하여 소량 가공은 어렵거나 단가에 영향이 있을 수 있습니다.
알미늄 AL5052 : 가볍고 단단하며 가공후 아노다이징 색상도금을 하면 고급스럽워 많이 사용됩니다.
철 SS400 SPC : 가격이 가장 저렴한 판재로 표면처리 후 분채도장으로 마무리 됩니다.
특수강 S45C : 보다 높은 강도로 두께를 높혀 고정되는 곳에 많이 사용됩니다.
서스 폴리싱 SUS304PU : 폴리싱 되어 표면이 매끄럽고 반짝이는 서스를 말합니다.
서스 SUS430 니켈 미포함 : 니켈 미포함된 서스로 폴리싱 안된 서스로, 여러 분야에 많이 사용됩니다.
아연강판 EGI/GI 아연도강판도금 : 아연강판은 외부에 많이 사용되며, 녹에 강하고 가볍습니다.
레이저 절단으로는 판재 두께는 1T 이상을 추천 드리며, 최소 0.8T 이하는 작업이 어렵습니다.
후 가공으로는 판재 절곡 후, 너트작업의 팸너트 , 스탠도프 가 있으며 판재에 직접 탭가공,
접시머리 카운트싱크CC를 진행합니다.
표면 처리는 헤어라인, 센딩 을 많이 사용합니다.
도색은 비철금속 전부 분채도장이 가능하며, 알미늄의 경우 아노다이징 도금처리가 가능합니다.
도면 요청은 CAD 2007버젼 2D DWG 파일을 메일 custom@ntrex.co.kr 으로 발송 주시면 확인하여 각 파트별 견적을 드립니다.
견적 요청시 보내주시는 CAD도면은 절곡이 없다면 간단한 도면을 주시면 됩니다. 절곡이 복잡하게 있거나 3D툴 프로그램 사요하신다면 저장 방식을 2D의 알맞는 포멧으로 주시기 바랍니다. 견적과 작업시 혼란을 줄 수 있을 수 있습니다.
도면 확인 과정에서 이상점이 확인되면 발주 진행 전 최대한 수정되어 발주시 문제없도록 노력하고 있습니다.
요청 도면으로 진행시 여러 작업자는 도면에 의지하여 작업 하는 이유로 도면에는 여러가지 내용이 기록되면 좋습니다.
주석 처리가 필요한 곳은, 홀 가공 후의 탭/너트/CC 같은 위치에는 꼭 규격과 필요 내용을 적어주셔야 합니다.
보다 편리한 서비스를 위해 여러 방법을 구상중에 고객분 중 스캐치업 프로그램을 많이 사용하시는 것 같아 활용 방법을 찾아보았습니다.
직관적인 3D 툴인 Google SketchUp 스캐치업을 사용하면 만들고 싶은 구상물을 쉽게 표현 할 수 있는데요.
스캐치업의 강력한 여러 기능중 간단한 기능만 으로도 원하시는 모형을 만들 수 있습니다.
판재 가공을 위한 스캐치업 모델을 만드시기 바랍니다.
도형을 그리고 밀기/끌기 를 이용하여 손쉽게 만드실 수 있습니다.
파츠별 완성이 된 후에는 도형을 선택후 그룹만들기로 묶어주시면 작업이 수월합니다.
Google SketchUp 기능 중에 카메라 뷰 형태를 바꾸면 손쉽게 확인이 가능한데요.
2D 도면을 뽑기위해 다양한 각도로 모형을 복사해서 나열 하시기 바랍니다.
카메라 메뉴 옵션중 / 투시(Perspective) 제거, 평행투영(parallel Projection) 으로 바꾸신 후 표준뷰 에서 형태를 고르시면 됩니다.
구조물 나열은 한쪽으로 해주시면 됩니다. 보다 자세한 수정은 CAD 에서 수정하면 손쉽습니다.
(내보내기 중 DWG 활성화는 PRO버젼(유료) 에서 가능하며, 최초 설치시 30일 무료 에서 사용이 가능합니다.)
. 요청 도면이 복잡한 것은 변환이 어렵습니다. 이점 양해 부탁드립니다.
[레이저 가공, 판재 가공 참고글]
[판재가공 활용편]
프로파일 Color 아노다이징프로파일을 원하는 색상으로 아노다이징 도금하여 사용해보세요. 디바이스마트를 이용하시면 보다 편리합니다. |
|
프로파일 안전가이드 레이저가공 판재가공 아노다이징 활용편레이저 판재가공을 활용하여 프로파일 안전가이드 만들기. 디바이스마트 커스텀서비스를 이용하면 원하는 것을 손쉽게 만들어 볼 수 있습니다. |
|
레이저가공(Razer)DIY(프로파일) 가공 활용 하기비철금속 판재 레이저절단 절곡 가공을 통하여 안전 가이드를 만들어 보도록 하겠습니다. 가공 후 날카로운 모서리 부분을 가리면서 동시에 포인트 를 줄수 있는 가공을 예로
|
|
노트북 쿨러! 판재 가공으로 손쉽게!판재 레이저가공을 통하여 나만의 노트북 쿨러를 손쉽게 만들어 보세요. 디자인 성능 기능 모두 생각대로! |
|
판재가공의 절곡 이란? [레이저 가공]판재가공의 절곡을 이해하기 위해서는 절곡기의 형태와 금형을 참고하시면 좋습니다. 판재가공의 디자인 설계자는 반드시 알아야하며, 가공의 난이도를 조정하여 단가를 조정할 수 있습니다. |
|
조립하기 [레이저 가공] 무선 주행로봇을 만들어 보세요.도면 견적 후 발주하여 가공품을 조립합니다. 아래 버튼으로 과정 단계별 설명페이지 이동이 가능합니다.6. 가공 완료 / 조립 하기
가공품을 수령하여 도면과 일치하는지 확인합니다.코팅제 또는 스틸의 경 우 착색 도색을 사용하며, 알미늄의 경우 아노다이징 처리를 합 니다. 알미늄은 가벼우며 튼튼하고 아노다이징 색이 좋아 많이 사용합니다. 스틸은 가격이 가장 저렴한 자재로 일반적으로 많이 사용되며 도색 가공을 추가 하거나, 직접 도색을 해도 문제 없습니다. 직접 도색은 통풍이 잘되는 그늘에서 얇게 분사하여 충분히 건 조 시킨후 다시 얇게 분사 하는 과정을 2~4회 정도 반복합니다. 한번에 많은 양을 분사하면 골고루 도색이 되지 않거나 얼룩이 생기며, 일부분이 마르면서 두꺼워져 버립니다. 2~4회 도색-건 조 과정 이후에는 마감제(=투명락카)를 2회… |
|
프레임 발주하기 [레이저 가공] 무선 주행로봇을 만들어 보세요.이전 포스팅에서는 프레임 구상 편을 작성 하였습니다. 이번 작성 내용은 CAD 도면으로 견적/발주 내용을 정리하겠습니다.4. CAD 도면 그리기
하중을 받는 하판과 모터 마운트는 튼튼해야 합니다. 스틸 2T를 적용하였습니다. 프레임 내부 작업을 편하게 하기 위한 상판 커버입니다. 모듈/배터리를 탈부착 하기에 용이하도록 구상하였습니다. CAD 도면은 정면과 옆면 정도로 형태와 절곡 정보를 알 수 있 도록 작업해야 하며, 작업 시 절곡 가공 범위를 생각하여 작업합니다. 각 프레임 구조를 그리면 도면을 그룹화하여 다른 프레임 구조물과 결합하여 홀의 위치와 구조물의 오류 부분을 수정하게 됩니다. 발주 진행 시에는 아래 도면과 같이 주시면 됩니다. CAD 2007 버전으로 변경하여 첨부하여 주세요.도면 조립 옆면 입니다. 홀 가공 위치를 꼭 표시하셔야 조립도 에서… |
|
프레임 그리기 [레이저 가공] 무선 주행로봇을 만들어 보세요.튼튼한 금속바디를 만들어 하나뿐인 주행로봇을 만들어 보세요! 스캐치편. |
|
[레이저 가공] 아크릴 절단 서비스커스텀 아크릴 절단 서비스 입니다. |
|
배터리 케이스 활용[레이저 가공]디바이스마트 레이저 판재가공 샘플 서비스를 통하여 다양한 케이스를 만들 수 있습니다. |
|
모터 마운트. 손쉬운 제작 방법![레이저가공]레이저 가공 서비스를 통하여, 모터 마운트를 손쉽게 만들 수 있습니다. |
|
[youtube http://www.youtube.com/watch?v=UHITBB8TjhA&w=220&h=160] |
레이저 절단 절곡 샘플가공 서비스 Custom Service레이저 절단, 절곡 비철금속 가공 서비스 입니다. |
무탈피 전선 접속 커넥터 e-clamp
일상 생활은 물론 전자 기기 어디서든 쉽게 찾아 볼 수 있는 전선은 많은곳에 사용되는 대표 자재입니다.
전선 내부에는 구리선 등이 단선 또는 연선(여러가지 가닥의 선)이 있어 전기가 통할 수 있는데요, 이렇게 사용이 편한 전선이 일부 끊어지거나 손실되어 연장, 브릿지 접속을 해야 할 때에 간편한 제품을 소개합니다.
일반적으로는 전선을 접속할 때 피복을 제거하고 결선, 그리고 마무리 테이핑 과정을 합니다. 결선이 단단하지 않아 풀리거나 테이핑이 풀려 습기 등 환경에 노출되면 안전사고가 발생 할 수 있습니다.
e-clamp는 기존 불편한 점을 보안하여 전선 연결을 간단히 접속하게 해주는 획기적인 제품을 소개합니다.
e-clamp 사용에는 규격 전선에 알맞는 클림프를 선택하여 사용해야 합니다.
I 형과 T 형 2가지 종류로, I형은 양쪽 2곳의 연결부가 있어 전선 연장/연결에 사용되며,
T 형은 사용되는 전선에 브릿지 연결시 간단히 사용됩니다.
형태와 사용되는 전선에 알맞는 클림프를 선택 하는 것 이 중요합니다.
전선에 맞지 않은 크기를 사용 될 경우, 클림프 접속이 안되거나 결속 후 전선이 이탈 될 수 있습니다.
전선 결속 후 어느정도 힘을 주어 결속형태를 확인 하시기 바랍니다.
이클림프의 종류는 각 5가지 크기로 구분되는데, 각 크기별로 허용 가능한 전선 규격(AWG)를 확인해야 합니다.
모델별로 전선 종류와 최대 전류/전압 을 확인 할 수 있습니다.
커넥터 내부의 결속 부분은 칼날같이 양쪽으로 3개의 접속부분이 있습니다.(붉은선 표시)
결속시 피복을 절단하여 내부의 전도선에 접속하는 것으로 연결되는 부분이 6곳이 되겠습니다.
결속시 공구의 힘이 필요합니다. 손으로는 결속결합이 제대로 이루어 지지 않으면 위험합니다.
롱노우즈 등의 평평한 플렛타입 공구로 천천히 결속합니다. 너무 큰 힘은 파손 위험이 있습니다.
내부에는 접속부분 부터 연결 부분 모두가 구리로 되어 있으며, 내부 바닦에는 금속판이 있습니다.
일부 연결에 구리판이 얇거나 작다면 허용 전류량이 많을 경우 화재 위험이 있습니다. 스펙에 알맞는
구리판이 사용되었습니다.
연결법은 전선을 넣고 똑딱 소리가 나도록 눌러주는 것 뿐. 누구나 10초면 가능합니다.
기존의 피복 탈거하고 결속 테이핑 마무리 작업처럼 복잡하고 힘든 과정이 없어서 여러 분야에 추천드립니다.
[17호]JK전자와 함께하는 ARM 완전정복(3)-3
JK전자와 함/께/하/는 ARM 완전 정복Ⅱ.ARM Applications – 1부글 | JK전자 |
4. 개발환경 설정
4.1 IAR Workbench 개발환경 설정
ARM Simulator 기반의 실습 프로젝트와 유사하지만 디버거 설정 부분과 Pre-include directory 설정 등이 추가됩니다.
(1) Create New Project
(3) 프로젝트 파일이름 입력 – “mini2440_test”
(4) 그룹생성 – “base”, “testcode”그룹 생성
(5) 소스 파일추가
- “base”그룹 : base 폴더 안의 *.s, *.c 파일들 추가
- “testcode”그룹 : testcode 폴더 안의 *.c 파일들 추가
(6.1) Target Device 설정 : Samsung S3C2440A로 설정합니다.
(7) Processor Mode 설정 : “ARM”모드로 설정합니다.
(8) C/C++ Compiler Pre-include 디렉토리 설정
(9) Assembler Pre-include 디렉토리 설정
(10) Scattor Loading 파일 설정 : 프로젝트 디렉토리에 “mini2440_lnk.icf”파일을 선택합니다.
(11) Program Start Entry 설정 : “ __program_start”라고 입력합니다.
(14) Debugger 정보 설정 : Dirver – Simulator, Run to main은 반드시 설정 해제합니다.
4.2 JTAG 을 이용한 프로그램 다운로드
4.2.1 ARM-JTAG을 이용한 프로그램 다운로드
(1) ARM-JTAG Standard 버젼 이상을 사용해야 합니다.
(2) IAR 개발환경에서 Debugger를 설정합니다.
RDI Driver를 JICE.dll 로 설정합니다.
(3) Windows7 사용자일 경우 IAR IDE 프로그램과, JICE Server의 실행 환경을 관리자 권한으로 설정합니다.
(4) JICE Server 를 실행한 후 Target Detect 를 합니다.
(5) IAR Workbench 에서 “Download and Debugging”을 실행합니다.
위와 같은 화면이 나왔으면 정상적으로 실행이 완료된 상태입니다. 참고로 “mini2440_lnk.icf”파일은 S3C2440의 RAM(0×30000000)영역에서 실행이 되도록 되어 있습니다. NOR 플래시에 다운로드해서 실행을 할 수도 있지만 NOR 플래시도 10만번 이상 Erase하게 되면 수명이 다하기 때문에 테스트용으로는 주로 RAM에서 실행되도록 합니다.
(6) NOR 플래시에 프로그램을 다운로드 하는 방법
- “mini2440_lnk.icf”파일에서 “define symbol EXECUTE_IN_SDRAM=1;”부분을 “define symbol EXECUTE_IN_SDRAM=0;”으로 수정합니다.
- IAR 프로젝트를 Rebuild 합니다.
- jcs 스크립트 파일에서 “mini2440_test.bin”파일의 이름과 경로를 수정합니다.
- JICE Commander를 실행 -> Script Run -> “S3C2440_NOR(SST39VF1601)_PROGRAM_WITH_FLASHAGENT.jcs”를 실행합니다.
■ 이것으로 ARM Applications 1부를 마치며, 다음호에는 아래 내용에 대하여 살펴보도록 하겠습니다.
[17호]JK전자와 함께하는 ARM 완전정복(3)-2
JK전자와 함/께/하/는 ARM 완전 정복 Ⅱ.ARM Applications – 1부글 | JK전자 |
2. 어셈블리어 실습
2.1 ARM Simulator 환경 설정
IAR ARM용 컴파일러는 가격이 그렇게 싸지는 않습니다. 다행히도 www.iar.com 에서 시간 제한(30일), 사이즈 제한(32Kbyte) 버젼을 다운 받아서 사용해 볼 수 있습니다.
2.1.1 IAR Evaluation 버젼 다운로드
- 다운로드 사이트 방문
http://supp.iar.com/Download/SW/?item=EWARM-EVAL
패키지 사이즈가 약 830MB정도 입니다. 다운 받아서 설치하시기 바랍니다.
다음은 Evaluation 버젼을 다운로드 받기 위한 절차대로 화면을 캡쳐해 놓은 것입니다. 참조하시기 바랍니다.
반드시 “Code size limited”를 선택하시기 바랍니다. 그렇지 않으면 30일 이후에 더이상 IAR 컴파일러를 사용할 수 없게 됩니다.
(2) IAR Evaluation 버젼 설치
설치가 완료되면 마지막에 License 를 입력하는 화면이 나옵니다. 여기에서 “Register with IAR System to get an evaluation license”를 선택하시기 바랍니다.
현재 설치된 제품 중에 라이센스가 없는 제품의 리스트가 나옵니다. 선택을 하고 “다음”으로 진행합니다.
IAR Evaluation 버젼을 다운받기 위해서 입력했던 Email 주소로 Registeration Confirm 메일이 와있을 것입니다.
Confirm 메일에 있는 Confirm 링크를 클릭하면 “Registration Complete”와 함께 Evaluation License 번호를 알 수가 있습니다. 그 번호를 위의 화면의 빈 칸에 입력하고 나서 “Regiser”버튼을 누르면 잠시 후에 네트워크를 통해서 Evaluation 라이센스 번호를 받게 됩니다. 경우에 따라서 Fail 이라는 메세지가 나올 수도 있습니다. 그때는 “Register”버튼을 다시 한번 클릭해서 재시도해 보시기 바랍니다.
모든 설치가 완료된 화면입니다.
2.1.2 ARM Simulator 프로젝트 생성
아래 화면대로 따라서 ARM Simulator 기반의 실습 프로젝트를 생성해 보시기 바랍니다.
(3) 프로젝트 파일이름 입력 – “arm_simulator”
(4) 그룹생성 – “base”, “testcode”그룹 생성
- “base”그룹 : 2440init_ewarm.s 추가
- “testcode”그룹 : main.c, SegInit.c 추가
(6.1) Target Device 설정
Samsung S3C2440A 로 설정합니다.
(7) Processor Mode 설정
“ARM”모드로 설정합니다.
(8) Scattor Loading 파일 설정
프로젝트 디렉토리에 “arm_simulator.icf”파일을 선택합니다.
(9) Program Start Entry 설정
“ __program_start”라고 입력합니다.
(12) Debugger 정보 설정 : Dirver – Simulator, Run to main은 반드시 설정 해제합니다.
2.2 Data Processing Instructions
2장에서는 ARM Simulator를 활용한 어셈블리어 실습을 해보도록 하겠습니다. 이 내용들은 ARM Architecture Instruction의 이론 부분을 설명할 때 한번씩 나왔던 내용입니다. 여기서는 이론으로 공부했던 내용들을 실제로 ARM Simulator에서 코드를 작성한 후 컴파일하고 실행해서 결과 값을 직접 확인해 보는데 의미가 있습니다.
R0 = 0×00 R1 = 0×22 R2 = 0×02 R3 = 0×00 R4 = 0×00 |
레지스터 값이 위와 같을 때 아래 예제들을 차례대로 수행해 보세요.
(1) AND R0, R0, #0xFF
2440init_ewarm.s 파일에 다음과 같이 입력을 합니다.
SECTION IMAGE_STARTUP:CODE (2) PUBLIC __program_start CODE32 __program_start b ResetHandler b HandlerUndef ;handler for Undefined mode b HandlerSWI ;handler for SWI interrupt b HandlerPabort ;handler for PAbort b HandlerDabort ;handler for DAbort b . ;reserved b HandlerIRQ ;handler for IRQ interrupt b HandlerFIQ ;handler for FIQ interrupt ResetHandler MOV R0, #0×00 MOV R1, #0×22 MOV R2, #0×02 MOV R3, #0×00 MOV R4, #0x00AND R0, R0, #0xFF ADD R0, R0, #1 ADD R0, R0, R1 LSL R1, R0, #2 SUB R3, R2, R1, LSR R2HandlerFIQ b .HandlerIRQ b .HandlerUndef b .HandlerSWI b .HandlerDabort b .HandlerPabort b .END |
(2) ADD R0, R0, #1 ; R0 = R0 + 1 = 0×1
- 실행 결과
(3) ADD R0, R0, R1 ; R0 = R0 + R1 = 0×01 + 0×22 = 0×23
- 실행 결과
(4) LSL R1, R0, #2 ; 0×23(100011) LSL #2 = 0x8C(10001100) -> 참고로 왼쪽으로 2번 쉬프트 하면 *4 를 한 것과 같습니다.
- 실행 결과
(5) SUB R3, R2, R1, LSR R2
- 실행 결과
R3의 값이 0xFFFFFFDF 로 복잡한 값이 나왔습니다. 왜 이런 결과가 나왔을까요? 우선 R1을 오른쪽으로 2번 쉬프트시키면 0×23이 되고 R2(0×02)에서 R1(0×23)을 빼면 결과 값이 -0×21가 되고 이 값을 2의 보수로 표시하면 0xFFFFFFDF가 됩니다.
0×21 = 00000000000000000000000000100001
-0×21 = 11111111111111111111111111011111 –> 0×21의 2의 보수
참고로 2의 보수를 취하는 방법은 원래의 2진수에서 0->1, 1->0 으로 바꾼 후에 1을 더하면 되겠지요.
2.3 Multiply Instructions
R0 = 0×01 R1 = 0×02 R2 = 0×03 R3 = 0×04 |
레지스터 값이 위와 같을 때 아래 예제들을 차례대로 수행해보세요.
(1) MUL R2, R0, R1 ; R2 = R0*R1 = 0×02
2440init_ewarm.s 파일에 다음과 같이 입력을 합니다.
ResetHandler MOV R0, 0×01 MOV R1, 0×02 MOV R2, 0×03 MOV R3, 0x04MUL R2, R0, R1 MULS R2, R0, R1 MLA R3, R2, R1, R0 |
(2) MULS R2, R0, R1 ; R2 = R0*R1 = 0×02
MUL 명령과 같은 명령입니다. 하지만 MUL뒤에 “S”가 붙으면 명령어 처리가 끝난 이후에 CPSR의 Flag Field가 연산 결과에 따라서 업데이트가 됩니다.
- 실행 결과
(3) MLA R3, R2, R1, R0 ; R3 = R2*R1 + R0
참 효율적이네요. 명령어 하나로 곱하기 연산과 더하기 연산을 같이 할 수 있습니다.
- 실행 결과
2.4 Load/Store Instructions
2.4.1 Pre-index
R0 = 0×31000000
R1 = 0×00
R2 = 0×00
(1) LDR R1, [R0] ; R1 2440init_ewarm.s 파일에 다음과 같이 입력을 합니다.
ResetHandler MOV R0, 0×31000000 MOV R1, 0×0 MOV R2, 0x0LDR R1, [R0] STR R1, [R0, #4] STR R1, [R0, #4]! |
(3) STR R1, [R0, #4]! ; R1
- 실행 결과
2.4.2 Post-index
R0 = 0×31000000
R1 = 0×00
R2 = 0×04
(1) LDR R1, [R0], R2 ; R1
ResetHandler MOV R0, 0×31000000 MOV R1, 0×0 MOV R2, 0x4LDR R1, [R0], R2 STR R1, [R0], #4 |
(2) STR R1, [R0], #4 ; R1
- 실행 결과
2.5 Load/Store Multiple Instructions
R0 = 0x000A
R4 = 0x000B
R5 = 0x000C
R13 = 0xFFF0
(1) STMIA R13!, {R0,R4-R5}
ResetHandler MOV R0, #0x000A MOV R4, #0X000B MOV R5, #0x000C LDR R13, =0xFFF0STMIA R13!, {R0,R4-R5} |
(2) STMIB R13!, {R0,R4-R5}
ResetHandler MOV R0, #0x000A MOV R4, #0X000B MOV R5, #0x000C LDR R13, =0xFFF0STMIB R13!, {R0,R4-R5} |
(3) STMDA R13!, {R0,R4-R5}
ResetHandler MOV R0, #0x000A MOV R4, #0X000B MOV R5, #0x000C LDR R13, =0xFFF0STMDA R13!, {R0,R4-R5} |
(4) STMDB R13!, {R0,R4-R5}
ResetHandler MOV R0, #0x000A MOV R4, #0X000B MOV R5, #0x000C LDR R13, =0xFFF0STMDB R13!, {R0,R4-R5} |
2.6 Branch Instructions
ResetHandlersubsequent MOV R0, #1 MOV R1, #2 BL func1 ADD R2, R0, R1func1 MOV R0, #3 MOV R1, #4 BL func2 ADD R2, R0, R1 MOV PC, LRfunc2 MOV R0, #5 MOV R1, #6 ADD R2, R0, R1 MOV PC, LR |
위의 예제를 실행하면 R2 레지스터에 “3”이 저장이 되지 않습니다. R2 레지스터에 “3”이 저장이 될 수 있도록 예제를 수정해 보시기 바랍니다. 수정한 예제 코드는 아래와 같습니다.
서브 함수를 호출 할 경우에는 서브 함수에서 사용하는 레지스터와 LR 레지스터를 반드시 저장한 이후에 사용해야 한다는 것을 알 수 있습니다.
2.7 Status Register Access Instructions
ResetHandler MRS R0, CPSR BIC R0, R0, #0×80 ; 7번 비트를 clear 하면 인터럽트가 활성화 됩니다. MSR CPSR, R0 |
2.8 Conditional Execution
지금까지 배운 모든 어셈블리어들을 활용해서 최종적으로 몇가지 예제를 풀어 보도록 하겠습니다. 예제를 구현하는데에는 여러가지 방법들이 많이 있겠지만 가장 최적화된 어셈블리 명령어를 사용하시기 바랍니다.
(1) 1 ~ 10을 더하는 최적화된 어셈블리어로 작성해 보세요.
ResetHandler MOV R5, #10 MOV R6, #0 loop_sum ADD R6, R6, R5 SUBS R5, R5, #1 BNE loop_sum ; Not Equal(Z=1) |
루프를 사용할 경우에는 거꾸로 도는 것이 효율적입니다.
(2) 2개 변수 사이의 절대값을 구하세요.
- [-2 - 3] 사이의 절대값
ResetHandler MOV R0, #-2 MOV R1, #3SUBS R0, R0, R1V RSBMI R0, R0, #0 |
“SUBS R0, R0, R1”명령을 실행했을 때의 그림입니다. R0, CPSR의 “N”Flag를 잘 살펴보시기 바랍니다. 참고로 RSBMI 명령어는 CPSR의 “N”Flag가 Set되어 있을 때 뺄셈을 하는데 SUB 명령과는 연산의 방향이 반대로 수행이 되는 명령어입니다. 그러니까 이번 예제에서는 “#0”에서 “R0”를 빼는 것입니다.
- [3 - 1] 사이의 절대값
ResetHandler MOV R0, #3 MOV R1, #1SUBS R0, R0, R1 RSBMI R0, R0, #0 |
“SUBS R0, R0, R1”명령을 실행했을 때의 그림입니다. R0, CPSR의 “N”Flag를 잘 살펴 보시기 바랍니다.
3장에서는 우리가 실제로 실습에 사용할 S3C2440 ARM9 개발보드에 대해서 소개하도록 하겠습니다. ARM Simulator에서는 별다른 설정없이도 어셈블리어 실습을 할 수 있었으나 실제 타겟을 사용할 경우에는 개발보드의 메모리 컨트롤러, 부팅과정 등을 제대로 이해하고 있어야 코드 작성이 가능합니다. 실제 개발보드에서 실습을 하기 전에 S3C2440에 대해서 이론적으로 공부해보도록 하겠습니다.
JK전자와 함께하는 ARM 완전정복(3)-2 에서 계속 됩니다.
[17호]아두이노 호환 E2sKit-Uno 보드 출시!
이엠테크에서 아두이노 호환 E2sKit-Uno 보드를 출시했다. E2sKit-Uno 보드는 아두이노 기본 모델인 Uno 제품의 메인 MCU인 ATmega328P(with Uno Bootloader)를 장착한 보드로 AduKit-USB2Serial보드와 연결하여 아두이노 프로그램으로 작성한 스케치를 업로드 시킬 수 있는 보드이다. 이더넷<->시리얼 변환 모듈(Ecm5200-UART)을 장착할 수 있는 헤더가 장착되어 있으며, AVR Studio 프로그램으로 개발한 프로그램도 ICSP로 업로드가 가능하다. MCU(E2sKit-Uno or Leonardo)와 이더넷<->시리얼 변환 모듈(Ecm5200-UART)를 사용해서 인터넷 망을 사용하는 네트워크를 구성할 수 있으며, 인터넷 망을 사용하기 어려운 경우에는 RF모듈과 혼용해서 원격으로 데이터를 수집하고 제어하는 어플리케이션에 적용이 가능하다. 보다 자세한 내용은 디바이스마트 홈페이지를 통해서 확인이 가능하다.
|
||||||||||||||||||||||
AduKit-USB2Serial(별도구매) + E2sKit-Uno
|
||||||||||||||||||||||
|
||||||||||||||||||||||
E2sKit-Uno + Ecm5200-UART(별도 구매)
케이블 핀 변경 방법
|
||||||||||||||||||||||
|
||||||||||||||||||||||
MCU(E2sKit-Uno or Neonardo)와 이더넷<->시리얼 변환 모듈(Ecm5200-UART)를 사용해서 인터넷 망을 사용하는 네트워크를 구성할 수 있다. 인터넷 망을 사용이 어려운 경우에는 RF모듈과 혼용해서 원격으로 데이터를 수집하고 제어하는 어플리케이션에 적용이 가능하다.
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
||||||||||||||||||||||
www.wgmsk.com