TMS320F2812의 부트 로더

V

vhn

Guest
안녕,
내가 TI의 TMS320F2812 DSP를 쓰고있어.나는 기존의 부트 로더에서 제공하는 TI의 수정 및 그 화상을 부팅 ROM을 누릅니다.내가 TI의 웹사이트에서 검색합니다.그들은 부팅 코드를 사용자 정의에 대해 얘기하지만 그들은 어떻게 부팅 ROM을 수정한 코드를 다운로드하는 방법에 대한 설명을하지.
이게 가능한가요?누구도 이런 짓을 한 적이 있습니까?

감사합니다,
vhn

 
modify existing bootloader code in ROM.

당신은 ROM에 들어 기존 부트 로더 코드를 수정할 수없습니다.당신은 ""에서 시동 말할 수 다른곳 아니지만 ROM에서 부트 로더.for details

자세한 내용은 문서를 참조하십시오 SPRU095<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />

- Google에서 쉽게 얻을 수있어

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
 
안녕하세요 Misiek.power,
답장을 보내주셔서 감사합니다.
만약 우리가 부팅 코드를 수정할 수 없다면, 그때 우리는 우리 자신의 부팅 코드를 한 분야의 기존 가질 수있습니다 그것은 언제든지 덮어쓰기되지 않도록?
왜냐하면 나의 응용 프로그램을 플래시에 소프트웨어의 두 가지 버전으로 유지하기위한 호출이 뭘 원하는거야.런타임에서, 그들의 부트 로더를 실행할 어떤 결정을해야합니다.
내가 직면하고있어 한 가지 더 문제는 컴파일러에서 Pragma 지시자에 대해서입니다.만약 내가 코드 "#에서 Pragma CODE_SECTION / DATA_SECTION에 쓸 ..."컴파일하고, 그것을 그들에게 절대적인 주소를 첨부할 것인가?이 경우, 내 응용 프로그램이 작동하지 않을 수있습니다.
부탁하는 것이 좋습니다.

감사합니다,
vhn

 
내 프로젝트, 어디 메인 플래시 진보적인 업그레 이드, 난 준비가 코드의 있음
내가 마지막 섹터에 저장되어있는 (출처 = 0x3F6000, 길이 = 0x001F80).이 코드 ( "부트 로더") 때마다 프로세서를 실행을 시작합니다.
address in flash), program waits for data, which are programmed into flash (address range 0x380000 - 0x3F5FFF only - can not overwrite my bootloader

만약 특정 조건을 충족하는 (어떤 가치에 플래시 FLAGA_FLASH
주소를 아래에 저장되어있는 경우), 프로그램 플래시 (주소 범위 0x380000 - 0x3F5FFF 단 - 내 부트 로더를 덮어쓸 수없습니다 프로그래밍하는 데이터에 따라 달라집니다 기다립니다

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />

).
다른 경우에 - 그것을 메인 프로그램에 (는 0x380000)에서 시작 점프.

이러한 "부트 로더"일반적인 프로그램으로 작성되고있다.모두 당신이 할 필요가 어디에 저장할 수 링커 얘기하는 것입니다 (귀하의 프로젝트에 관련된 파일을 cmd를) *. 편집 겠어.
section is put (into section named FLASH
, which is defined as origin = 0x3F6000, length = 0x001F80
):

예제 파일 (아래 attenttion 돈을 어디에 *. 텍스트
섹션을 섹션에 플래시가
원산지로
정의라는 (에넣습니다 제공됩니다 = 0x3F6000, 길이 = 0x001F80)
:
코드 :/************************************************* ***************************/

/ TMS320F2812 * 용 * 링커 명령어 파일을 /

/ * 독립형 - Flash 응용 프로그램 준비 * /

/ * 코드 플래시에 저장하고 시작하는 동안 * - 업 RAM을 확보 복사 /

/************************************************* ***************************/

- m의 pstn.map / * generowanie pliku z는 맵 symboli 승 pamięci * /메모리

(페이지 0 :

RAML0L1 (RWX) : 출처 = 0x008000, 길이 = 0x002000 / * *== L0L1 Saram의 보호 /

FLAGA (RW)를 : 출처 = 0x3F5FFF, 길이 = 0x000001

플래시 (RWX) : 출처 = 0x3F6000, 길이 = 0x001F80

CSM_RSVD (R)은 : 출처 = 0x3F7F80, 길이 = 0x000076

BEGIN_FLASH (RX) : 출처 = 0x3F7FF6, 길이 = 0x000002

비밀 번호 (R)은 : 출처 = 0x3F7FF8, 길이 = 0x000008

리셋 (RX) : 출처 = 0x3FFFC0, 길이 = 0x000002페이지 1 :

RAMM0 (RW)를 : 출처 = 0x000000, 길이 = 0x000400

RAMM1 (RW)를 : 출처 = 0x000400, 길이 = 0x000400

RAMH0 (RW)를 : 출처 = 0x3F8002, 길이 = 0x001FFE

PIEVT (RW)를 : 출처 = 0x000d02, 길이 = 0xFE

)항과

(Flash28_API :

(

(. econst) lFlash2812_API_V210.lib

(. 텍스트) lFlash2812_API_V210.lib

)를 LOAD = 플래시,

도망 = RAML0L1,

LOAD_START (_Flash28_API_LoadStart)

LOAD_END (_Flash28_API_LoadEnd)

RUN_START (_Flash28_API_RunStart)

페이지 = 0/ * domyslna lokalizacja sekcji, gdy brak 시까지 nich pragm xxxx_SECTION * /

/ * opisy obszarów skopiowane z는 PDFów różnych SPRUxxx * /

. 텍스트 : "플래쉬 페이지 = 0 / * 실행 코드와 부동 소수점 상수 * /

. cinit : "플래쉬 페이지 = 0 / 명시적으로 초기화된 전역 변수와 정적 변수 * * 용 테이블 /

. 재설정 : "재설정 페이지 = 0, 유형 = DSECT / * DSECT = 더미 섹션 * /

. CIO는 : "RAMM0, page = 1은 / * 데이터 섹션 (. CIO)는 RAM을 * /

. ebss : "RAMH0 page = 1은 / * 극동 전역 / 정적 변수 * /

. econst : "플래쉬 페이지 = 0 / * 극동 상수 변수 * /

스택. : "RAMM1, page = 1은 / * 스택 공간 * /

. esysmem : "RAMM0, page = 1은 / far_malloc 함수 * * 용 /

codestart : "BEGIN_FLASH, 페이지 = 0 / *는 C 오래 지점을 포함하고 환경 설정 루틴 .* /

csm_rsvd : "CSM_RSVD, 페이지 = 0 / * obszar, który musi być wyzerowany, aby 업체인 CSM chronił * układ /

비밀 번호 : "비밀 번호, 페이지 = 0RAM_Code :를 LOAD = 플래시, 페이지 = 0

도망 = RAML0L1, 페이지 = 0

LOAD_START (_RAM_Code_loadstart)

LOAD_END (_RAM_Code_loadend)

RUN_START (_RAM_Code_runstart)FLAGA_FLASH :를 LOAD = FLAGA, 페이지 = 0

)
 

Welcome to EDABoard.com

Sponsor

Back
Top