embeded/AVR (ATmega/ATtiny)2009. 3. 19. 16:38
The ORG command is a standard (almost universal) command that tells the assembler where the program is to reside in memory

ORG 명령어는 메모리에 상주할 프로그램의 주소를 알려준다고 되어 있는데,
JMP 와는 다른 듯 한데 무슨 차이일려나..

[출처 :  www.ordersomewherechaos.com/rosso/fetish/m102/web100/docs/assemb-tutorial.html]
링크가 깨져, 구글에서 저장된 페이지로 보시기 바랍니다.


23. ORG
Label     Operation   Operand
optional     ORG      expression

The ORG directive instructs the assembler to continue the assembly from the
memory location specified by the operand. The operand must be an expression
that can be immediately evaluated, and its value must be a valid address (i.e., it
cannot be negative). Thus the operand can be a number, a known symbol, or an
expression that can be evaluated by the assembler at this point. Such an operand
is called “definable.”

[출처 : http://www.davidsalomon.name/assem.advertis/asl.pdf]


ORG expression
Sets the location counter to expression.
[출처 : MASM reference]
Posted by 구차니

댓글을 달아 주세요

  1. 해석이라도 좀 해주시지... 귀찮네 ㅋㅋ
    단어들이 생소하네요.
    -ㅅ-;;

    2009.03.19 19:21 [ ADDR : EDIT/ DEL : REPLY ]
    • 저 ORG가 머의 약자인지 찾을려고 했는데 나오지도 않아서 포기했어요 ㅋㅋ

      어셈블리 명령어인데, 메모리 번지를 바꾸어주는 역활을 한다는데 정확하게 이해를 못하겠더라구요

      2009.03.19 19:24 [ ADDR : EDIT/ DEL ]
  2. Chiwoo

    에ㅔ... ORG라... 학부때만 써봐서 가물가물 하지만 어셈블리 프로그래밍할때 맨처음 시작주소(ORiGin)를 몇번지로하겠다. 이런거 아닌가요. 프로그램 맨 위에

    ORG 0x0100
    LDA 100
    ADD 200
    STA 0x3100

    이런식으로 넣으면 LDA 100이 0x0100 번지에 저장되고 맨처음 부팅하면 0100번지부터 읽어서 시작하는......

    음... 예전일이라 틀릴 수도 있음을 감안해주시길 / :)

    2009.06.23 23:28 [ ADDR : EDIT/ DEL : REPLY ]
    • 헙 감사합니다 ^^
      조금 더 찾아 봐야겠네요 ㅎ

      2009.06.23 23:53 [ ADDR : EDIT/ DEL ]

embeded/AVR (ATmega/ATtiny)2008. 11. 18. 00:15

AVR Studio 에서는 상당 부분이 자동으로 생성된다. (source가 아니라 makefile)
AVR 프로그래밍 처음 단계는 아마도
#include <avr/io.h>가 아닐까 싶은데 이부분을 추적을 해 보았다.

makefile - 자동생성

MCU 에 AVR Studio에서 프로젝트 생성시 선택된 프로세서의 타입이 지정되고
아래의 COMMON 에 -mmcu=atmega128 로 확장이 된다. 일단 avr-gcc의 도움말을 보자면

Usage: avr-gcc [options] file...
Options:
  -pass-exit-codes         Exit with highest error code from a phase
  --help                   Display this information
  --target-help            Display target specific command line options
  --help={target|optimizers|warnings|undocumented|params}[,{[^]joined|[^]separate}]
                           Display specific types of command line options
  (Use '-v --help' to display command line options of sub-processes)
  -dumpspecs               Display all of the built in spec strings
  -dumpversion             Display the version of the compiler
  -dumpmachine             Display the compiler's target processor
  -print-search-dirs       Display the directories in the compiler's search path

  -print-libgcc-file-name  Display the name of the compiler's companion library
  -print-file-name=<lib>   Display the full path to library <lib>
  -print-prog-name=<prog>  Display the full path to compiler component <prog>
  -print-multi-directory   Display the root directory for versions of libgcc
  -print-multi-lib         Display the mapping between command line options and
                           multiple library search directories
  -print-multi-os-directory Display the relative path to OS libraries
  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers
  -Wa,<options>            Pass comma-separated <options> on to the assembler
  -Wp,<options>            Pass comma-separated <options> on to the preprocessor

  -Wl,<options>            Pass comma-separated <options> on to the linker
  -Xassembler <arg>        Pass <arg> on to the assembler
  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor
  -Xlinker <arg>           Pass <arg> on to the linker
  -combine                 Pass multiple source files to compiler at once
  -save-temps              Do not delete intermediate files
  -pipe                    Use pipes rather than intermediate files
  -time                    Time the execution of each subprocess
  -specs=<file>            Override built-in specs with the contents of <file>
  -std=<standard>          Assume that the input sources are for <standard>
  --sysroot=<directory>    Use <directory> as the root directory for headers
                           and libraries
  -B <directory>           Add <directory> to the compiler's search paths
  -b <machine>             Run gcc for target <machine>, if installed
  -V <version>             Run gcc version number <version>, if installed
  -v                       Display the programs invoked by the compiler
  -###                     Like -v but options quoted and commands not executed
  -E                       Preprocess only; do not compile, assemble or link
  -S                       Compile only; do not assemble or link
  -c                       Compile and assemble, but do not link
  -o <file>                Place the output into <file>
  -x <language>            Specify the language of the following input files
                           Permissible languages include: c c++ assembler none
                           'none' means revert to the default behavior of
                           guessing the language based on the file's extension

