C54 problemă legată de memorie hartă

A

ahmadagha23

Guest
hi
Am wroten un cod sursă pentru c54cst dar dimensiunea codului meu este atat de mare, care au nevoie de mai mult de o pagina de memorie pentru unii a secţiunii sale.Nu am putut oferi o buna fişier. Cmd pentru el.Deşi am citit c54cst foaie de date nu am putut înţelege valorile pentru OVLY şi MP / MC şi de memorie şi alte registre. Fişier cmd şi regiunea de memorie pentru a utiliza memorie externa.Am ataşat proiectul hartă. Dosarul meu de a putea, te rog scrie un cmd şi fişier. Valorile OVLY şi mp / mc biţi pentru mine?ceea ce este modificările necesare şi alte fişiere de gel?

Vă rog să mă ajute.
ceea ce priveşteAdăugat după 6 minute:acesta este al meu. fişier hartă pentru 54cst ar putea orice unul a scrie un cmd el. fişier pentru?************************************************** ****************************
TMS320C54x COFF Linker PC v4.1.0
************************************************** ****************************
>> Legat Marti 11 decembrie 2007 19:43:12

Fişierul de ieşire NUME: <Debug. / / Sound.out>
Punct de intrare simbol: "_c_int00" Adresa: 0002d00fMEMORY CONFIGURATIE

lungime de origine numele utilizat attr umple
---------------------- -------- --------- -------- --- - --------
VECT 00007f80 00000080 00000000 RWIX
TEXT 00020500 0000f394 0000ee11 RWIX
AB 00031000 00010000 0000fdb7 RWIX
CINT 00050080 00007f16 00007f15 RWIXSECŢIUNEA ALOCAREA MAP

ieşire atribute /
secţiunea origine Pagina de intrare lungime secţiuni
-------- ---- ---------- ---------- ----------------
Neinitializata. Vectori 0 00007f80 00000000

. Textului 0 00020500 0000ee11
00020500 000007f6 classify.obj (. Text)
00020cf6 00000787 dsp_sub.obj (. Text)
0002147d 00000602 fec_code.obj (. Text)
00021a7f 0000073f fft_lib.obj (. Text)
000221be 00000346 fs_lib.obj (. Text)
00022504 000004a6 harm.obj (. Text)
000229aa 00000c72 lpc_lib.obj (. Text)
0002361c 000002cb mat_lib.obj (. Text)
000238e7 00000478 math_lib.obj (. Text)
00023d5f 00000024 mathdp31.obj (. Text)
00023d83 00000839 mathhalf.obj (. Text)
000245bc 00001095 sound_ana.obj (. Text)
00025651 00001e59 sound_chn.obj (. Text)
000274aa 00000894 sound_sub.obj (. Text)
00027d3e 000006b6 sound_syn.obj (. Text)
000283f4 0000006e sounde_Decode.obj (. Text)
00028462 00000081 sounde_Encode.obj (. Text)
000284e3 00001b4a npp.obj (. Text)
0002a02d 000007c4 pit_lib.obj (. Text)
0002a7f1 00000a5b pitch.obj (. Text)
0002b24c 000004cc postfilt.obj (. Text)
0002b718 000011eb qnt12.obj (. Text)
0002c903 00000123 test1.obj (. Text)
0002ca26 000005c4 vq_lib.obj (. Text)
0002cfea 00000025 rts.lib: assert.obj (. Text)
0000004a 0002d00f: boot.obj (. Text)
0002d059 00000052: exit.obj (. Text)
0000009f 0002d0ab: f_add.obj (. Text)
0002d14a 00000020: f_cmp.obj (. Text)
0002d16a 00000001: f_error.obj (. Text)
0000004b 0002d16b: f_ftol.obj (. Text)
0002d1b6 0000002b: f_itof.obj (. Text)
0002d1e1 0000002a: f_ltof.obj (. Text)
0002d20b 00000073: f_mul.obj (. Text)
0002d27e 00000005: f_neg.obj (. Text)
0002d283 00000009: f_sub.obj (. Text)
0002d28c 00000050: fclose.obj (. Text)
0000000a 0002d2dc: feof.obj (. Text)
0002d2e6 00000075: fflush.obj (. Text)
0000001c 0002d35b: floor.obj (. Text)
0002d377 00000151: fopen.obj (. Text)
0002d4c8 00000030: fprintf.obj (. Text)
0002d4f8 0000006c: fputc.obj (. Text)
0002d564 000000fa: fputs.obj (. Text)
000000b1 0002d65e: fread.obj (. Text)
0000014c 0002d70f: fwrite.obj (. Text)
000000a5 0002d85b: ldiv.obj (. Text)
0002d900 00000326: lowlev.obj (. Text)
0002dc26 0000000c: lsl.obj (. Text)
0002dc32 00000011: lsrs.obj (. Text)
0002dc43 0000000e: memcpy.obj (. Text)
0002dc51 00000274: memory.obj (. Text)
0002dec5 0000003d: modf.obj (. Text)
0002df02 00000005: remove.obj (. Text)
0002df07 000002b7: trgdrv.obj (. Text)
0000000c 0002e1be: udiv.obj (. Text)
0000005c 0002e1ca: _bufread.obj (. Text)
0002e226 0000009f: _io_perm.obj (. Text)
0002e2c5 00000007: _lock.obj (. Text)
00000b02 0002e2cc: _printfi.obj (. Text)
0002edce 00000059: atoi.obj (. Text)
0002ee27 00000102: ecvt.obj (. Text)
0002ef29 0000009a: f_div.obj (. Text)
0002efc3 0000003c: f_ftoi.obj (. Text)
000000fc 0002efff: fcvt.obj (. Text)
0000003c 0002f0fb: fseek.obj (. Text)
0002f137 000000aa: ldmsg.obj (. Text)
0002f1e1 00000014: lmpy.obj (. Text)
0002f1f5 00000049: ltoa.obj (. Text)
0002f23e 00000020: memccpy.obj (. Text)
0000002c 0002f25e: memmov.obj (. Text)
0002f28a 00000087: setvbuf.obj (. Text)

