아래는 노트북 하드디스크 또는 기존의 SSD를 신규 SSD 드라이브로 교체하는 모습을 시연하였다.
영상 1. 디스크 교체하기 - 도도(Dodo)
부록 1. SATA 디스크
직렬 ATA(Serial ATA, SATA)는 하드 디스크 혹은 광학 드라이브와 데이터 전송을 주요 목적으로 만든 컴퓨터 버스의 한 가지이다. 약자를 철자대로 읽어서 사타(영어식으로는 새터, 세이터)라고도 한다. 직렬 ATA는 예전의 ATA 표준을 계승하여, ‘병렬 ATA(PATA, Parallel ATA, 기존의 ATA)’를 대체하기 위해 고안되었다. 직렬 ATA 어댑터와 장치들은 비교적 속도가 빠른 직렬 연결을 이용하여 연결된다.
부록 1-1. 케이블 및 단자
가장 눈에 띄는 변화는 PATA에 비해 SATA 방식의 전원 케이블과 데이터 케이블이 많이 달라졌다는 것이다. PATA와 달리, 노트북 디스크(2.5인치)든지 데스크톱용 디스크(3.5인치)든지 똑같은 모양의 SATA 커넥터를 쓸 수 있다. 노트북용 하드 디스크를 데스크톱에 연결해도 SATA를 쓰면 따로 어댑터를 사용하지 않아도 된다.
SATA 표준에서는 데이터 케이블을 7 가닥으로 정의한다. (3개는 그라운드이고 4개는 2쌍의 액티브 데이터 선이다.) 양 끝에는 8 밀리미터 너비의 웨이퍼 커넥터가 달린다. SATA 케이블은 약 1 미터 길이까지 허용된다; PATA 리본 케이블은 대개 40개 혹은 80개의 도선 가닥을 가지고 있고, 46 센티미터 길이까지 허용한다. SATA 커넥터는 밀폐된 공간에 잘 들어맞고, 공기 냉각에 장애물이 되지 않아 깔끔하다. 하지만 SATA 커넥터는 때때로 의도하지 않게 빠지거나 하드디스크 커넥터 지지대가 부러질수도 있다.
AVRDUDE는 ISP (in-system programming) 기술을 사용하여 AVR 마이크로 컨트롤러의 ROM 및 EEPROM 내용을 다운로드 / 업로드 / 조작하는 유틸리티이다.
설명서는 다운로드 영역에서 다운로드하거나 온라인으로 읽을 수 있다.
역사(History) AVRDUDE는 일단 Brian S. Dean이 Atemel AVR 마이크로 컨트롤러 시리즈의 인 시스템 프로그래머의 개인 프로젝트로이 컨트롤러 용으로 제공되는 Opensource 및 무료 소프트웨어 도구 모음의 일부로 시작되었다.
원래 이 소프트웨어는 FreeBSD 운영 체제용으로 작성되었으며, 사설 CVS 저장소에서 유지 관리되었으며 avrprog라는 이름으로 배포되었다.
Brian은 소프트웨어를 다른 운영 체제로 이식하는 것에 대한 관심이 높아짐에 따라 savannah.nongnu.org에서 공개적으로 프로젝트에 액세스 할 수 있도록하기로 결정했다. AVRDUDE로 이름 변경은 AVRstudio 소프트웨어와 함께 Atmel이 배포한 avrprog 유틸리티의 모호성을 해결하기 위해 선택 되었다.
주요 특징
AVRDUDE의 주요 기능은 다음과 같다.
• easyautomation을 위해 모든 다운로드 및 업로드 기능 (퓨즈 바이트 처리 포함)에 대한 명령 줄 기반 사용자 인터페이스 eg. Makefiles에 포함시킴. • 소위 터미널 모드에서 다양한 메모리 영역의 대화형 검사 및 수정. 또한 Atmel STK500 보드의 작동 매개 변수 (목표 전압, VAref, 마스터 클록 주파수)를 수정하기위한 옵션이 제공된다. • Win32 플랫폼뿐만 아니라 모든 주요 POSIX 스타일 운영 체제에서 실행되는 것으로 알려져 있다. POSIX 스타일 시스템에서 기존 운영 체제 드라이버를 사용하면 루트 권한이없는 보안 병렬 포트 액세스를 유지할 수 있다. Win32 플랫폼에서 병렬 포트 액세스는 사용자 프로세스가 IO 레지스터에 직접 액세스 할 수 있게 하는 드라이버 (giveio.sys)를 이전에 설치해야 한다. • AVR의 ISP 인터페이스를 컴퓨터의 병렬 포트 (추가 회로 없음) 또는 직렬 포트 (일부 추가 회로 필요)에 직접 연결하는 저렴한 ISPplug에서부터 버퍼 / 드라이버 칩을 사용하는 고급 ASP 어댑터 (예 : 74HC373), AVR910 스타일의 ISP 장치, Atmel STK500 보드 및 Atmel JTAG ICE mkII와 같은 직렬 연결 프로그래머까지 (더 복잡한) 가장 많이 사용되는 adapterscome 미리 정의 된 새로운 병렬 포트 어댑터를 추가하는 것은 구성 파일을 편집하는 것만큼 간단하다. (재 컴파일 필요없음) • Intel Hex, Motorola S-Record 및 원시 바이너리 파일을 지원한다. 명령 줄에서 직접 메모리 내용 지정 (예 : 퓨즈 바이트의 경우 유용). 입력시 파일 형식을 자동으로 감지 할 수 있다. • "터미널 모드"에서는 장치의 메모리 영역을 검사하고 수정할 수 있습니다. 이를 통해 상호 퓨즈를 설정하거나 몇 개의 EEPROM 셀을 수정할 수 있다.
도움을 받거나 버그를 신고하는 방법
AVRDUDE에 대한 지원을 받거나이 도구의 다른 사용자와 연락하려면 avr-chat 메일 링리스트를 참조하십시오. 프로젝트에 어떤 방식으로 기여하고자하는 사람들은 avrdude-dev 메일 링리스트에 가입 할 수 있다.
주의 : 다운로드 한 파일은 프로젝트 디렉토리에 저장해야 한다. 파일은 확장자가없는 "MakeFile"과 같아야 한다.
B. AVR MakeFile configurationAssumption : 마이크로 컨트롤러가 ATmega32이고 프로그래머 하드웨어가 JTAG ICE라고 가정한다. 그러면 굵게 표시된 다음 매개 변수를 편집해야 한다.
MCU=atmega32 / * 사용중인 프로세서 이름 추가 * / PROGRAMMER_MCU = m32 / * 이것은 마이크로 컨트롤러 ID입니다.avrdude의 매뉴얼 페이지를보십시오.즉
gedit /etc/avrdude.conf
*/PROJECTNAME=myproject /* Project name , This could be anything you wish
*/AVRDUDE_PROGRAMMERID=jtagmki
/*Programmer ids are listed in /etc/avrdude.conf
*/AVRDUDE_PORT=/dev/ttyUSB0 /* 병렬 포트용 드라이버가 로드되어 작동하는지 확인하고 권한을 777으로 하세요 * /
4-1. 소스코드
#include <avr/io.h>
intmain(void)
{
// Set Port D pins as all outputs
DDRD = 0xff;
// Set all Port D pins as HIGH
PORTD = 0xFF;
return1;
}
4-2. 컴파일 하기
$ make /* Compile your project*/ $ make hex /* Generate hex file */ $ make install /* Burn hex file in microcontroller ( Make sure your board is switched on and programmer is connected )*/
소스코드를 작성하고 make를 한다.
5. GCC-AVR에서 제시하는 컴파일 방법
원문으로 읽어보면 도움이 될 것이다.
Compiling the Code
Let's start with a simple C program, source.c:
#include <avr/io.h>
int var;
int main (void)
{
return var + SP;
}
Your source directory then contains the following files:
source.c gcrt1.S macros.inc sectionname.h
The startup code gcrt1.S and macros.inc are verbatim copies from AVR Libc.
sectionname.h is included by macros.inc but we don't need it: Simply provide sectionname.h as an empty file.
For the matter of simplicity, we show how to compile for a device that is similar to ATmega8 so that we don't need to extend avr/io.h to show the work flow. In the case you copied avr/io.h to a new place, don't forget to add respective -isystem to the first two commands for source.c and gcrt1.S.
ATmega8 is a device in core family avr4, thus we compile and assemble our source.c for that core architecture. __AVR_ATmega8__ stands for the subheader selector you added to avr/io.h.
• ARM GCC Toolchain 6.3.1 with upstream versions: gcc (ARM/embedded-6-branch revision 249437), GNU ARM Embedded Toolchain: 6-2017-q2-update
• Atmel Studio 7.0.1931 contains fixes for the following issues that were present in 7.0.1645: – AVRSV-8001: Tool firmware upgrade instability. – AVRSV-8063: ELF production file programming did not support fuses for ATtiny817 family. – AVRSV-8075: Launch of debugging with ATSAM4L unstable in some cases. – AVRSV-7895: Solution with links between projects compiles wrong file. – AVRSV-7745: Linked files in subfolder causes build failure. – AVRSV-7939: Function breakpoint fails for AVR devices. – AVRSV-8005: Writing fuses and memory fails in some cases on M0+ devices.
Atmel Studio 7.0.1645 Atmel Studio 7.0.1645 contains:
• ARM GCC Toolchain 6.3.1 with upstream versions: gcc (ARM/embedded-6-branch revision 249437), GNU ARM Embedded Toolchain: 6-2017-q2-update
• Atmel Studio 7.0.1645 contains fixes for the following issues that were present in 7.0.1417: – AVRSV-7798: ATtiny817 fuse programming from ELF issue fixed. – AVRSV-7742: Compiling an imported Arduino sketch for Arduino zero shows error. – AVRSV-7903: Studio automatically sets GPNVM bits [7:8] thereby enabling TCM. – AVRSV-7892: Writing SAML22 RWW flash fails. – AVRSV-7889: Skewed debug info for AVR 8-bit in AS 7.0.1417. – AVRSV-7883: Incorrect warning message for KB2978092 during installation of AS 7.0.1417. – AVRSV-7106: Hex parser fails on UNIX® line endings. – AVRSV-4914: Add support for new avr-gcc __int24 and __uint24 types. – AVRSV-7877: Devices with external SRAM fails to calculate available SRAM. – AVRSV-7845: Crash in _ReallyTerminateAfterLaunchFinished. – AVRSV-7834: Pack manager fails to download CMSIS DFPs. – AVRSV-7876: Add checksum fields to http header for KitsDatabase.xml. – AVRSV-7854: NaN values not handled by atprogram. – AVRSV-7911: Problems reading device ID on ATmega4809. – AVRSV-7202: Arduino Library Grouping can have better representation. – AVRSV-7927: Security Bit Window in Device Programming should not always be available depending on the MCUs. – AVRSV-7973: Chip erase outside prog session fails on SAM4L. – AVRSV-7961: FUSE configuration warning for BOD( BODCFG.LVL) is incorrect in Atmel Studio. Note: QTouch® Composer extension must be updated to version 5.9.122 or later to work with Atmel Studio 7.0.1645. Atmel Studio 7.0.1417 Atmel Studio 7.0.1417 contains a fix for the following issue that was present in 7.0.1416:
• AVRSV-7827: New WinUSB driver fails to install on 32-bit Windows
Atmel Studio 7.0.1416 The following changes are done in Atmel Studio 7.0.1416:
• Changed driver to WinUSB for AVR Dragon™, AVRISP mkII, JTAGICE mkII, JTAGICE3, AVR ONE!, STK®600, and QT600
• Installer improvements
• Improved support for installing older device family packs