PIC 코드에 대한 Adress 범위를 지정하는 방법은 무엇입니까?
문제
나는 pic16에 claudiu chiculitas tiny bootloader를 사용하고 싶지만 (내 칩에 맞게 modyfied), 그 부트 로더는 부트 로더를 덮어 쓰는 것을 방지하기 위해 코드를 움직이지 않기 때문에 부트 로더가 덮어 쓰지 않은 것을 수동으로 알아야합니다. 다음과 같은 -ROM 옵션을 사용하려고했습니다.
--rom=default,-0-4,-3f00-3fff
내가 원하는 것은 : 코드 메모리의 첫 4 단어에 코드가 없음, 부트 로더로의 점프가있는 곳이기 때문에 실제 부트 로더가있는 곳이기 때문에 마지막 128 단어의 코드가 없기 때문입니다. -내가 사용하는 것처럼 아무것도하지 않습니다. Hi-Tech PICC STD 컴파일러 (Microchip picmicro) v9.60pl3을 사용하고 있으며 칩은 PIC16F876A입니다.
해결책
사용자 정의 링커 스크립트로이를 수행 할 수도 있습니다. 일반적으로 링커 스크립트는이 라인을 포함하여 재설정 벡터를 먼저 놓고 코드 ( "페이지"라는 페이지에있는 페이지에)를 포함합니다.
CODEPAGE NAME=vectors START=0x0 END=0x29 PROTECTED
CODEPAGE NAME=page START=0x2A END=0x7FFF
Microchip의 FSDEM 보드 (0x0-0x800 범위를 차지하고 프로그램이 0x800에 자체 벡터가있을 것으로 예상)에 사용되는 부트 로더의 경우 링커가 0x800 이하로 사용되는 것을 방지하는 아래 줄로 대체됩니다.
CODEPAGE NAME=boot START=0x0 END=0x7FF PROTECTED
CODEPAGE NAME=vectors START=0x800 END=0x0x829 PROTECTED
CODEPAGE NAME=page START=0x82A END=0x7FFF
제휴하지 않습니다 StackOverflow