페이지

2012년 8월 27일 월요일

ubuntu에서 su (super user) 로그인

$ sudo passwd root
[sudo] password for ramesh:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

2012년 8월 23일 목요일

2012년 8월 17일 금요일

yagarto tool 실행 문제

만약에


make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x425073)


이런 메세지를 내고 빌드가 안된다면,
make가 설치된 패스를 의심해본다.

참조 사이트

http://embdev.net/topic/145370


Yagarto + eclipse + J-Link for ARM

eclipse와 J-link 기반으로 ARM 개발을 할 수 있는 환경.
일단 윈도우와 맥에서 해봤는데, 무료툴의 한계는 있는 듯.
윈도우는 그럭저럭 쓸만해 보이는데, 맥은 반응이 느려서 좀 답답하다.

http://www.yagarto.de/

순서는

1. SEGGER 에서 J-link 의 소프트웨어 설치. 드라이버와 GDB server가 같이 설치된다. 그리도 문서까지.
http://segger.com/index.html


2. YAGARTO Tools(윈도우의 경우) 와 YAGARTO GNU ARM toolchain 을 설치한다.
http://www.yagarto.de/index.html#download


3. JAVA JRE 설치. 32bit 가 권장되는게 아니라 64bit는 문제가 있어보인다. 이클립스와 관련해서. 윈도우에서는 32bit 버전이 설치되어 있었고, 64bit 버전은 따로 설치했지만 쓸모가 없었다. 맥에서는 둘다 필요 없었다.
http://java.com/ko/download/manual.jsp


4. 이클립스 설치. 윈도우 맥 둘다 64bit는 필요없어 보였지만 설치는 해뒀다. 32bit 만으로도 충분한 듯.
Eclipse Project 4.x Stream Downloads 라는 것을 찾아 먼저 설치한다. 일종의 베이스 같다. eclipse 홈페이지의 project 에서 eclipse project 또는 eclipse platform을 찾아야 한다. 4.2를 설치했다. eclipse SDK라는 이름이다. 용어를 무지 헷갈리게 사용한다.
http://download.eclipse.org/eclipse/downloads/


5. 이클립스 CDT (C/C++ Developement Tooling) 설치.
이클립스 프로젝트 다운로드에서 찾을 수 있다. 8.1.0 을 설치 했고, 32bit / 64bit 구분이 없다. 다운로드를 한 후에, 이클립스를 실행 시키고, help 메뉴의 'install new software'를 선택해 설치 할 수 있다.
http://www.eclipse.org/cdt/downloads.php


이후 테스트는 http://www.yagarto.de/howto/yagarto2/index.html 를 참조해서 진행했다.
이클립스 버전의 차이로 좀 다른 부분이 있지만, 크게 차이는 없다. 언제 한번 정리하자.

2012년 8월 7일 화요일

USB to Serial v1.0

eagle의 사용법도 익히고, 필요한 보드도 만들어보고, 겸사겸사 해봤다.
동작이 잘 되는지는 아직 테스트를 안해봤지만, 윈도우7에서 인식은 제대로 되는 듯 하다.


PCB 진행은 http://www.mypcb.co.kr  에서 했는데, 진행은 개느리다.
7월 12일에 발주를 했는데, 8월 3일 도착했다.
중간에 아무런 notify도 없었다.
그런데 싸다.

제작 진행한 거버화일을 업로드 하려 했더니, 구글 블로그에는 파일 업로드가 안된다.

http://www.ic114.com 에서 조립에 필요한 나머지 부품들과 점프와이어를 주문했다.

2012년 7월 8일 일요일

PIC18F45K20 Configuration Settings


 microchip의 PIC용 MPLAB C 컴파일러에서 작업할 때, C 소스에서 특정 레지스터 값을

#pragma config FOCS = INITO67;

이런 형식으로 지정할 수 있다. 이렇게 설정 할 수 있는 항목과 값들은 특정 mcu 마다 다르며, 그 내용은 mplab c 컴파일러가 설치된 곳의 doc 디렉토리에서 도움말 화일을 참조하여 알 수 있다. 또는 mpasm 디렉토리의 해당 mcu의 *.inc 화일에서 참조 할 수 있다.

다음은 PIC18F45K20의 configuration Setting 이다.