Options starting with -g, -f, -m, -O, -W, or --param are automatically
 passed on to the various sub-processes invoked by avr-gcc.  In order to pass
 other options on to these processes the -W<letter> options must be used.

For bug reporting instructions, please see:
<URL:http://sourceforge.net/tracker/?atid=520074&group_id=68108&func=browse>.

-m 의 경우 avr-gcc 에 의해서 생성된 하위 프로세서로 자동적으로 넘겨져서 처리가 된다고 한다.
아무튼 처음에 설정하는 <avr/io.h> 는 컴파일러의 include 디렉토리에 위치하는데
기본값으로 설치를 했다면 아래의 경로에 위치하게 된다.


이 파일들 중에서 우리가 보고 싶은것은 io.h 인데 이 파일을 열어 보면


와 같이 #if #elif 로 묶여 있고 그 중에 우리가 찾던
__AVR_ATmega128__ 이라는 선언이 존재 한다. 아마도 -mmcu=atmega128이 이런식으로 치환이 되는 듯 하다.


아무튼 치환될 iom128.h 파일을 열어 보면 우리가 사용하는 일반적인 용어(!) 인
PINA DDRA 등의 선언과 그 에 상응하는 주소를 볼 수 있다.
Posted by 구차니

댓글을 달아 주세요

embeded/AVR (ATmega/ATtiny)2008. 11. 10. 00:21
요즘에는 대부분의 메인보드에 USB만 있을뿐 LPT(패러럴)나 COM(시리얼)이 없는 경우도 상당히 많다.
하지만 AVR을 프로그래밍 하려면 롬 라이터가 있어야 하는데,
이 장비의 경우 고가인데다가, 칩의 핀수에 맞는 커넥터를 구매 하여야 한다.

그런 이유로 현실적인 대안은 USB 시리얼/패러럴이나
시리얼 / 패러럴이 달린 구형 메인보드, 혹은 최상급의 메인보드를 구매 해야 한다.

그렇다고 하기에는 이래저래 돈이 많이 드는 관계로 조금이라도 덜 들고 편한쪽을 택하라면
USB ISP를 구매 하는게 좋을듯 하다.

유니텍의 경우 패러럴 포트를 내부에 26핀으로 별도로 꺼내서 유니텍에서 별도 판매 하는
패러럴 포트를 구매 하면 되지만, 이래저래 가격 부담도 크고, 유니텍스럽게 택배비는 착불이라서 기분도 나쁘고
그냥 USB ISP를 사는게 가장 효율적인 방안으로 생각이 된다.


---
나머지는 구매 후 적도록 ^^;
STK-500 이라는 것과 호환이 되고, USB-ISP 역시 일종의 USB 시리얼로 COM포트로 인식하고
(보드는 USB 시리얼 + STK500 제어용 칩으로 구성) 시리얼로 프로그램을 전송한다.
데이터 시트 상으로는 시리얼 프로그래밍에 관한 항목이 있으므로 이부분을 좀더 읽어 봐야 할 듯 하다.
Posted by 구차니
TAG AVR, iSP, usb

댓글을 달아 주세요

embeded/AVR (ATmega/ATtiny)2008. 11. 7. 23:05
결론 : 실패
원인 : 아직 모름..

일단 Ponyprog에서 포트 자동 탐지를 끄라고 한다.
  • PonyProg2000 (Freeware programmer esp. for PIC, ATmega, serial EEPROMs)
    • The INI file must be modified to get PonyProg to work: change „AutoDetectPorts=NO“!

[출처 : http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/liste.htm.en]

일단 ponyprog.ini의 내용은 아래와 같다.



그리고 나서 해보니 먼가 되는듯한데.. 여전히 -16오류, 장치를 발견하지 못한다고 한다.
그래서 계속 검색을 해보니.. 그런 이유로 USB ISP가 나온거라는 식으로 되어 있어서 좌절 OTL