. BSS 0 00031000 0000b65b neinitializata
00031000 00001e93 npp.obj (. BSS)
00032e94 00000445 global.obj (. BSS)
000332da 00000002 dsp_sub.obj (. BSS)
000332dc 00007d63 qnt12_cb.obj (. BSS)
0003b03f 00000311 sound_sub.obj (. BSS)
0003b350 00000272 sound_ana.obj (. BSS)
0003b5c2 00000203 lpc_lib.obj (. BSS)
0003b7c5 00000200 fft_lib.obj (. BSS)
0003b9c5 000001cd rts.lib: defs.obj (. BSS)
0003bb92 000001b9 pitch.obj (. BSS)
0000019b sound_syn.obj (. 0003bd4b BSS)
0003bee6 00000190 rts.lib: _printfi.obj (. BSS)
0003c076 00000158 pit_lib.obj (. BSS)
000000d0 0003c1ce rts.lib: trgdrv.obj (. BSS)
0003c29e 000000c6 sound_chn.obj (. BSS)
0003c364 000000a0 fs_lib.obj (. BSS)
0003c404 0000008b classify.obj (. BSS)
0003c48f 00000064 rts.lib: fcvt.obj (. BSS)
00000064: ecvt.obj (. 0003c4f3 BSS)
0000005c: lowlev.obj (. 0003c557 BSS)
0003c5b3 0000004b postfilt.obj (. BSS)
0003c5fe 00000023 rts.lib: exit.obj (. BSS)
0003c621 0000001c fec_code.obj (. BSS)
0003c63d 00000019 qnt12.obj (. BSS)
0003c656 00000003 rts.lib: memory.obj (. BSS)
00000002: _lock.obj (. 0003c659 BSS)

0003c65c. Const 0000323c 0
0003c65c 0000003e fs_lib.obj (. Const)
0003c69a 00000038 mathhalf.obj (. Const)
0003c6d2 00000034 rts.lib: _printfi.obj (. Const)
0003c706 00000026 classify.obj (. Const)
0003c72c 00000008 pitch.obj (. Const)
0003c734 00000008 rts.lib: ecvt.obj (. Const)
0003c73c 00000008: fcvt.obj (. Const)
0003c744 00000004: floor.obj (. Const)
0003c748 00000002: modf.obj (. Const)
0003c74a 0000190a msvq_cb.obj (. Const)
0003e054 00000a00 fsvq_cb.obj (. Const)
0003ea54 000004a4 fec_code.obj (. Const)
0003eef8 0000038a math_lib.obj (. Const)
0003f282 00000228 coeff.obj (. Const)
0003f4aa 00000120 npp.obj (. Const)
0003f5ca 00000101 rts.lib: ctype.obj (. Const)
0003f6cb 00000076 test1.obj (. Const)
0003f741 00000070 mat_lib.obj (. Const)
0003f7b1 0000006a lpc_lib.obj (. Const)
0003f81b 00000032 qnt12.obj (. Const)
0003f84d 00000012 sound_sub.obj (. Const)
0003f85f 00000010 postfilt.obj (. Const)
0003f86f 00000010 harm.obj (. Const)
0003f87f 0000000c sound_chn.obj (. Const)
0003f88b 00000008 global.obj (. Const)
0003f893 00000003 rts.lib: assert.obj (. Const)
0003f896 00000002: fputs.obj (. Const)

. Sysmem 0 0003f898 00001000 neinitializata

. Stiva 0 00040898 00000400 neinitializata

. CIO 0 00040d00 00000120 neinitializata
00040d00 00000120 rts.lib: ldmsg.obj (. CIO)