;==========================================================================
;
;   IMPORTANT: For the PIC18 devices, the __CONFIG directive has been
;              superseded by the CONFIG directive.  The following settings
;              are available for this device.
;
;   Oscillator Selection bits:
;     FOSC = LP            LP oscillator
;     FOSC = XT            XT oscillator
;     FOSC = HS            HS oscillator
;     FOSC = RC            External RC oscillator, CLKOUT function on RA6
;     FOSC = EC            EC oscillator, CLKOUT function on RA6
;     FOSC = ECIO6         EC oscillator, port function on RA6
;     FOSC = HSPLL         HS oscillator, PLL enabled (Clock Frequency = 4 x FOSC1)
;     FOSC = RCIO6         External RC oscillator, port function on RA6
;     FOSC = INTIO67       Internal oscillator block, port function on RA6 and RA7
;     FOSC = INTIO7        Internal oscillator block, CLKOUT function on RA6, port function on RA7
;
;   Fail-Safe Clock Monitor Enable bit:
;     FCMEN = OFF          Fail-Safe Clock Monitor disabled
;     FCMEN = ON           Fail-Safe Clock Monitor enabled
;
;   Internal/External Oscillator Switchover bit:
;     IESO = OFF           Oscillator Switchover mode disabled
;     IESO = ON            Oscillator Switchover mode enabled
;
;   Power-up Timer Enable bit:
;     PWRT = ON            PWRT enabled
;     PWRT = OFF           PWRT disabled
;
;   Brown-out Reset Enable bits:
;     BOREN = OFF          Brown-out Reset disabled in hardware and software
;     BOREN = ON           Brown-out Reset enabled and controlled by software (SBOREN is enabled)
;     BOREN = NOSLP        Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled)
;     BOREN = SBORDIS      Brown-out Reset enabled in hardware only (SBOREN is disabled)
;
;   Brown Out Reset Voltage bits:
;     BORV = 30            VBOR set to 3.0 V nominal
;     BORV = 27            VBOR set to 2.7 V nominal
;     BORV = 22            VBOR set to 2.2 V nominal
;     BORV = 18            VBOR set to 1.8 V nominal
;
;   Watchdog Timer Enable bit:
;     WDTEN = OFF          WDT is controlled by SWDTEN bit of the WDTCON register
;     WDTEN = ON           WDT is always enabled. SWDTEN bit has no effect
;
;   Watchdog Timer Postscale Select bits:
;     WDTPS = 1            1:1
;     WDTPS = 2            1:2
;     WDTPS = 4            1:4
;     WDTPS = 8            1:8
;     WDTPS = 16           1:16
;     WDTPS = 32           1:32
;     WDTPS = 64           1:64
;     WDTPS = 128          1:128
;     WDTPS = 256          1:256
;     WDTPS = 512          1:512
;     WDTPS = 1024         1:1024
;     WDTPS = 2048         1:2048
;     WDTPS = 4096         1:4096
;     WDTPS = 8192         1:8192
;     WDTPS = 16384        1:16384
;     WDTPS = 32768        1:32768
;
;   CCP2 MUX bit:
;     CCP2MX = PORTBE      CCP2 input/output is multiplexed with RB3
;     CCP2MX = PORTC       CCP2 input/output is multiplexed with RC1
;
;   PORTB A/D Enable bit:
;     PBADEN = OFF         PORTB<4:0> pins are configured as digital I/O on Reset
;     PBADEN = ON          PORTB<4:0> pins are configured as analog input channels on Reset
;
;   Low-Power Timer1 Oscillator Enable bit:
;     LPT1OSC = OFF        Timer1 configured for higher power operation
;     LPT1OSC = ON         Timer1 configured for low-power operation
;
;   HFINTOSC Fast Start-up:
;     HFOFST = OFF         The system clock is held off until the HFINTOSC is stable.
;     HFOFST = ON          HFINTOSC starts clocking the CPU without waiting for the oscillator to stablize.
;
;   MCLR Pin Enable bit:
;     MCLRE = OFF          RE3 input pin enabled; MCLR disabled
;     MCLRE = ON           MCLR pin enabled; RE3 input pin disabled
;
;   Stack Full/Underflow Reset Enable bit:
;     STVREN = OFF         Stack full/underflow will not cause Reset
;     STVREN = ON          Stack full/underflow will cause Reset
;
;   Single-Supply ICSP Enable bit:
;     LVP = OFF            Single-Supply ICSP disabled
;     LVP = ON             Single-Supply ICSP enabled
;
;   Extended Instruction Set Enable bit:
;     XINST = OFF          Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
;     XINST = ON           Instruction set extension and Indexed Addressing mode enabled
;
;   Background Debugger Enable bit:
;     DEBUG = ON           Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit Debug
;     DEBUG = OFF          Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
;
;   Code Protection Block 0:
;     CP0 = ON             Block 0 (000800-001FFFh) code-protected
;     CP0 = OFF            Block 0 (000800-001FFFh) not code-protected
;
;   Code Protection Block 1:
;     CP1 = ON             Block 1 (002000-003FFFh) code-protected
;     CP1 = OFF            Block 1 (002000-003FFFh) not code-protected
;
;   Code Protection Block 2:
;     CP2 = ON             Block 2 (004000-005FFFh) code-protected
;     CP2 = OFF            Block 2 (004000-005FFFh) not code-protected
;
;   Code Protection Block 3:
;     CP3 = ON             Block 3 (006000-007FFFh) code-protected
;     CP3 = OFF            Block 3 (006000-007FFFh) not code-protected
;
;   Boot Block Code Protection bit:
;     CPB = ON             Boot block (000000-0007FFh) code-protected
;     CPB = OFF            Boot block (000000-0007FFh) not code-protected
;
;   Data EEPROM Code Protection bit:
;     CPD = ON             Data EEPROM code-protected
;     CPD = OFF            Data EEPROM not code-protected
;
;   Write Protection Block 0:
;     WRT0 = ON            Block 0 (000800-001FFFh) write-protected
;     WRT0 = OFF           Block 0 (000800-001FFFh) not write-protected
;
;   Write Protection Block 1:
;     WRT1 = ON            Block 1 (002000-003FFFh) write-protected
;     WRT1 = OFF           Block 1 (002000-003FFFh) not write-protected
;
;   Write Protection Block 2:
;     WRT2 = ON            Block 2 (004000-005FFFh) write-protected
;     WRT2 = OFF           Block 2 (004000-005FFFh) not write-protected
;
;   Write Protection Block 3:
;     WRT3 = ON            Block 3 (006000-007FFFh) write-protected
;     WRT3 = OFF           Block 3 (006000-007FFFh) not write-protected
;
;   Configuration Register Write Protection bit:
;     WRTC = ON            Configuration registers (300000-3000FFh) write-protected
;     WRTC = OFF           Configuration registers (300000-3000FFh) not write-protected
;
;   Boot Block Write Protection bit:
;     WRTB = ON            Boot Block (000000-0007FFh) write-protected
;     WRTB = OFF           Boot Block (000000-0007FFh) not write-protected
;
;   Data EEPROM Write Protection bit:
;     WRTD = ON            Data EEPROM write-protected
;     WRTD = OFF           Data EEPROM not write-protected
;
;   Table Read Protection Block 0:
;     EBTR0 = ON           Block 0 (000800-001FFFh) protected from table reads executed in other blocks
;     EBTR0 = OFF          Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
;
;   Table Read Protection Block 1:
;     EBTR1 = ON           Block 1 (002000-003FFFh) protected from table reads executed in other blocks
;     EBTR1 = OFF          Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
;
;   Table Read Protection Block 2:
;     EBTR2 = ON           Block 2 (004000-005FFFh) protected from table reads executed in other blocks
;     EBTR2 = OFF          Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
;
;   Table Read Protection Block 3:
;     EBTR3 = ON           Block 3 (006000-007FFFh) protected from table reads executed in other blocks
;     EBTR3 = OFF          Block 3 (006000-007FFFh) not protected from table reads executed in other blocks
;
;   Boot Block Table Read Protection bit:
;     EBTRB = ON           Boot Block (000000-0007FFh) protected from table reads executed in other blocks
;     EBTRB = OFF          Boot Block (000000-0007FFh) not protected from table reads executed in other blocks
;
;==========================================================================
;==========================================================================
;
;       Configuration Bits
;
;   NAME            Address
;   CONFIG1H        300001h
;   CONFIG2L        300002h
;   CONFIG2H        300003h
;   CONFIG3H        300005h
;   CONFIG4L        300006h
;   CONFIG5L        300008h
;   CONFIG5H        300009h
;   CONFIG6L        30000Ah
;   CONFIG6H        30000Bh
;   CONFIG7L        30000Ch
;   CONFIG7H        30000Dh
;
;==========================================================================