USB LPT / 도킹 전부 임베디드 장비에서 패러럴이 아닌 프린트 포트로 인식을 해서 안된대나..
일부 외국산 장비중에는 인식하는것도 있지만 강원전자꺼는 드라이버 문제인지 안된다고 한다.

[링크 : http://kldp.org/node/46808]
Posted by 구차니

댓글을 달아 주세요

  1. 정에  如果说生活中有些琐碎小事会令我们烦躁不已、伤透脑筋,那么,管道堵塞应该就是其中一件。这日就需要管道疏通团队登场了,就是人们日常生活中常用到的一种维修服务,一般指家庭下水管道疏通,拼多多空包网 网购10公斤重的电锤 收到的居然是“空包” ,厕所管道疏通,工业管道疏通清洗等。





      工业管道疏通的管道因管道大小用的疏通机差别比较大,100MM一下的管道跟家庭下水道疏通一样疏通。对大的管道用管道疏通车,高压清洗车来做。管道疏通:一般是指管道堵塞或排水不畅时,使用物理或化学的方法使管道恢复正常排水或改善排水状况的服务,原油行情 瑞达期货 菜粕现货调涨菜油持平,菜粕涨幅受限菜。


      管道堵塞的原因分析:植物油脂、动物油脂、粪便等黏稠物流进管道,粘到管道壁上,形成垢体,头发丝、破布条、装修的残渣,微生物的繁殖都会在管道内壁形成垢体,日久累积,管道流通不畅或堵死。


    니뉴

    2018.07.02 15:34 [ ADDR : EDIT/ DEL : REPLY ]
  2. 되및首页 > 社区 > 正文


    宣桥镇渣液分离车电话


    来源网络

    发布时间:2018-6-22 1:02
    此页面信息为商业广告







    上海赣泸市政工程有限公司主要针对市政工程,环卫清运,工业化工,小区物业,宾馆饭店,高校,企业厂矿等管道疏通、清洗;化粪池、污水池、工业废污环保处置工程,原油期货上市 汇率期货暨选择权趋势专栏-观望欧盟会议 欧元,取代传统靠人工作业施工方法,原油投资 瑞达期货:PTA成本端支撑坚挺,维持高位震荡 -;避免了施工期间造成意外事故。




    宣桥镇渣液分离车


    城市下水管道疏通的工作十分重要,它保证了这个城市每天发作的污水被有用的运输到自然环境中被净化。若是没有管道疏通人员的勤劳工作,咱们这个城市一定是腐臭不胜,空气中都充습스

    2018.07.02 15:34 [ ADDR : EDIT/ DEL : REPLY ]

embeded/AVR (ATmega/ATtiny)2008. 10. 28. 09:59
근 2일간을 고생하게 한 문제인데.. 이 문제를 해결하기 위해서 무려 AVR Studio 신버전을 받는데 1시간이나 걸리고,
WinAVR 마저도 업그레이드 했지만..(머.. 덕분에라고 하면 다행인가?) 문제가 해결되지 않았다.

예전에도 AVR Studio를 사용할때 이러한 문제가 없었는데 왜 이번에는 생겼을까 고심을 해봤더니
예전에는 c:\source에 저장을 했었다는 점이 달랐을뿐 차이점이 없었다.

그래서 오늘 출근하면서 지하철에서 실험을 해봤더니. AVR Studio 인지 아니면 avr-gcc plug 쪽인지는 모르겠지만
아무튼 Makefile export 하는 쪽에서 한글 디렉토리명을 인식하지 못한다는 점을 알아 냈다.


아래의 Message를 보면 gcc plug-in : Exported makefile to.. 영문으로된 경로로는 이상이 없었지만
동일한 파일을 한글 디렉토리가 들어간 경로에 저장을 하려고 하면 Failed opening file 이라고 에러를 발생한다.
Posted by 구차니

댓글을 달아 주세요

  1. 펌웨어 프로그래밍을 하시는가봐요? ^^
    오옷~~~~~~~~ 친해지고 싶어요 ~~~~

    2008.10.28 10:39 [ ADDR : EDIT/ DEL : REPLY ]
    • 위성셋탑하고 있고, AVR은 순전히 개인취향으로
      개인공부 중이랍니다 ^^; 근 1년 넘게 보고 있는데
      아직 개발도 시작을 못했어요 ㅋ

      2008.10.28 11:55 [ ADDR : EDIT/ DEL ]
  2. avr이 뭐하는 건가요?
    (구차니님 블로그도 외계어!!^o^)

    2008.10.28 22:26 [ ADDR : EDIT/ DEL : REPLY ]
    • 마이콤/마이컴 이라고 해서 소형 cpu에요 ㅎㅎ

      2008.10.28 22:47 [ ADDR : EDIT/ DEL ]