. Cinit 0 00050080 00007f15
00050080 00000003 classify.obj (. Cinit)
00050083 00000004 dsp_sub.obj (. Cinit)
00050087 00000007 global.obj (. Cinit)
0005008e 00000003 lpc_lib.obj (. Cinit)
00050091 00000009 sound_ana.obj (. Cinit)
0005009a 00000041 sound_chn.obj (. Cinit)
000500db 0000000c sound_sub.obj (. Cinit)
000500e7 00000009 sound_syn.obj (. Cinit)
000500f0 00000015 npp.obj (. Cinit)
00050105 00000006 pit_lib.obj (. Cinit)
0005010b 00000003 pitch.obj (. Cinit)
0005010e 00000039 postfilt.obj (. Cinit)
00050147 0000000f qnt12.obj (. Cinit)
00050156 00007d7d qnt12_cb.obj (. Cinit)
00057ed3 00000091 rts.lib: defs.obj (. Cinit)
00057f64 00000009: exit.obj (. Cinit)
00057f6d 0000001e: lowlev.obj (. Cinit)
00057f8b 00000003: memory.obj (. Cinit)
00057f8e 00000006: _lock.obj (. Cinit)
00057f94 00000001 - Hole - umple [= 0]

. Datele 1 00000000 00000000 neinitializata

 
Bună ziua ahmadagha23

Nu ştiu C54, cu toate acestea am confruntat cu aceeaşi problemă cu dispozitive C6x: pentru aceste dispozitive linker-ul vă permite să specificaţi (a scrie un fişier de comandă adecvat linker-ul) ALERGA şi adresele de încărcare pentru toate secţiunile de cod: RUN este adresa de memorie zona în care codul / datele sunt introduse în timpul executării SW (de obicei, este rapid berbec internă), în timp ce adresa de încărcare este în cazul în care este stocat codul (de exemplu, EEPROM extern), înainte de executarea ei.Aceste informaţii sunt procesate de linker-ul, pe care o utilizează pentru a genera tabelele COPY care vor fi folosite la timpului de funcţionare pentru a gestiona de paginare de SW si incarca codul executabil sau date în berbec interne numai atunci când este nevoie.Un tabel COPY defineste adresa sursa (în ROM) adresa destinaţie (în RAM), iar lungimea secţiunii care urmează să fie copiate la timpul de rulare.Linker-ul generează aceste informaţii pentru fiecare secţiune, apoi Convertor hex le prelucrează şi generează un fişier executabil putea-ROM (). Hex care stochează aceste mese, atunci este de până la programator pentru a gestiona paginare din SW la momentul rula ( Procesul de copiere de externe în memoria internă bucăţi de cod executabil, înainte de executarea lor) în conformitate cu informaţiile stocate în tabelele COPY.
Cu această tehnică de diferite sectiuni ar putea împărtăşi aceeaşi zonă de memorie RUN, fiind alocate anterior separat pe LOAD zonele exterioare: care este conceptul de memorie OVERLAY.
I suggest tu la spre a verifica în documentaţia linker-ul pentru a găsi informaţiile necesare pentru a aplica aceasta tehnica pentru software-ul.
Ceea ce priveşte

Mowgli

 
Dragă prietene;
Vă mulţumim pentru răspunsul dumneavoastră, dar problema mea este că, atunci când mărimea unui program sau secţiune este de mai mult de o pagina de memorie, cum pot seta încărcăturii sale şi a alerga adresa în fişier cmd?
Cu alte cuvinte, dacă un program (doar un program. C într-un proiect) a fost aproape de 120K cum pot seta adresa special RUN adresa de timp?

Ştiţi setările necesare şi luarea în considerare pentru utilizarea de memorie extern?
Ceea ce priveşte

 
În trecut, mesajul meu am încercat să fac doar un scurt rezumat despre funcţionalitatea TABELUL copie, dar poate că a fost prea scurtă şi prea puţin ajutor pentru tine.
O explicaţie detaliată mai multe despre această tehnică şi directivele linker-ul pentru a fi utilizate pentru a pune în aplicare în dosarul comanda linker-ul (. Cmd) ar putea fi găsite în
SPRAA46 "Tehnici avansate pentru Linker eficientă Memorie Usage şi convenabil"
pe care le puteţi descărca gratuit de la site-ul web www.ti.com.
Înainte de lectură SPRAA petrecut ceva timp citind documentele furnizate de linker-ul TI cu mediul de dezvoltare.Sunt convins că răspunsul la problema ta ar putea fi găsite citirea acestor documente.

Ceea ce priveşte

Mowgli

 
Stimate prieten
Vă mulţumim pentru răspunsul dumneavoastră.
Am citit documentele, dar:
1 - secţiunea este împărţită de sprijin doar prin o singură pagină, şi nu pentru mai mult de un pagini.nu-i asa?

2 - Eu folosesc simulator de 54cst.Cum pot afla cantitatea de memorie care suporta simulator?Pot extinde cantitatea de memorie de sprijinite de simulator?
Adaug memoria prin adăugarea de hărţi adăugaţi () în fişierul de gel şi de contextul din zona adăugată (vizualizate de către instrument de vedere de memorie) convertite din cratimă "-" pentru a 0x000.dar nu a putut fi accesat de furcă prin intermediul sarcină operation.Is Exista vreo modalitate de a adăuga mem necesare pentru simulator?

ceea ce priveşte

 

Welcome to EDABoard.com

Sponsor

Back
Top