FIFO vs Interrupcions vs memòria paginada MAPA

B

Bukitoo

Guest
Hola!
Recentment he començat a treballar en una empresa per solucionar "alguns problemes de programari" d'un sistema integrat (que jo no disseny).
En realitat, no hi va haver alguns.És un sistema amb 512 kb amb un ATMEGA128 (que pot gestionar només 64kb, pel que utilitza 8 pags de memòria).
A més, el sistema té les implementacions de les cues que utilitzen aquestes pàgines.Per descomptat que hi ha interrupcions en el menjador de la presa en paral.lel.
Després d'alguns mesos de ardu treball, puc corregir alguns errors, comprar el més gran és un gran secret per a mi.He intentat forçar els errors, però que estintolar en alguns tha condicions singulars que no poden reproduir-se.Aparently alguns punter d'alguna estructura de dades està canviant el seu valor i les adreces de ovelaping, però aquest és un suposition.Potser la pila és arribar a desbordar.No ho sé.

Potser algú em podria ajudar donar-me alguns consells.Algun llibre per referir-se, o alguna cosa!Pleease!

Gràcies per endavant

 
Vostè ha heretat projecte buggy d'algú.Lucky you.

El error es produeix en el teu banc, o es tracta d'un d'aquests errors que només succeeix quan el client així el toca?

Si l'error fa que alguns dels símptomes immediats, a continuació, intenteu fer servir un analitzador de lògica per veure el bus de la CPU.Programa que s'aturi quan vegi el símptoma de fracàs.Ara vostè té una visió del comportament de la CPU abans de la falla.

Un altre enfocament consisteix a inserir el codi de depuració en llocs estratègics en el microprogramari.Si detecta alguna cosa sospitosa, immediatament entra en mode segur (desactivar les interrupcions, el nou punter de pila, el que sigui), i abocadors dels registres de la CPU i el contingut de la memòria a través d'una simple port E / S a un equip extern.Ara vostè pot cavar a través d'aquestes coses per obtenir més pistes.

 
Amb la paginació habilitat, és sempre difícil d'utilitzar les dades a la pàgina sempre.

la millor manera es pot seleccionar el model de memòria ENORMES, on se suposa que totes les dades que poden ser anomenats.No estic segur que això va a resoldre el problema.

Quan estava treballant amb aquest tipus d'arc amb el C167, em enfrontava als mateixos problemes quan utilitza punters a aquesta memòria com a membres d'altres estructures.Per posar els objectes de dades normals lloc amb FAR paraules funcionar bé.

Qualsevol codificació com em anava i tenia la llibertat de canviar el codi com vull fer de compilador feliç.

millor de les sorts
idlebrain

 
Gràcies per les respostes!
echo47: El problema és que el sistema té 2 taulers amb 2 uControllers.Es comuniquen a través de bus SPI, però les seves funcions són totalment asinchonous.

Sé que hi ha molts problemes.Els problemes es produeixen amb molta freqüència en el camp, i molt poques vegades en el meu banc.

Unfortunally la documentació no existeix.

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plorant o molt trist" border="0" />Tant de la UC ha bolcat dels informes quan es produeixen errors, però ara una informació tha dies que donen és inútil.

idlebrain: Gràcies pel teu consell.Sé que el compilador (IAR AVR BANCO) té les directives del compilador així que vaig a llegir carfully la seva funcionalitat.

 
Bukitoo va escriure:

Hola!

Aparently alguns punter d'alguna estructura de dades està canviant el seu valor i les adreces de ovelaping, però aquest és un suposition.
Potser la pila és arribar a desbordar.
No ho sé.Potser algú em podria ajudar donar-me alguns consells.
Algun llibre per referir-se, o alguna cosa!
Pleease!Gràcies per endavant
 
Una altra manera de trobar desbordament de pila és per omplir la pila amb un byte especial (0xAA) abans d'anar al principal.Després d'un accident que pot llegir de nou la pila i comproveu que la part superior de la pila és 0xAA.Gómez

 

Welcome to EDABoard.com

Sponsor

Back
Top