embeded/ARM2011. 8. 4. 16:57
NEON은 ARM 코어를 위한 SIMD 엔진이다.
ffmpeg 등이 ARM용 NEON을 지원하는듯 하다.

The ARM® NEON™ general-purpose SIMD engine efficiently processes current and future multimedia formats, enhancing the user experience.

NEON technology can accelerate multimedia and signal processing algorithms such as video encode/decode, 2D/3D graphics, gaming, audio and speech processing, image processing, telephony, and sound synthesis by at least 3x the performance of ARMv5 and at least 2x the performance of ARMv6 SIMD.

NEON technology is cleanly architected and works seamlessly with its own independent pipeline and register file.

NEON technology is a 128 bit SIMD (Single Instruction, Multiple Data) architecture extension for the ARM Cortex™-A series processors, designed to provide flexible and powerful acceleration for consumer multimedia applications, delivering a significantly enhanced user experience.  It has 32 registers, 64-bits wide (dual view as 16 registers, 128-bits wide.


[링크 : http://www.arm.com/products/processors/technologies/neon.php]
 


'embeded > ARM' 카테고리의 다른 글

winARM  (0) 2012.01.12
ARM infocenter  (0) 2011.12.10
arm용 linux 패치  (0) 2011.06.20
ARM JTAG / Wiggler + H-JTAG  (0) 2010.07.16
ARM용(암용) 툴체인, 컴파일러 - arm-linux-gcc : tool chain for ARM  (0) 2010.07.03
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 7. 27. 15:51
AVR Studio의 ISP 메뉴에서 보면
"ELF Production File Format" 이라는 항목이 존재한다.
이 ELF가 Unix/Linux의 ELF 인지는 모르겠지만 -_-
아무튼 퓨즈비트/락비트 전부 하나의 파일에 넣는 매우 편한 방법중에 하나이다.


그런데 이거 생성을 하려고 했더니...
"A Problem occured when executing the command. See the command output for more info."


"The contents of the HEX file does not fit in the selected device"


요따구로 배를짼다 -_-

이러한 문제가 발생하는 건
1. 파일 경로상에 한글이 들어간 경우(AVR Studio 4 V4.1 Build 684 에서 테스트시 한글 경로 문제 없음)
2. WinAVR이 설치된 경우/ 혹은 경로가 이상하게 들어간경우
   (C:\WinAVR-20100110\bin;C:\WinAVR-20100110\utils\bin 두개의 패스가 들어가 있는데
    WinAVR 버전 문제이거나, utils\bin 까지 잡혀서 인지는 미지수..)

머.. 안되면 둘다 해봐야 하려나?


---
흐음.. ELF인건 맞는듯 -ㅁ-
그러면.. AVR Studio에서 이걸 인식해서 따로 저장하는 거겠....지?
설마 -_- AVR 칩 자체적으로 ELF를 인식하는 것 일리는 -ㅁ-!
(머.. 어짜피 퓨즈비트도 메모리의 특정 영역으로 몇 바이트만 잡아먹는거라면 충분히 가능하겠지만..)
$ readelf -a avrstudio.elf
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Atmel AVR 8-bit microcontroller
  Version:                           0x1
  Entry point address:               0x0
  Start of program headers:          52 (bytes into file)
  Start of section headers:          180 (bytes into file)
  Flags:                             0x85
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         4
  Size of section headers:           40 (bytes)
  Number of section headers:         6
  Section header string table index: 1

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .shstrtab         STRTAB          00000000 0001a4 000028 00      0   0  0
  [ 2] .text             PROGBITS        00000000 0001cc 004852 00  AX  0   0  2
  [ 3] .fuse             PROGBITS        00820000 004a1e 000003 00  WA  0   0  1
  [ 4] .lock             PROGBITS        00830000 004a21 000001 00  WA  0   0  1
  [ 5] .signature        PROGBITS        00840000 004a22 000003 00  WA  0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

There are no section groups in this file.

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x0001cc 0x00000000 0x00000000 0x04852 0x04852 R E 0x1
  LOAD           0x004a1e 0x00820000 0x00820000 0x00003 0x00003 RW  0x1
  LOAD           0x004a21 0x00830000 0x00830000 0x00001 0x00001 RW  0x1
  LOAD           0x004a22 0x00840000 0x00840000 0x00003 0x00003 RW  0x1

 Section to Segment mapping:
  Segment Sections...
   00     .text
   01     .fuse
   02     .lock
   03     .signature

There is no dynamic section in this file.

There are no relocations in this file.

There are no unwind sections in this file.

No version information found in this file.
 
 

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

nop  (2) 2011.10.31
ATmega64 timer 설정  (0) 2011.10.28
IAR compiler 컴파일시 이미지 크기 보기  (3) 2011.07.25
PINA_Bit0 누구냐 넌! (IAR)  (0) 2011.03.31
AVR - PINA / PORTA / DDRA  (2) 2011.03.31
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 7. 25. 11:10
2.31E 버전의 경우
Options - Settings - Make Control 에
Message Filtering Level 이라는 설정을 All로 바꾸어 주면된다. (기본은 Messages 였던듯)
물론, 빌드이기 때문에 수정사항이 있거나 Build All을 해주어야 원하는 코드 사이즈가 나온다.


Rebuilding target Debug...
filename.c
ICCAVR: --cpu=m64 -ms -o D:\prj\Debug\Obj\ -I C:\Program Files\IAR Systems\Ew23 Evaluation version\avr\SRC\CLIB\INC\ -e -y --initializers_in_flash -z9 --no_clustering --cross_call_passes=2 --debug -DENABLE_BIT_D

   IAR Atmel AVR C/EC++ Compiler V2.28A/WIN, Evaluation Version
   Copyright 1996-2002 IAR Systems. All rights reserved.

  14983 bytes of CODE memory (+ 12 bytes shared)
    599 bytes of DATA memory (+ 40 bytes shared)

Errors: none
Warnings: none
Linking...
XLINK: D:\prj\Debug\Obj\filename.r90 C:\Program Files\IAR Systems\Ew23 Evaluation version\avr\lib\cl3s-ec-sf.r90 -o D:\prj\Debug\Exe\filename.hex -Fintel-standard -
 17 213 bytes of CODE memory (8 range fill)
    801 bytes of DATA memory
Errors: none
Warnings: none
 
Total number of errors: 0
Total number of warnings: 0 

[링크 : http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=35464]
Posted by 구차니
embeded/ARM2011. 6. 20. 00:13

'embeded > ARM' 카테고리의 다른 글

ARM infocenter  (0) 2011.12.10
ARM NEON  (0) 2011.08.04
ARM JTAG / Wiggler + H-JTAG  (0) 2010.07.16
ARM용(암용) 툴체인, 컴파일러 - arm-linux-gcc : tool chain for ARM  (0) 2010.07.03
ARM JTAG 14pin / 20pin 변환하기  (0) 2010.07.01
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 3. 31. 17:58
PINA_Bit0 이런 녀석이 winavr 쪽의 PINA0 이런것과 1:1 매칭이 되는지
PINA0 PORTA0 이런것이 정말 비트 단위로 읽어올수 있고 조작이 가능한지도 모호한 상황인데..
아무튼 아래의 링크는 iar 용 매크로 라던가 변수선언들을 변환하여
일반적인 avr용 컴파일러에서 컴파일이 가능하도록 해주는 래핑소스이다.

#define GPIO_BITREG(port,bitnum) \
        ((volatile BitRegisterType*)_SFR_MEM_ADDR(port) \
        )->bit ## bitnum

#define PINA_Bit0  GPIO_BITREG(PINA,0)
#define PINA_Bit1  GPIO_BITREG(PINA,1)
#define PINA_Bit2  GPIO_BITREG(PINA,2)
#define PINA_Bit3  GPIO_BITREG(PINA,3)
#define PINA_Bit4  GPIO_BITREG(PINA,4)
#define PINA_Bit5  GPIO_BITREG(PINA,5)
#define PINA_Bit6  GPIO_BITREG(PINA,6)
#define PINA_Bit7  GPIO_BITREG(PINA,7)

[링크 : http://www.koders.com/c/fid4B73863201A18CBCB1076C1A7430B0EBF15B6E9F.aspx?s=crc
 


아무튼 자세한건 집에가서 AVR에다가 올려봐야 하려나 -_-
/* Input Pins, Port A */
#define PINA      _SFR_IO8(0x19)
/* Data Direction Register, Port A */
#define DDRA      _SFR_IO8(0x1A)
/* Data Register, Port A */
#define PORTA     _SFR_IO8(0x1B)

/* Port A Data Register - PORTA */
#define    PA7       7
#define    PA6       6
#define    PA5       5
#define    PA4       4
#define    PA3       3
#define    PA2       2
#define    PA1       1
#define    PA0       0

/* Port A Data Direction Register - DDRA */
#define    DDA7         7
#define    DDA6         6
#define    DDA5         5
#define    DDA4         4
#define    DDA3         3
#define    DDA2         2
#define    DDA1         1
#define    DDA0         0

/* Port A Input Pins - PINA */
#define    PINA7        7
#define    PINA6        6
#define    PINA5        5
#define    PINA4        4
#define    PINA3        3
#define    PINA2        2 
#define    PINA1        1
#define    PINA0        0

[출처: C:\WinAVR-20100110\avr\include\avr\iom128.h] 
 
-- 퇴근후 추가
대충해보니 머.. 정의문이라서 정수로 들어가다 보니 아무런 의미도 없는듯 -_-
아무튼, PINA.0 이런식으로 구성이 가능한것은  code vision 쪽 확장인것으로 추측되고
winavr에서는 표준적으로 비트 마스킹을 통해서만 가능한 것으로 추측된다.

[링크 : http://down.file.naver.com/howpc/kin.nhn?m=read&section=read&docid=117760743&page=362]
[링크 : http://cafe359.daum.net/_c21_/bbs_search_read?grpid=1DDsW&fldid=9E8k
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 3. 31. 09:37
아래는 winavr의 iom64.h의 내용중 일부이다
/* Input Pins, Port A */
#define PINA      _SFR_IO8(0x19)

/* Data Direction Register, Port A */
#define DDRA      _SFR_IO8(0x1A)

/* Data Register, Port A */
#define PORTA     _SFR_IO8(0x1B)

정리하자면
PINA는 입력된 값을 읽고
PORTA는 출력할 값을 읽고
DDRA는 그 포트의 방향을 정해준다.

예를들어, UART 같은 경우
TX 값은 PORTA에 쓰고, RX값은 PINA에서 읽는 식이라고 하면 되려나?
Pin* is for read, Port* is for write and DDR* is for direction... 
* = Register ( A, D,C...) 

PIN* is the register you use to read the value on a port if it is an input (so if the corresponding bit in DDR* is '0'). PORT* is used to output values, or to read earlier outputted values back.
 
[링크 : http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=197070]
 


Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 3. 12. 22:13
WINAVR로 프로그램을 하긴 했지만, sizeof로 일일이 확인해본게 아니라 긴가민가 했는데
일단 ATMEGA128은 8bit 프로세서이고, int 형은 2byte이다.


ATmega128   8-bit AVR Microcontroller, 128KB Flash, 64-pin
                   View Parameters



[링크 : http://blog.daum.net/lucifer_blog/38]

 The concept is quite simple. The file types.h includes the ANSI-required file limits.h. It then explicitly tests each of the predefined data types for the smallest type that matches signed and unsigned 1-, 8-, 16-, and 32-bit variables. The result is that my data type UCHAR is guaranteed to be an 8-bit unsigned variable, INT is guaranteed to be a 16-bit signed variable, and so forth. In this manner, the following data types are defined: BOOLEAN, CHAR, UCHAR, INT, UINT, LONG, and ULONG.

Posted by 구차니
embeded/ARM2010. 7. 16. 01:46
저번에 디바이스 마트에서 구매해온 Wiggler 호환 NTC사의 JTAG을 오늘에야 테스트를 해보았다.

일단 설명서에 자사 홈페이지에서 강좌/프로그램을 확인해보라길래 갔더니 요런 내용이 있다.
강좌


[링크 : http://newtc.co.kr/]

일단은 전체강좌를 받고 강좌 1을 읽으니 H-JTAG이라는 녀석을 사용하라고 해서 다운로드 고고싱~
RAR 분할 압축으로 되어있는데  Firefox에서는 이상하게 확장자 없이 저장이 되니 확장자를 붙여주어야 한다.
그리고 빵집 4.0 에서 RAR 이 이상하게 제대로 보이지 않아 그냥 알아서 풀기를 하니 덩그러니 설치파일이 나왔다.
[링크 : http://www.hjtag.com/]

Step 1. 처음 실행하면 아래와 같이 UNKNOWN 으로 나오고,
           기본값은 USB JTAG으로 설정되어있다.

Step 2. Setting - "USB/LPT Selection" 을 선택하면

Step 3. 아래와 같은 다이얼로그가 나오고 LPT로 바꾸어 주면 자동검색한다.


2010.07.17 추가
Contorl - Detect Target을 하면 마지막으로 설정된 포트(USB/LPT)로 타겟 CPU를 확인한다.




Step 4. 자작했다면 핀배열이 다를수 있으므로 "LPT Jtag Setting" 메뉴에서 맞추어 주면된다.

Step 5. 예전에도 드물었겠지만, 프린터 포트가 여러개일 경우 포트를 고르는 화면이다.
           이 경우에는 "LPT Port Setting" 메뉴에서 맞추어 주면된다.

아무튼, 예전에 구매한 NTC JTAG은 이상없이 작동하는 것을 확인했고
아쉽게도.. 예전에 케이블이랑 사와서 낑낑대며 만든 JTAG 케이블은 작동하지 않았다 ㅠ.ㅠ

'embeded > ARM' 카테고리의 다른 글

ARM NEON  (0) 2011.08.04
arm용 linux 패치  (0) 2011.06.20
ARM용(암용) 툴체인, 컴파일러 - arm-linux-gcc : tool chain for ARM  (0) 2010.07.03
ARM JTAG 14pin / 20pin 변환하기  (0) 2010.07.01
ARM JTAG - Wiggler 14pin , 20pin pinout  (0) 2010.06.26
Posted by 구차니
embeded/ARM2010. 7. 3. 01:13

'embeded > ARM' 카테고리의 다른 글

arm용 linux 패치  (0) 2011.06.20
ARM JTAG / Wiggler + H-JTAG  (0) 2010.07.16
ARM JTAG 14pin / 20pin 변환하기  (0) 2010.07.01
ARM JTAG - Wiggler 14pin , 20pin pinout  (0) 2010.06.26
Cortex-A8 ?  (2) 2010.05.10
Posted by 구차니
embeded/ARM2010. 7. 1. 00:21

1  -Vddh (+3.3v)

2  - Vss (ground)

3  - nTRST

4  - Vss (ground)

5  - TDI

6  -Vss (ground)

7  - TMS

8  -Vss (ground)

9  - TCK

10-Vss (ground)

11- TDO

12-nRST (optional)

13- Vddh (+3.3v)

14-Vss (ground)

 

 

 

 

 

 

1  - Vddh (+3.3v)

2  - Vddh (+3.3v)

3  - nTRST

4-Vss (ground)

5  - TDI

6-Vss (ground)

7  - TMS

8-Vss (ground)

9  - TCK

10-Vss (ground)

11 --------

12-Vss (ground)

13 TDO

14-Vss (ground)

15 nRST

16-Vss (ground)

17---------

18-Vss (ground)

19---------

20-Vss (ground)


14핀은 2x7이고
20핀은 2x10이다.

일단 20pin에서 15번 nRST만 아니면 14핀으로도 충분할텐데 조금 아쉬운 감이 있다.
20핀이 없어서 10핀(2x5)로 사왔는데 6핀(2x3)을 사올걸 그랬나보다.

아무튼,
13 -> 2 (반대편 가장 윗줄로)
11 -> 13(뽑아서 아래로 한칸)
12 -> 15(위에넘 옆에꺼 뽑아서 꼽은넘 아래로)
13 -> 12(처음 뽑은넘을 남는 곳으로)
이렇게만 약간 이동시켜 주면 간단하게 해결될 것으로 보인다.


2010/06/26 - [embeded processor/ARM] - ARM JTAG - Wiggler 14pin , 20pin pinout
Posted by 구차니