하드웨어2009. 10. 9. 16:21
900번째 글을 이런내용으로 쓰게 되다니 ㄱ-




회사에 노트북을 포맷하려고 하는데
compaq nx6320 모델이다. 듀얼코어 / SATA 하드인데
XP를 하려고 하니 하드 인식 못한다고 버팅기고, BIOS는 워낙 단순해서 설정가능한 항목이 없다.
일단 SATA native mode 라는게 있는데, 졸음 갈아엎기 상태라서..
save가 제대로 되었었는지 확인을 못하고, 제대로 못해봤다. 다음번에 확실하게 확인하고
SATA native mode가 꺼졌는지 확인해 봐야겠다.

2009.10.28 추가
아래 스샷을 보면 알겠지만, HP BIOS에서 ESC는 변동사항을 취소한다.(cancel)
반드시 F10을 눌러서 Accept 하고 Save and Exit 한다.



[링크 : http://radmoon.egloos.com/1635349]
[링크 : http://animator.egloos.com/3267406]
[링크 : http://h50177.www5.hp.com/support/269843-999/howto/71234.html] << 요거 참고


Native Serial ATA Mode

The advanced features that can be utilized in native mode revolve around improvements to the Serial ATA interconnect. The feature that has generated the most interest in this area is hot plugging, which allows an end user to remove a storage device from a Serial ATA controller while a system is running. This is useful for RAID systems and notebook docking stations with built-in storage devices. However, hot plugging should not be attempted with a system's primary boot device.

Another improvement is finer grained power management. In addition to doing power management on Serial ATA storage devices, the Serial ATA controller itself can be managed so that unused parts of the controller can be put into lower power modes to conserve electricity.

Finally there are features for Serial ATA drivers. There are new control, error and status registers that allow the Serial ATA controller to pass information to the driver about Serial ATA specific features. Also the Serial ATA interconnect configures its own transfer rate so that the driver no longer needs to.


[링크 : http://www.microsoft.com/whdc/device/storage/serialATA_FAQ.mspx]








드라이버를 받아도 USB를 인식할지 미지수라서 드라이버 파일만 하기도 애매하고..


아무튼 AHCI 라는 녀석때문에 SATA를 인식못하는 것이므로
드라이버를 별도로 추가해주면 가능하다고는 한다.



결론.. 대세는 Windows7 이어야 하는 건가!


[링크 : http://jcas.co.kr/zbxe/108245]
[링크 : http://blog.daum.net/idrlee/16100066]

Posted by 구차니
다음 만화 때문에 seti@home에서 한국의 참여율이 좀 오르면 좋겠다는 생각이들긴 하지만
글쎄.. 얼마나 차이가 있으려나..


아무튼 이녀석 안한지도 1년이 넘었다.
간만에 들어가서 봤더니, 아니나 다를까 CUDA를 이용하여 GPU도 연산에 포함시키는 BOINC도 추가되어 있었다.

문제는 NVIDIA에서는 Geforce 8000대 부터 CUDA를 지원하는 점..

[링크 : http://boinc.berkeley.edu/gpu.php]



오랫만에 돌렸더니
471일 만에 켠거구나..

'프로그램 사용 > BOINC - seti@home' 카테고리의 다른 글

seti@home cuda 연산  (2) 2009.10.17
seti@home boinc cuda 연산  (0) 2009.10.17
cuda로 돌린 credit  (0) 2009.10.16
seti@home cuda  (2) 2009.10.15
seti@home SSE 최적화  (0) 2009.10.13
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2009. 10. 9. 11:21
오랫만에 winAVR을 판올림했는데 거의 1년 정도의 버전 차이가 있었다.
그것만으로는 별 문제가 없을줄 알았는데

이상하게 AVR Studio 에서 make 파일과 avr-gcc를 못찾겠다고 떼를 쓴다.
Build started 9.10.2009 at 11:17:02
Build failed... No build tools defined.

Loaded plugin STK500
Loaded plugin AVR GCC
Loaded partfile: C:\Program Files\Atmel\AVR Tools\PartDescriptionFiles\ATmega128.xml

하단의 메시지에는 이런식으로 plugin AVR GCC가 Loaded로 떠야 하는데,
plugin이 검색하지 못할 경우에는 Fail이 나게 되고, 이 플러그인은 레지스트리를 검색하는 것으로 보인다.


이런 경우에 확인을 해보니,
`HKEY_LOCAL_MACHINE\SOFTWARE\WinAVR\{VERSION}`
라는 레지스트리 키가 제대로 등록되어 있지 않아서 생기는 문제로 파악되었다.
(다른 부분에서도 등록되지만, 이 부분만 삭제되어 있었다.)

아마도 신버전을 먼저 설치하고, 구버전을 나중에 삭제하면서
위의 키를 삭제했기 때문에 발생한 문제라고 생각된다.

해결법으로는
1. winAVR을 삭제 후 재설치한다.
2. 위의 레지스트리값만 추가한다.

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

avr 에서 printf 사용하기  (2) 2009.10.20
7 segment font  (4) 2009.10.16
winAVR outp/inp 매크로  (0) 2009.10.09
ATmega128 UART 에코 서버 만들기 (echo server)  (4) 2009.10.08
ATmega128 USART 사용하기  (0) 2009.10.07
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2009. 10. 9. 10:59
outp() inp()는 매크로이다.
정확한 시기는 모르겠지만, winAVR-20050414 버전 이후 제외된 것으로 보인다.
물론 <compat/deprecated.h> 를 사용하면 호환되도록 작동은 가능할 것으로 보이지만,

문법적으로 깔끔하지 않고, 표준 C를 따르지 않는(이 부분은 좀 이해가 안됨) 이유로 인해서
불편함을 감수하고 위의 매크로가 제외되었다고 한다.

There was a discussion a while back on the avr-gcc mailing list.  Some
"old stuff" has been purged.  Some people are not happy about it.  But
the purged macros were non-standard, had confusing syntax and unclear
semantics, and had been deprecated for over two years, so (IMHO) the
maintainers were justified in purging them.

The quick fix for legacy code is to create a new header (e.g.
"legacy.h") that defines the purged macros for you.  E.g.,

   #define sbi(p,b) (p) |= (1<<(b))
   #define cbi(p,b) (p) &= ~(1<<(b))

etc.  Then #include "legacy.h" in legacy code as a stopgap measure to
get that code to compile with the new compiler.

And be sure to _NOT_ #include "legacy.h" in new code.

Regards,

                               -=Dave

[링크 : http://www.embeddedrelated.com/usenet/embedded/show/25084-1.php]


[링크 : http://winavr.sourceforge.net/]



20091022 추가>
outp(value, PORTn); 은
PORTn = valuel 로 사용하면 된다.

예를들어,
outp(0xff, PORTA); 는
PORTA = 0xff; 로 사용한다.
Posted by 구차니
아 웬지.. 띄어쓰기부터 단어까지
매우 신경쓰일 하루라고 생각이 됩니다.



그래도!! 한글을 사랑하고, 아껴보도록 합시다.



(아 웬지 통신어체도 써서는 안될 것 같은 하루입니다.








구글은 한글날이라고 구글-한글 접속하면 훈민정음으로 꾸며 놨군요.
Posted by 구차니
개소리 왈왈2009. 10. 8. 23:43
큰 사거리에서 길을 건너려고 기다리고 있는데
아니나 다를까 ㄱ- 이상한 사람이 붙어서는 옆에서 교회를 믿고 구원을 받으라고 한다.

그냥 피곤해서 말도 하기 귀찮고 고개나 끄덕끄덕이다가
신호가 바뀌었고


"신호가 바뀌어서 가볼께요"

라고 말하고 슝~ 갔는데






맞은편에 도착하니.. 어떤 남자분 기대고 있다가 일어나서는 오는게
궤적이 나를 향하고 있다!!!!!


ㄱ-


그래서 나는 조금 더 빨리 걸었고
그 사람을 날 따라와서 유월절 어쩌고 하고


나는 손가락으로 맞은편을 가르키며
"저쪽에서 이미 듣고 왔어요"

라고 말하고 슝~ 갔다




니네들끼리도 손발이 안 맞아서 두번이나 세뇌하는건 너무하잖냐~ ㄱ-

'개소리 왈왈' 카테고리의 다른 글

리눅스마스터 2급 1차 시험 신청!  (4) 2009.10.10
공사중  (0) 2009.10.10
winE (와인) 에 대한 잡소리  (0) 2009.10.08
휴먼계좌를 찾아봅시다  (10) 2009.10.06
원사운드 - 펠하우스  (2) 2009.10.05
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2009. 10. 8. 23:13
에코 서버라고 하니 먼가 거창한데,
간단하게 입력하면 그걸 그대로 돌려줘서 화면에 나타나게 하는 프로그램이다.
시리얼로 전송하면, 받는쪽에서 그 값을 돌려주지 않으면 터미널에서 그 값이 출력되지 않는다.
가장 간단하고, 확실한 테스트 방법이라서 일단 echo 하도록 하는데 먼가 험난했다 ㄱ-

아무튼 개인적으로 선호하는 115200bps - N - 8 - 1 로 설정하고, UART0를 통해 UART echo server를 만들어보자





오늘 필요한 녀석은
#include <avr/interrupt.h>

ISR(USART0_RX_vect)
{
    UDR0 = UDR0;
}
요렇게 두 부분이다.

위의 헤더는 ISR() 이라는 매크로를 사용하게 하는 것이고,
ISR은 Interrupt Serive Routine의 약자이다.

예전에는 SIGNAL(SIG_UART0_RECV) 로 사용했을 것이지만,
winAVR 버전이 올라가면서 ISR()로 바뀐 것으로 알고 있다. (물론 사용중인 버전이 20080610 버전으로 좀 오래됐다 ㅠ.ㅠ)

아무튼 USART0_RX_vect 라는 것은 iom128.h의 432 라인에 기술되어있다.
(iom128.h는 <avr/io.h>와 makefile의 cpu 선언에 의해서 자동으로 불려지는 파일이다)
/* USART0, Rx Complete */
#define USART0_RX_vect            _VECTOR(18)
#define SIG_USART0_RECV            _VECTOR(18)
#define SIG_UART0_RECV            _VECTOR(18)

시리얼포트 초기화시에는 당연히 UART RX 인터럽트를 사용하도록 설정을 해야하고,
전역 인터럽트를 사용하도록 해주어야 한다.

UART 인터럽트는 UCSR0A/B/C 레지스터로 조작을 해준다.
    /* for UART */
    /* "BaudRate" related setting */
    UBRR0H = 0;
    UBRR0L = 8; // 115k with U2X = 0
    UCSR0A = 0x00; // U2X = 0;

   /* "Interrupt" related setting */
    UCSR0B = 0x98;

   /* "Sync or Async mode - Parity - stop bits - data bits" related setting*/
    UCSR0C = 0x06; //Asyncronous - no parity - 1bits(stop) - 8bits(data)

UCSR0A  레지스터는 U2X0 를 제외하면 전부 Status Flag 이므로 U2X0를 사용하지 않는다면 0x00으로 설정한다.
UBBR0H 와 UBBR0L 은 BaudRate와 관련된 것으로, 클럭과 원하는 BaudRate에 따라 변하지만,
귀찮으면, 데이터 시트에 나와있는 값으로 입력을 하면된다. (위의 값은 계산하지 않고 그냥 데이터시트 값을 사용한 것이다)

그리고 U2X는 UCSR0A의 비트로, 에러율을 낮추기 위해 2배 속도로 샘플링하는 것이다.
(디바이더(Divider)의 값을 반으로 줄여, 샘플링을 자주해서 값을 놓치지 않도록 한다)

• Bit 1 – U2Xn: Double the USART Transmission Speed
This bit only has effect for the asynchronous operation. Write this bit to zero when using synchronous operation.
Writing this bit to one will reduce the divisor of the baud rate divider from 16 to 8 effectively doubling the transfer rate for asynchronous communication.

UCSR0B  레지스터의 98 값은 인터럽트 관련 설정값이다.
일단 Bit 5를 set 하게 되면, 원하는대로 echo 되지 않으니
    UCSR0B = 0xD8 이나
    UCSR0B = 0x98 로 설정해주면 된다.
(Bit 7 에서 Bit 4까지 1001(2) 이므로 0x90 이고 (RX enable / Receiver Enable)
 Bit 3 으로 인해 0x08, 합쳐서 0x98이 된다.)


UCSR0C  레지스터는 Asynchronous / Synchronous mode 를 고르고,
                어떤 종류의 패리티를 쓸지, 스탑 비트는 몇 비트를 할지, 데이터는 몇 비트로 사용할지 결정한다.
                친숙하게 보는 115200-N-8-1 이러한 설정값에 대한것 중 BaudRate를 제외한 거의 모든것을 결정한다.

그리고 sei() 라는 매크로를 통해, 전역 인터럽트를 사용가능하도록 설정해주어야 한다.
#define sei ()      
#include <avr/interrupt.h>

Enables interrupts by setting the global interrupt mask.
This function actually compiles into a single line of assembly, so there is no function call overhead.

[링크: http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html]

머.. sei() 친구로 cli()도 있지만, 어셈블리 명령어인데 명확한 약자로 보기에는 조금 애매함이 있다.
SEtting global Interrupt
CLearing global Interrupt
more <avr/interrupt.h>

#if defined(__DOXYGEN__)
/** \def sei()
    \ingroup avr_interrupts

    \code #include <avr/interrupt.h> \endcode

    Enables interrupts by setting the global interrupt mask. This function
    actually compiles into a single line of assembly, so there is no function
    call overhead. */
#define sei()
#else  /* !DOXYGEN */
# define sei()  __asm__ __volatile__ ("sei" ::)
#endif /* !DOXYGEN */

#if defined(__DOXYGEN__)
/** \def cli()
    \ingroup avr_interrupts

    \code #include <avr/interrupt.h> \endcode

    Disables all interrupts by clearing the global interrupt mask. This function
    actually compiles into a single line of assembly, so there is no function
    call overhead. */
#define cli()
#else  /* !DOXYGEN */
# define cli()  __asm__ __volatile__ ("cli" ::)
#endif /* !DOXYGEN */



[링크: http://blog.yurihan.net/]

Posted by 구차니
솔찍한 마음으로 그냥 비누나 줍게 하면서 살게 하고 싶은데


푹!푹!푹!


독방이라고 하니.. 웬지 내가 낸 세금이 아깝기도 하고
그래도 저넘 일반실에 쳐 넣으면, 사지가 갈갈이 찢기면 인권단체에서 머라 할지도 모르고
그래서 그냥 독방 넣은거 같긴한데 흐음...



그냥 비누나 줍게시켜!!!
Posted by 구차니
개소리 왈왈2009. 10. 8. 09:46
아는 녀석이랑 이야기하다가 문득 떠오른 막장 발상



Linux에 술(=wine) 먹이면 윈도우가 돌아가는구나~

'개소리 왈왈' 카테고리의 다른 글

공사중  (0) 2009.10.10
유월절이 다가온다고?  (0) 2009.10.08
휴먼계좌를 찾아봅시다  (10) 2009.10.06
원사운드 - 펠하우스  (2) 2009.10.05
세벌식 한글 자판  (6) 2009.10.04
Posted by 구차니
몇일 전, 평소가던 식당이 아닌 다른 식당에서 저녁을 먹다가
애 아버지들의 이야기를 듣게 되었는데

이야기 중에, 대안학교로 남한산성쪽 학교 이야기가 나왔다.
공부도 잘하고, 하고 싶은대로 하고
애들이 가장 좋아하는거 머냐고 물으면 강에서 놀기 이런거 적어 낸다고 하면서
성적도 좋아 좋은 대학교 갔고
처음에는 적응못하다가 금세 따라간다고 이야기를 하는데


웬지 모르게, 결과론적인 모습에 치중을 하는게 아닐까? 라는 아쉬움이 들었다.

공부를 잘한다.
좋은 대학 갓다.
금세 따라가서 더 잘한다.



그러다가 이야기가 계속 진행되었는데



그런 학교 보내고 마음대로 하고 싶긴한데, 문제는
거기는 로또라는 것이다. 잘되면 대박이고 안되면 쪽박 아니냐
"내가 아이 책임져줄 만큼 잘살면 모르겠지만 그게 아니니
그래서 그냥 무난하게 보통 교육을 하는게 좋을것 같다."라는 이야기가 나왔다.



아.. 그래서 요즘 애들이 더더욱 안전빵으로 교육을 받아야만 하고
그것에 최적화가 되어있구나 싶었다.



그 이야기를 하시던 애 딸린 분들의 시대에는 알아서 먹고 살아라, 그래도 부모가 해줄수 있는 최대의 교육은 해주마 였을꺼고
그 부모들은, 넓은 벌판에서 배고프고 힘들지만 공부에 대한 걱정없이 살았고, 그분들의 부모 역시
알아서 굶어죽진 않고 잘 살겠지 하는 마음에 마음놓고 풀어서 키웠을텐데

이제는 그러지 못하고,
내 아이는 그래도 남들만큼은 해야 한다라는 강박관념과
대학도 못가면 인간 구실도 못한다.
대기업은 가야 한다 라는 생각으로 인해서 더더욱 각박한 세상이 되어가는게 아닐까라는 생각이 들었다.


잔인한 말일 수도 있지만,
그 아이가 밥 벌어 먹고 사는건 그 아이 자신이 결정할 일이겠지만

역설적으로... 부모가 이렇게 아이를 생각하는 마음으로 인해 아이를 망치는구나 라는 생각이 들었다.
Posted by 구차니