본문 바로가기

전체보기

ARM7 강좌 [4] : 레지스터 (출처 : 디지털 동호회) 출처 : 디지털 동호회 ---------------------------------------------------------------------- ARM7 강좌 [4] : 레지스터 ---------------------------------------------------------------------- * ARM7의 레지스터 지난 강좌에서 ARM7에는 31개의 General Purpose 레지스터와 6개의Status 레지스터가 있다고 말씀드렸습니다. 물론 모두 32비트 레지스터 입니다. 그런데 ARM7의 어셈블러에서 사용하는 범용 레지스터 키워드는 r0 에서 r15 까지 16개 밖에는 되지 않습니다. 즉, 다시 말해서 사용자가 한번에 사용할 수 있는 레지스터는 16개 입니다. 그중에 몇개는 프로그.. 더보기
ARM7 강좌 [3] : ARM7의 구조 (출처 : 디지털 동호회) 출처 : 디지털 동호회 ---------------------------------------------------------------------- ARM7 강좌 [3] : ARM7의 구조 ---------------------------------------------------------------------- * ARM7의 구조 1. 레지스터 : ARM7에는 31개의 32Bit 레지스터가 있습니다. 또, 동작모드에 따르는 -여기서 동작모드는 Exception부분에서 자세히 다루겠습니다.- 6개의 Status 레지스터가 있습니다. 2. ALU : 32Bit 연산이 가능한 ALU가 제공됩니다. 그런데 특이한 것은 ALU의 한쪽 입력은 Barrel Shifter라는것이 연결되어 있어서 ALU의 인수 하.. 더보기
ARM7 강좌 2 개요 (출처 : 디지털 동호회) 출처 : 디지털 동호회 ---------------------------------------------------------------------- ARM7 강좌 [2] : 개요 ---------------------------------------------------------------------- * ARM7의 특징 ARM의 가장 큰 특징은 전력을 조금만 소모한다는 것입니다. 일설에 의하 면, ARM을 설계할 때, 요즘 CPU를 설계하는 방법처럼 VHDL등을 사용한 것 이 아니라 일일이 회로를 그려가면서 했다는 설도 있습니다. 사실이야 어 떻든, ARM의 저전력 설계기술은 널리 알려진 사실입니다. 이런 이유 때문 에, ARM CPU는 상대적으로 전력이 중요하게 여겨지는 휴대용 단말기에 많 이 채.. 더보기
'와이브로' 세계표준 쾌거...갈 길 아직은 멀어 - 국제전기통신연합(ITU), 와이브로 IMT-2000 표준으로 채택 - 해외시장 개척에 긍정적인 영향, 하지만 음성통화 등 산적해야 할 문제도 산적 [이데일리 박지환기자] 한국이 세계 최초로 상용화에 성공한 차세대 이동통신 서비스 와이브로(WiBro)가 3세대(G) 이동통신의 여섯번째 표준으로 채택됐다. 스위스 제네바에서 열린 국제전기통신연합(ITU) 전파총회는 18일(현지시각) 와이브로를 포함하는 모바일 와이맥스(Mobile Wimax) 표준을 ITU의 IMT-2000표준의 하나로 채택키로 결의했다. `제3의 통신회선'으로 불리는 와이브로는 대용량의 데이터통신이 가능한 모바일 IP 서비스로 기존 전화망보다 네트워크 구축비용이 저렴하다. 또 현존 이동통신 기술중 최고의 데이터 전송 속도를 구현할 수 있.. 더보기
와이브로 기술, 국제표준으로 채택(종합) 한국 와이브로 기술 국제표준 채택 ITU 전파총회서 승인..中.獨 반대 넘어서 (제네바=연합뉴스) 이 유 특파원 = 우리나라가 세계 최초로 개발한 와이브로(WiBro) 기술이 IMT-2000으로 통칭되는 3세대(G)의 6번째 국제표준으로 채택됐다. 국제전기통신연합(ITU)은 18일 오후 제네바 국제회의센터에서 진행된 전파총회(Radio Assembly) 본회의에서 한국의 와이브로 기술을 3G 국제표준으로 승인했다. 휴대인터넷 또는 모바일 와이맥스로 불리는 와이브로는 이동 중에도 광대역 인터넷 접속이 가능한 무선통신 서비스이다. 와이브로가 3G 국제표준의 하나로 선정됨에 따라, 글로벌 로밍이 가능한 전세계 IMT-2000 주파수를 사용할 수 있게 되는 등 기존의 이동통신 서비스와 동등한 위치에서 경쟁을 벌.. 더보기
자작 패러디 만화 -쥬신왕별과 쥬신왕- by rofk 출처 : 디시인사이드 태사기갤 http://gall.dcinside.com/list.php?id=legend 작성자 : rofk http://gall.dcinside.com/list.php?id=legend&no=108500&page=4 더보기
Ellipse 그리기. 랜덤 함수를 써서 윈도우에 다양한 타원.. 간단하게 CDC::Ellipse() 함수를 이용해서 윈도우에 랜덤한 타원을 출력시키는 프로그램. CBrush와 CPen으로 브러시와 펜을 생성및 초기화 하고 SelectObject 함수로 DC에 선택한다. #include class CEllipseApp: public CWinApp { public: virtual BOOL InitInstance(); }; CEllipseApp theApp; class CMainWnd : public CFrameWnd { public: CMainWnd(); ~CMainWnd(); afx_msg void OnTimer(UINT nIDEvent); DECLARE_MESSAGE_MAP(); }; void CMainWnd::OnTimer(UINT nIDEVENT) { CClien.. 더보기
윈도우즈 그래픽 출력함수 윈도우 그래픽 출력함수들은 모두 CDC멤버함수로 되어있다. GDI객체를 프로그래머가 만들어서 사용할수도 있다. 일반적으로 내부에 있는 GDI객체를 Stock object라 한다. 이는 CDC::SelectStockObject함수를 이용해서 사용할 수 있다. 이것도 마찬가지로 이전의 DC에 설정된 GDI오브젝트를 리턴하게 된다. 작업을 끝낸후 다시 복구해야 한다. 픽셀 관련함수 CDC::SetPixel() CDC::GetPixel() 선그리기 함수 CDC::MoveTo() CDC::LineTo() CDC::PolyLine() CDC::Arc() CDC::PolyBezire() 타원과 다각형 그리기 함수 CDC::Rectangle() CDC::RoundRect() CDC::Ellipse() CDC::Chor.. 더보기
로봇월드 2007. 인간의 감성까지 닮아간다’…로봇의 모든 것. ▲'마이크로소프트 로보틱스 스튜디오(MSRS)'를 사용한 국내 개발 제품들 / 서명덕 기자 로보월드 2007 개막…출시 임박한 신제품 대거 공개 국내 로봇 산업의 현주소 및 미래 로봇산업의 발전 방향을 한눈에 살펴볼 수 있는 국제규모의 로봇전문 전시회 ‘로보월드 2007(http://www.robotworld.or.kr)’이 18일 오전 삼성동 코엑스에서 열렸다. 오는 21일까지 나흘 동안 진행될 이번 행사는 봇관련 제품 및 전문가들이 모두 모여 ▲국제 로봇 산업대전, ▲국제 로봇 콘테스트, ▲국제 로봇 콘퍼런스 및 주요 부대행사로 꾸며졌다. 특히 올해 국제로봇콘테스트는 정보통신부 ‘URC 로봇경진대회’를 통합하여 개최해 전시회 규모가 커졌다. 내년부터는 로보월드 전체를 산자부와 정통부가 공동 주최하는 .. 더보기
윈도우 그래픽 프로그래밍 OnDraw (환경 : VS 2005에서 실행하였다.) 간단하게 프로젝트에서 Line 이란 프로젝트를 생성한다. single document로 생성. 그중 view 클래스에서 OnDraw함수를 찾는다. CLineView::OnDraw() . 이넘이 실질적으로 윈도우에 그림을 뿌려준다... code ---------------------------------------------------------------- void CLineView::OnDraw(CDC* pDC) { CLineDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 여기에 원시 데이터에 대한 그리기 코드를 추가합니다. CPen penRed(PS_SOLID,0,RGB(2.. 더보기
부트로더의 기본 구현 1 저 자 : 유영창 출판일 : 2003년 12월호 부트로더의 주 임무는 커널이 동작할 수 있는 환경을 구성하고 커널을 시작하는 것이다. 정의는 간단하지만 프로세서를 정상적으로 동작시켜야 하기 때문에 그리 만만한 일이 아니다. PXA255 프로세서에서 동작하는 이지부트 프로그램은 두 부분으로 나눠져 있다. 최소한의 환경 설정을 하는 start 프로그램 부분이 있으며, 커널이 부팅하도록 지원하고 개발의 편리함을 제공하는 main 프로그램이 있다. start 프로그램은 모두 ARM 어셈블러로 구성돼 있고 스택이 없기 때문에 다중 호출도 하지 못하는 가장 열악한 환경의 프로그램이다. 이번 호에는 이지부트의 시작점인 start.S를 집중적으로 살펴보고자 한다. 연+재+순+서 1회 2003.10 | 임베디드 프로그래.. 더보기
보드를 살려보자-6 저 자 : 유영창 출판일 : 2003년11월호 == Makefile 리눅스에서 동작하는 gcc는 기본적으로 make 유틸리티를 사용하여 컴파일한다. RAD 툴을 사용하던 프로그래머라면 이 make 유틸리티가 다소 어렵게 느껴질지 모르지만 리눅스 프로그래머거나 기존 펌웨어 프로그래머라면 항상 접하는 유틸리티이다. 리눅스에서 사용되는 make 유틸리티는 매우 유용한 도구이고 개념만 익히고 나면 쉽다는 것을 알 수 있다. make 유틸리티는 기본적으로 Makefile이라는 이름을 갖는 파일을 필요로 한다. 이 Makefile이 바로 컴파일에 관련된 모든 조건을 기록해 놓는 파일이다. 보통 이 Makefile은 구성이 비슷하기 때문에 한번 자신만의 구성을 만들면 이후에 조금씩 수정해서 쓰면 된다. make에 관.. 더보기
보드를 살려보자-5 저 자 : 유영창 출판일 : 2003년11월호 == start.S 어셈블러 에서 가장 먼저 보이는 것은 (1)인데, 이렇게 선언되면 이후 코드의 어드레스 영역이나 기타 조건은 링커 스크립트에 선언된 .text라는 선언에 영향을 받는다. 일반적으로는 프로그램 코드 영역을 의미한다. 하드웨어 리셋이 발생하면 ARM은 0x00000000번지의 명령을 수행한다. 이 번지는 링커 스크립트에 의해서 _start 라벨에 맵핑된다. 좀더 정확히 말하면 링커 스크립트에서 .text에 대해 0x00000000번지에 할당되어 있기 때문이고 _start 라벨이 가장 먼저 기술되었기 때문이다. 이 _start가 0x00000000번지이기 때문에 이 라벨 이후에 인터럽트 벡터 테이블이 들어간다. 그래서 각 벡터 테이블이 수행할 .. 더보기
ARM 부트로더 제작기 보드를 살려보자-1 저 자 : 유영창 출판일 : 2003년11월호 임베디드 시스템에서 하드웨어 설계가 끝나고 제작 후 샘플 보드가 나왔을 때 가장 먼저 하는 것이 보드에 대한 검증이다. 필자가 다니는 회사에서는 이것을 ‘보드 살리기’라는 말로 표현한다. 이 보드 살리기는 운이 좋으면 바로, 운이 나쁘면 언제 끝날지 모르는 피 말리는 시간이 필요하다. 이런 현상이 발생하는 이유는 문제의 원인이 하나가 아니고 여러 가지가 혼재하기 때문이다. 어떤 문제를 해결하는 가장 빠른 방법은 문제의 종류를 구분하는 것이다. 그런데 이 경우에는 이 자체도 매우 어렵다는 것이다. 하드웨어 문제인가? 소프트웨어 문제인가? 때문에 보드 살리기에 필요한 과정을 살펴보고 부트로더와의 관계를 살펴보자. 연+재+순+서 1회 2003.10 | 임베디드 프.. 더보기
임베디드 프로그래머와 부트로더-5 저 자 : 유영창 출판일 : 2003년 10월호 == ARM 프로세서 PXA255는 앞서 언급했듯 ARM 계열이다. 삼성이나 다른 회사에서 만든 프로세서가 ARM 코어를 라이선스한 것과는 다르게 아예 설계 자체를 사서 인텔 자사의 기술을 더한 프로세서이다. 그러나 결국은 이것도 개발자 입장에서 보면 ARM의 한 계열로 봐도 무방하다. 이 프로세서를 이해하면 ARM 코어를 사용하는 다른 프로세서들도 어느 정도 이해가 가능하다 그렇다면 ARM이란 것은 어떤 것일까? 아무래도 이 연재가 ARM용 부트로더를 작성하기 위한 것이므로 ARM 프로세서에 대해 모르고 갈 수는 없다. 그래서 ARM에 대해 잠깐 살펴보자. 우리가 알고 있는 펜티엄은 인텔에서 제작하고 있는 프로세서이다. 하지만 ARM에서 만든 ARM 프로.. 더보기