2012년 7월 5일 목요일

Ateml JTAGICE3



'당근이의 AVR 갖고 놀기' 카페에서 중고로 구입. 20만원.

avr 같은 프로세서를 사용하는데 좀 과하지 않을까 싶지만, 디버거에 한번 익숙해지면... 이게 없으면 아랫도리가 허전한거다.

그런데 가지고 있는 ATmega128보드와 JTAG 핀 배치가 틀리다. atmel의 핀 배치를 레퍼런스로.


이 핀배치를 기준으로 하자.

Syntax Highlighter를 구글 블로그(blogspot, blogger)에

참고 사이트 : http://anshnote.blogspot.kr/2011/07/syntax-highlighter-blogger.html

디자인 -> 템플릿디자이너 -> 고급 -> css추가
.dp-highlighter
{
        font-family: "Consolas", "Monaco", "Courier New", Courier, monospace;
        font-size: 12px;
        background-color: #E7E5DC;
        width: 99%;
        overflow: auto;
        margin: 18px 0 18px 0 !important;
        padding-top: 1px; /* adds a little border on top when controls are hidden */
}

/* clear styles */
.dp-highlighter ol,
.dp-highlighter ol li,
.dp-highlighter ol li span 
{
        margin: 0;
        padding: 0;
        border: none;
}

