Sari la conținut
ELFORUM - Forumul electronistilor

Intrebare


mitescu

Postări Recomandate

M-am lovit de o situatie la care eu nu am gasit (pana acum) rezolvare

Datele sunt: placa cu ATmega128, program bootloader 4kw

In cadrul programului am o matrice care depaseste marimea flash-ului alocat (4kw) si doresc sa il plasez in zona cu inceput de adresa 0x1000.

Matricea este de tipul:

flash char matrix[128][128]={1,2,3.........   }
Deci in total are 8kw - 16kbytes

complilatorul imi trece matricea imediat dupa jump-urile de la intreruperei si prin urmare da overflow la memoria flash

Intrebare : cum reusesc sa "conving" compliatorul sa imi plaseze matricea la adresa 0x1000.?

Link spre comentariu
  • Răspunsuri 3
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • mitescu

    2

  • Laci

    2

Top autori în acest subiect

Daca descarci cu bootloader atunci nu trebuie sa plasezi tabelul, lasa cam face compliatorul.Bootloaderul se afla la "capatul" flashului, nu la inceput :)Daca vrei sa plasezi un tabel undeva poti sa faci cu directive asm .ORG .DSEG sau definesti sectiuni .section (valabil pentru avr-gcc), momentan nu am acces la laptopul meu personal unde am cateva exemple.

Link spre comentariu

In primul rand , nu descarc cu un bootloader. Programul pe care il scriu este de tip bootloader.In al doilea rand (si aici este greseala mea ca n-am specificat) , compilatorul utilizat este CodeVision. Acesta plaseaza tabelele imediat dupa vectorii de intrerupere. Nu stiu cum face avr-gcc, dar codevision nu ma lasa sa pun datele unde doresc. Pentru varianta cu declararea tabelului in asm, nu este nicio problema, se poate. Ideea era sa accesez zona tabelara prin intermediul unei matrici direct, fara sa apelez la asm. Si apropo, se cunoaste vreo librarie care face "SPM"? si daca da care este aceea?

Link spre comentariu

Pai in codevision e foarte simplu: project -> configure -> c compiler options -> program type (vezi poza)[attachment=0]codevision-boot.JPG[/attachment]nu stiu daca codevision are sau nu librarii pentru scriere in flash, parca nu, avr-gcc are vezi boot.hEu am gasit una pe net in asm, si am portat/modificat dupa nevoile mele

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări