홈 > 고객/기술지원 > Q & A
i.MX8M | MV8895 | MV8890 | MV7420 | MV5260 | MV5422 | MV4412TAB | MV4412 | S5PV210 | iMX6Q | AM3358
Android | Linux | Windows CE | Firmware
 
정보-SAM8에서 특정 코드영역에 값을 넣는 방법
등록인 : 선기주 |

s3f9444 혹은 s3f9454에서는 오실레이터 리셋 핀을 별도로 옵션으로 지정해야 되는데
레지스터 조작이 아닌 코드영역의 3f번지의 값을 칩을 구울때 부터 입력해야 됩니다.
어셈에서는 쉽게 지정이 가능한데 컴파일러에서는 어렵죠
ewsam8에서는 다음과 같은 방법으로 가능한데요

#pragma location = 0x3f
__root const unsigned char OSC_PIN = 0x03;


혹은
__root const unsigned char OSC_PIN @ 0x3f = 0x03;

이런 식으로 지정하면 롬의 3f번지에 3이라는 값이 기록되게 됩니다.
__root 는 아시겠지만 프로그램에서 사용되지 않으면 컴파일러가 컴파일시 제거시키지 말라는 것입니다.

맵파일을 살펴보면 확실히 지정되있는게 보이죠??

****************************************
* *
* SEGMENTS IN ADDRESS ORDER *
* *
****************************************


SEGMENT SPACE START ADDRESS END ADDRESS SIZE TYPE ALIGN
======= ===== ============= =========== ==== ==== =====
INTVEC (ABS) CODE 0000 - 0001 2 rel 0
CONST_A (ABS) CODE 003F - 003F 1 rel 0 ---------바로 여기
RESET (ABS) CODE 0100 - 0100 1 rel 0
RESET CODE 0101 - 0115 15 rel 0
CODE CODE 0116 - 07CA 6B5 rel 1
TINY2P_ID CODE 07CB dse 0
TINYP_ID_END CODE 07CB dse 0
TINYP_Z_ID CODE 07CB dse 0
---생략---

헥사파일에서도 보입니다.
:0200000001E815
:01003F0003BD ----------------바로 여기
:100100008FE6D942FC00EC22D6CF00FE00CEEBF801
:10011000F605018D07A82008A60801EB0D5600E1A1
:10012000A60905ED01E7460002AFA60802EB28F894
:----생략---
덧글 0 | 엮인글 0
 





 
    39 / 2,657,392
서울특별시 구로구 구로3동 235번지 한신IT타워 1004호 TEL. 02-3283-0101 FAX. 02-3283-0160
사업자등록번호 : 116-81-51889 대표자 : 이현재 E-MAIL : sale@microvision.co.kr
COPYRIGHT 2004 (주)마이크로비젼 ALL RIGHTS RESERVED.
%3Cul+class%3D%22Klocation%22%3E%3Cli+class%3D%22first%22%3E%3Ca+href%3D%22..%2Fhome%2F%22%3EHOME%3C%2Fa%3E%3C%2Fli%3E%3Cli%3E%3Ca+href%3D%22..%2Fhome%2Fsub03.php%22%3E%EA%B3%A0%EA%B0%9D%2F%EA%B8%B0%EC%88%A0%EC%A7%80%EC%9B%90%3C%2Fa%3E%3C%2Fli%3E%3Cli%3E%3Ca+href%3D%22..%2Fhome%2Fsub03.php%3Fmid%3D51%22%3EQ+%26+A%3C%2Fa%3E%3C%2Fli%3E%3C%2Ful%3E