.dp-highlighter a,
.dp-highlighter a:hover
{
        background: none;
        border: none;
        padding: 0;
        margin: 0;
}

.dp-highlighter .bar
{
        padding-left: 45px;
}

.dp-highlighter.collapsed .bar,
.dp-highlighter.nogutter .bar
{
        padding-left: 0px;
}

.dp-highlighter ol
{
        list-style: decimal; /* for ie */
        background-color: #fff;
        margin: 0px 0px 1px 45px !important; /* 1px bottom margin seems to fix occasional Firefox scrolling */
        padding: 0px;
        color: #5C5C5C;
}

.dp-highlighter.nogutter ol,
.dp-highlighter.nogutter ol li
{
        list-style: none !important;
        margin-left: 0px !important;
}

.dp-highlighter ol li,
.dp-highlighter .columns div
{
        list-style: decimal-leading-zero; /* better look for others, override cascade from OL */
        list-style-position: outside !important;
        border-left: 3px solid #6CE26C;
        background-color: #F8F8F8;
        color: #5C5C5C;
        padding: 0 3px 0 10px !important;
        margin: 0 !important;
        line-height: 14px;
}

.dp-highlighter.nogutter ol li,
.dp-highlighter.nogutter .columns div
{
        border: 0;
}

.dp-highlighter .columns
{
        background-color: #F8F8F8;
        color: gray;
        overflow: hidden;
        width: 100%;
}

.dp-highlighter .columns div
{
        padding-bottom: 5px;
}

.dp-highlighter ol li.alt
{
        background-color: #FFF;
        color: inherit;
}

.dp-highlighter ol li span
{
        color: black;
        background-color: inherit;
}

/* Adjust some properties when collapsed */

.dp-highlighter.collapsed ol
{
        margin: 0px;
}

.dp-highlighter.collapsed ol li
{
        display: none;
}

/* Additional modifications when in print-view */

.dp-highlighter.printing
{
        border: none;
}

.dp-highlighter.printing .tools
{
        display: none !important;
}

.dp-highlighter.printing li
{
        display: list-item !important;
}

/* Styles for the tools */

.dp-highlighter .tools
{
        padding: 3px 8px 3px 10px;
        font: 9px Verdana, Geneva, Arial, Helvetica, sans-serif;
        color: silver;
        background-color: #f8f8f8;
        padding-bottom: 10px;
        border-left: 3px solid #6CE26C;
}

.dp-highlighter.nogutter .tools
{
        border-left: 0;
}

.dp-highlighter.collapsed .tools
{
        border-bottom: 0;
}

.dp-highlighter .tools a
{
        font-size: 9px;
        color: #a0a0a0;
        background-color: inherit;
        text-decoration: none;
        margin-right: 10px;
}

.dp-highlighter .tools a:hover
{
        color: red;
        background-color: inherit;
        text-decoration: underline;
}

/* About dialog styles */

.dp-about { background-color: #fff; color: #333; margin: 0px; padding: 0px; }
.dp-about table { width: 100%; height: 100%; font-size: 11px; font-family: Tahoma, Verdana, Arial, sans-serif !important; }
.dp-about td { padding: 10px; vertical-align: top; }
.dp-about .copy { border-bottom: 1px solid #ACA899; height: 95%; }
.dp-about .title { color: red; background-color: inherit; font-weight: bold; }
.dp-about .para { margin: 0 0 4px 0; }
.dp-about .footer { background-color: #ECEADB; color: #333; border-top: 1px solid #fff; text-align: right; }
.dp-about .close { font-size: 11px; font-family: Tahoma, Verdana, Arial, sans-serif !important; background-color: #ECEADB; color: #333; width: 60px; height: 22px; }

/* Language specific styles */

.dp-highlighter .comment, .dp-highlighter .comments { color: #008200; background-color: inherit; }
.dp-highlighter .string { color: blue; background-color: inherit; }
.dp-highlighter .keyword { color: #069; font-weight: bold; background-color: inherit; }
.dp-highlighter .preprocessor { color: gray; background-color: inherit; }
그리고 </head>태그 바로앞에 밑에 코드를 붙여 넣는다.














이제는 다음과 같이 사용.

<pre>, <textarea> 두 가지 태그 모두 사용할 수 있다. 위 코드는 <pre>로 열고 <textarea> 코드가 포함된 소스 코드.

 class 속성에 사용할 수 있는 언어 코드
언어class
C/C++cpp, c, c++
C#c#, c-sharp, csharp
CSScss
Delphidelphi, pascal
Javajava
Java Scriptjs, jscript, javascript
PHPphp
Pythonpy, python
Rubyrb, ruby, rails, ror
Sqlsql
VBvb, vb.net
XML/HTMLxml, html, xhtml, xslt