Bootloader sa TMS320F2812

V

vhn

Guest
Hi,
Ako ay nagtatrabaho sa TI TMS320F2812 DSP.Gusto kong baguhin ang umiiral na tagapagsakay boot na ibinigay ng TI at paso ito sa boot ROM.Hinanap ko sa TI website.Pag-usapan nila ng pagpapasadya ng boot code ngunit sila ay hindi na ipaliwanag ang tungkol sa kung paano mag-download sa binagong code sa boot ROM.
Ay ito maaari?Ay kahit sino ba tapos na ito bago?

Salamat,
vhn

 
modify existing bootloader code in ROM.

Hindi
mo maaaring
baguhin ang umiiral na bootloader code sa ROM.

Maaari mong "sabihin" hanggang sa magsimula pataasin mula sa iba pang lugar ngunit hindi mula sa bootloader ROM.for details

Tingnan ang SPRU095
dokumento para sa mga detalye

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

- Ito ay madaling makakamit mula sa google

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Ngiti" border="0" />
 
Hi Misiek.power,
Salamat sa sagot.
Kung hindi namin magawang baguhin ang boot code, at pagkatapos ay maaari na namin ang aming sariling code sa boot umiiral sa isa sa mga sektor at matiyak na ito ay hindi mapapatungan anumang oras?
Gusto ko gawin ito dahil sa aking aplikasyon ang mga tawag para sa pagpapanatili ng dalawang bersyon ng software sa flash.Sa runtime, bootloader ang dapat magpasya kung saan ang isa sa kanila upang maipatupad.
Isa pang problema ako nakaharap ay tungkol sa direktiba compiler pragma.Kung isulat ko sa code "# pragma CODE_SECTION / DATA_SECTION ..."at ang sumulat ng libro, ito ay lubos na ilakip ang mga address na ito?Kung ito ang kaso, ang aking aplikasyon ay maaaring hindi gumana.
Mangyaring imungkahi.

Salamat,
vhn

 
Sa isa sa aking mga proyekto, na kung saan ang pangunahing prog sa flash ay upgradeable, ako handa code
na ako na naka-imbak sa huling sektor (pinagmulan = 0x3F6000, haba = 0x001F80).Ang code na ito ( "bootloader") ay naisakatuparan everytime processor nagsisimula up.
address in flash), program waits for data, which are programmed into flash (address range 0x380000 - 0x3F5FFF only - can not overwrite my bootloader

Kung ang mga tiyak na mga kondisyon ay natutugunan (depende sa kung ano ang halaga ay naka-imbak sa ilalim ng FLAGA_FLASH
address sa flash), hihintayin ng programa para sa data, na kung saan ay programmed sa flash (address sa saklaw ng 0x380000 - 0x3F5FFF lamang - hindi maaaring patungan ng aking bootloader

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

).
sa ibang mga kaso - ito jumps sa pangunahing programa (na nagsimula mula sa 0x380000).

Ang ganitong mga "bootloader" ay isinulat bilang karaniwang programa.Lahat ng kailangan mong gawin ay ang sabihin sa linker kung saan store ito (gotta mong i-edit *. cmd file na may kaugnayan sa iyong proyekto).
section is put (into section named FLASH
, which is defined as origin = 0x3F6000, length = 0x001F80
):

Halimbawa file ay ipinakita sa ibaba (magbayad attenttion na kung saan ang *.
seksyon ng teksto
ay ilagay (sa seksyon na pinangalanan ng Flash,
na kung saan ay tinukoy bilang pinanggalingan = 0x3F6000, haba = 0x001F80):

Code:/************************************************* ***************************/

/ * Linker command na file para sa TMS320F2812 * /

/ * Inihanda para sa mga standalone-flash ng application * /

/ * Code na naka-imbak sa Flash at kinopya sa mga secure na RAM sa panahon ng start-UP * /

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

-m pstn.map / * generowanie pliku z Mapa symboli w pamięci * /Memorya ng

(PAGE 0:

RAML0L1 (RWX): pinagmulan = 0x008000, haba = 0x002000 / *== L0L1 SARAM protektado * /

FLAGA (RW): pinagmulan = 0x3F5FFF, haba = 0x000001

Flash (RWX): pinagmulan = 0x3F6000, haba = 0x001F80

CSM_RSVD (R): pinagmulan = 0x3F7F80, haba = 0x000076

BEGIN_FLASH (RX): pinagmulan = 0x3F7FF6, haba = 0x000002

Mga password (R): pinagmulan = 0x3F7FF8, haba = 0x000008

I-reset (RX): pinagmulan = 0x3FFFC0, haba = 0x000002PAGE 1:

RAMM0 (RW): pinagmulan = 0x000000, haba = 0x000400

RAMM1 (RW): pinagmulan = 0x000400, haba = 0x000400

RAMH0 (RW): pinagmulan = 0x3F8002, haba = 0x001FFE

PIEVT (RW): pinagmulan = 0x000d02, haba = 0xfe

)Seksyon

(Flash28_API:

(

-lFlash2812_API_V210.lib (. econst)

-lFlash2812_API_V210.lib (. teksto)

) Load = Flash,

Tumakbo = RAML0L1,

LOAD_START (_Flash28_API_LoadStart),

LOAD_END (_Flash28_API_LoadEnd),

RUN_START (_Flash28_API_RunStart),

PAGE = 0/ * domyslna lokalizacja sekcji, gdy brak dla nich pragm xxxx_SECTION * /

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

. text:> Flash, mga PAGE = 0 / * executable code at lumulutang-point constants * /

. cinit:> Flash, mga PAGE = 0 / * Tables para sa malinaw na-initialize global at static na mga variable * /

. reset:> I-reset, PAGE = 0, TYPE = DSECT / * DSECT = Dummy Section * /

. cio:> RAMM0, PAGE = 1 / * Data Section (. cio) RAM * /

. ebss:> RAMH0 PAGE = 1 / * Malayong global / mga variable ng static * /

. econst:> Flash, mga PAGE = 0 / * Malayong palaging variable * /

. stack:> RAMM1, PAGE = 1 / * Stack space * /

. esysmem:> RAMM0, PAGE = 1 / * para sa far_malloc function * /

codestart:> BEGIN_FLASH, PAGE = 0 / * ay naglalaman ng isang sangay ng matagal sa C-kapaligiran-setup na gawain .* /

csm_rsvd:> CSM_RSVD, PAGE = 0 / * obszar, który musi być wyzerowany, aby CSM chronił układ * /

password:> password, PAGE = 0RAM_Code: Load = Flash, PAGE = 0

Tumakbo = RAML0L1, PAGE = 0

LOAD_START (_RAM_Code_loadstart),

LOAD_END (_RAM_Code_loadend),

RUN_START (_RAM_Code_runstart)FLAGA_FLASH: Load = FLAGA, PAGE = 0

)
 

Welcome to EDABoard.com

Sponsor

Back
Top