Problema con PIC, se me queda pequeño..

Veamos, tengo un programa para un Pic ( supuesto ya que ta en fase de diseño ), pero el programa es sumamente grande, tanto que no entra en un pic comun y no puedo recortar programa, aqui la duda, ¿puedo meter el programa en una eeprom y ejecutarlo desde ahi?. Cuando digo eeprom digo cualquier metodo de almacenamiento razonablemente barato y que mantenga los datos sin alimentacion. He supuesto algo como que el Pic llevaria un programa que fuera leyendo los datos de la eeprom y fuera ejecutandolos, pero no me queda claro del todo este tipo de "amplicacion", si alguien me pudiera dar mas referencias...

P.D: No me vale decir, pos usa un pic con mas ROM ya que el pic esta impuesto, tanto por presupuesto como por diseño, puedo añadir cosas, pero nunca cambiar las que me dan. Alguna idea?

Gracias..

--
"Por cierto, de sobra es conocido que no hay
quien entienda lo que escriben los médicos a
mano, pero resulta curioso comprobar que
tampoco se les entiende al escribir a máquina."
J. M. García

Saludos.
jmoreym@ono.com 
jarayam@latinmail.com
Reply to
RooT
Loading thread data ...

Estoooo... ¿qué PIC?

--

Saludos de José Manuel García snipped-for-privacy@terra.es http://213.97.130.124

"RooT" escribió en el mensaje news:btkqkt$8dd9i$ snipped-for-privacy@ID-207315.news.uni-berlin.de...

los

Reply to
pepitof

Humm veamos, hay mucha diferencia de lo que podria ser hacer esto de un pic a otro?... si es asi, te dejo elegir siempre dentro de unos limites claro, debe ser gama media ( baja ni pensarlo ) y estar asequible en tiendas, osease que las tiendas de electronica lo suelan tener, nada de hacer pedidos millonarios a Ami.. o Farnell.. etc.. etc.. y el precio, que no salpique la economia. Me refiero a 2 taleguitos ( creo que es lo que suelen rondar por microchip ... aunque luego se encarecera.. pero ya me diras.. XD )

-- "Por cierto, de sobra es conocido que no hay quien entienda lo que escriben los médicos a mano, pero resulta curioso comprobar que tampoco se les entiende al escribir a máquina." J. M. García

Saludos. snipped-for-privacy@ono.com snipped-for-privacy@latinmail.com

un

ejecutandolos,

me

pero

Reply to
RooT

Bueno, que se puedan encontrar en cualquier tienda de componentes, ya sabes,

16F877 es lo máximo. Que se puedan comprar en una tienda seria, supongo que cualquiera con más de un año de antigüedad o algo así. Bueno, es igual. Lo de ejecutar programa almacenado en una memoria externa, creo que no se puede con ningún PIC de gama media. Ahora bien, si el programa gasta parte de la memoria en almacenar tablas de datos, eso sí se podría hacer, con una EEPROM I2C, por ejemplo. En cuanto a migrar un programa de un PIC a otro, dependerá mucho de si está escrito en ASM o en un lenguaje de nivel más alto. Por ejemplo, si está en C, debería ser muy simple, incluso si quieres pasarte a los 18F. Si está en ASM, es más complicadillo, pero no demasiado. Básicamente si no cambias a una gama más alta, se trata sólo de resituar las variables, adaptar la configuración, y poco más. Si cambias de gama es bastante complicado, es decir, casi que te quedas con los algoritmos y reescribes todo. De todas formas, no entiendo cómo sabes que se te quedará pequeño el PIC si aún no has decidido qué PIC vas a usar. Un programa en ASM de más de 8 k-instrucciones (16F876-18F877), da para mucho, y puede que no lo hayas optimizado del todo.

En fin, si concretas un poco más...

--

Saludos de José Manuel García snipped-for-privacy@terra.es http://213.97.130.124

"RooT" escribió en el mensaje news:btkrm0$8ggqu$ snipped-for-privacy@ID-207315.news.uni-berlin.de...

pic

suelen

digo

mantenga

Reply to
pepitof

Si usas por ejemplo un 16F876, la memoria de programa se puede modificar desde el mismo programa. Entonces puedes hacer una especie de overlays de aquellos que hacíamos en msdos (bueno, tu no habúias nacido :-)) es decir que tienes una parte del programa siempre cargada, pero otras partes se cargan y descargan a voluntad.

Lo malo es que creo que hay un límite al numero de veces que se puede regrabar la memoria de programa, deberías hacer eso pocas veces.

Yo estaba pensando en hacer algo así para 'actualizar' el programa de un PIC remotamente.

Reply to
Nolo Pongo

Eso se llama BootLoader :-)

"Nolo Pongo" escribió en el mensaje news: snipped-for-privacy@4ax.com...

Reply to
Teo

Jajajaja, das por echo muchas cosas, pero esto se hacerlo perfectamente en un pc, mas que nada porque es en lo que se basan todos los compresores de EXE's y anti-dissamblers y demas parafernalia. Es facil cargar en memoria cualquier cosa que te apetezca, es mas, diseñe un pequeño programa que necesitaba de una pequeña eeprom para funcionar conectada al lpt, no las tipicas que lee el programa un codigo y a funcionar, eso es crackeable en 3 minutos, sino algo serio, porciones del codigo criticas, iban en la eeprom, estas eran leidas y sustituidas en zonas de memoria donde existia un dummy code, osease no valia ni para tirar cohetes, una vez sustituido el codigo se ejecutaba normalmente, si obligabas al programa a ejecutarse sin tener la eeprom, ejecutabas basura y terminaba siempre en errores, es el metodo mas efectivo para evitar crackeos, hasta que te sacan lo que tenga la eeprom ... XD.

El caso seria hacer creer al pic, que la eeprom externa es la suya, la cuestion es como... XD

P.D: Eso que comentas no es lo de los bootloader ??? que son los modelos nuevos estos de pics que permiten el acceso a su propia rom de program code?

--
"Por cierto, de sobra es conocido que no hay
quien entienda lo que escriben los médicos a
mano, pero resulta curioso comprobar que
tampoco se les entiende al escribir a máquina."
J. M. García

Saludos.
jmoreym@ono.com 
jarayam@latinmail.com
Reply to
RooT

Si, creo que al final tenia razon.. XDD, es que no habia leido este post..

-- "Por cierto, de sobra es conocido que no hay quien entienda lo que escriben los médicos a mano, pero resulta curioso comprobar que tampoco se les entiende al escribir a máquina." J. M. García

Saludos. snipped-for-privacy@ono.com snipped-for-privacy@latinmail.com

Reply to
RooT

Bueno te comento detenidamente:

si

El programa esta en C, ya esta echo, son una serie de algoritmos y demas de calculos, no es que sean complejos es que son muchos datos y se que en asm, podria llegar a entrar, pero me niego a programa esto en asm, 8 mil instrucciones?... jojojo XDD.

Tal vez sea la hora de pasarme a los 80xx ^^. He estado pensando poner dos pic tambien, el programa puedo dividirlo y que cada uno haga sus funciones, con una minima intercomunicacion, pero tengo que meditarlo.

-- "Por cierto, de sobra es conocido que no hay quien entienda lo que escriben los médicos a mano, pero resulta curioso comprobar que tampoco se les entiende al escribir a máquina." J. M. García

Saludos. snipped-for-privacy@ono.com snipped-for-privacy@latinmail.com "pepitof" escribió en el mensaje news:btktaf$8gc60$ snipped-for-privacy@ID-165733.news.uni-berlin.de...

sabes,

que

externa,

se

está

en

no

claro,

diras..

de

en

el

un

alguien

esta

cosas,

Reply to
RooT

"RooT" escribió en el mensaje news:btmasa$9018a$ snipped-for-privacy@ID-207315.news.uni-berlin.de...

serie de algoritmos y demas de

muchos datos y se que en asm,

Si son datos, te valdría una EEPROM a dos hilos.

esto en asm, 8 mil

Sí, debe ser de pesadilla.

estado pensando poner dos

cada uno haga sus funciones,

meditarlo.

Si es posible, opino que es una buena idea, sobre todo si hay distintas funcionalidades claramente definidas. Yo para pasar el rato estoy intentando diseñar un pequeño bot que se aprenda la casa, la aspire y sepa llevarme un vaso desde el mueble bar hasta el lugar que yo quiera(*1). La idea es dedicar un micro a sensar el medio y recibir órdenes via radio o IR, otro a manejar motores y actuadores y un tercero que 'piense' y decida y que sea capaz de dialogar con futuras ampliaciones (la primera sería el control por voz, la segunda ser esclavo de un PC). No preguntes más porque de momento es un boceto y a la marcha que llevo, para cuando quiera empezar tendré que volver a aprender a soldar.

(1*) Aquí tengo un problema que me parece insoluble, a ver si alguien me ayuda: ¿cómo puedo convencer a la parienta de que alguien tiene que preparar el brebaje para que que el bot me lo traiga? De momento me parece más sencillo conseguir que el bot aprenda a abrir la nevera, coja unos cubitos, los meta en un vaso y se vaya al bar a cargar la medida exacta de la botella adecuada ;-).

Reply to
Franois

"RooT" escribió en el mensaje news:btmac3$92s3e$ snipped-for-privacy@ID-207315.news.uni-berlin.de...

se hacerlo perfectamente en

todos los compresores de

Es facil cargar en memoria

un pequeño programa que

conectada al lpt, no las

funcionar, eso es crackeable en 3

criticas, iban en la eeprom,

Eso será serio para un programador que sólo sepa de soft. Para alguien que sepa además de hard (muchos menos pero hay más de lo que parece) se trata de leer la eeprom y copiarla.

memoria donde existia un dummy [...]

Desde luego, es un paso adelante pero sigue siendo bastante vulnerable, más con la moda de hoy de hackear tarjetas, cualquiera que apenas distinga una resistencia de un diodo se hace con un grabador, una eeprom, sube el soft al chip y pelillos a la mar.

Reply to
Franois

Y aunque solo sepa programación, imagina una tarjeta inteligente que no se pueda leer, de esas que dicen de "código evolutivo" a la que le mandas un código y te devuelve el resultado de aplicar sobre él determinado algoritmo, y que no permita repetir el mismo código.

Eso es el colmo de la sofisticacion en seguridad, no hay forma de romper un sistema así, pero luego te desensamblan el programa, buscan el lugar donde se compara el resultado de ese chequeo, cambian un byte al programa y ya está desprotegido, sin leer la tarjeta y sin saber cómo funciona.

Reply to
Nolo Pongo

"Nolo Pongo" escribió en el mensaje news: snipped-for-privacy@4ax.com...

sepa

tarjeta

dicen

código y te

determinado

código.

seguridad,

luego

donde

Lo sé, y además bastante fácil; pero el sistema que plantea Root no es así. Si parte del código está en un chip, puedes hacer lo que quieras en el programa, que te faltarán fragmentos. Te falta un trozo de programa y ese trozo *está en el chip*; o accedes a lo que hay en el chip o te falta parte de soft.

Reply to
Franois

Y si además el chip se bloquea y deja de devolver datos cuando haces, por ejemplo, 5 lecturas erroneas...

--

Saludos de José Manuel García snipped-for-privacy@terra.es http://213.97.130.124

"Franois" escribió en el mensaje news:btnd4c$93eb3$ snipped-for-privacy@ID-172369.news.uni-berlin.de...

Reply to
pepitof

Si tienes el programa en C, cambiar de micro es bastante fácil. Efectivamente, la opción de los xx51 es razonable, ya que son fáciles de encontrar y los hay con bus para memoria externa. También habría que ver cómo optimiza el código el compilador que estés usando, y quizás escribir, si no todo, al menos algunas partes en ASM. Y por cierto, yo he llenado toda la memoria de un 16F876 con un programa escrito íntegramente en ASM. Bueno, en realidad, 280 instrucciones eran un bootloader, aproximadamente 2k era una tabla de datos, y sobraron unas 50 direcciones, pero el resto, era mi programa. El mismo programa, en C, desbordó la memoria mucho antes de tener la mitad de las rutinas escritas.

--

Saludos de José Manuel García snipped-for-privacy@terra.es http://213.97.130.124

"RooT" escribió en el mensaje news:btmasa$9018a$ snipped-for-privacy@ID-207315.news.uni-berlin.de...

de

asm,

funciones,

un

no

Reply to
pepitof

La verdad que el espacio es una desventaja gordísima de no programar en ASM directamente. Yo cada vez que pongo un delayms(xxx) se me ponen los pelos de punta pensando cuántos bytes ocupará. Sin hablar de los output_a(x) que pa cambiar un bit, te crean 5 líneas ASM.

Yo suelo hacer los programas en C y luego "depurarlos" a mano (por ejemplo, las rutinas de los 17 delays iguales, dejarlas en una y reemplazar las demás con call's) También suelo tocar la de gestión de interrupciones porque suele ocupar bastante. Otro truco es usar los samples de las memorias i2c :-) y meter siempre allí todas las tablas, datos, etecé...

"pepitof" escribió en el mensaje news:btoeb0$9l1ce$ snipped-for-privacy@ID-165733.news.uni-berlin.de...

Reply to
Teo

Es serio no porque sea dificil, sino porque sino tienes la eeprom el programa es inutilizable, por lo tanto como minimo exiges que te compren una licencia, aun asi sigue siendo chungo por lo que dices, la eeprom lo lee cualquiera. Lo de comprar "al menos una" desanima a muchos cracker si ademas la licencia es cara aun mas.

-- "Por cierto, de sobra es conocido que no hay quien entienda lo que escriben los médicos a mano, pero resulta curioso comprobar que tampoco se les entiende al escribir a máquina." J. M. García

Saludos. snipped-for-privacy@ono.com snipped-for-privacy@latinmail.com "Franois" escribió en el mensaje news:btn2uv$9389f$ snipped-for-privacy@ID-172369.news.uni-berlin.de...

Reply to
RooT

Primero, gracias por los comentarios... a todos, intentare pensarlo y meditarlo ya os rayare dentro de poco, tranquilos ^^

pero una cosa curiosa ha sido esto..

Antes de leer el mensaje, justo esta mañana segun me levante se me ocurrio algo asi, hacer un robot que vaya escaneando la casa y ya de paso chupando algo de polvo y de repente me encuentro con esto... jojojo!. Sobre la bebida, te montas un estante entero con todas las botellas y unos pequeños minisurtidores, el robot se acerca y recoge X cantidad preprogramada de lo que sea, y mientras te lo trae, lo mezcla, y ahi tienes tu bebida.. ^^.

-- "Por cierto, de sobra es conocido que no hay quien entienda lo que escriben los médicos a mano, pero resulta curioso comprobar que tampoco se les entiende al escribir a máquina." J. M. García

Saludos. snipped-for-privacy@ono.com snipped-for-privacy@latinmail.com "Franois" escribió en el mensaje news:btn2g0$8vgpp$ snipped-for-privacy@ID-172369.news.uni-berlin.de...

Reply to
RooT

"RooT" escribió en el mensaje news:btpt13$a4ccm$ snipped-for-privacy@ID-207315.news.uni-berlin.de...

segun me levante se me ocurrio

casa y ya de paso chupando

esto... jojojo!.

Sólo falta que lo veas en febrero o marzo en una revista 8-|.

las botellas y unos pequeños

cantidad preprogramada de lo

tienes tu bebida.. ^^.

Eso es lo fácil (por lo menos lo *más* fácil), igual que poner unas balizas en los enchufes de los pasillos, etc. facilitaría la navegación, pero yo tengo una idea distinta. Si me decido a hacer algo así será para que se acomode a mí y me sirva; si soy yo el que tengo que acomodar la casa a él y prepararle las reservas, mal andamos. Igual se acostumbra y se alza en mi contra (estilo skynet y terminator :-D) cuando le falte materia prima.

Reply to
Franois

Uso el PCW, se que el highnoseke ahora mismo es mejor o el CSS no recuerdo, pero da igual, me faltan casi 7 kb ( sobre un 16f877 creo que es lo de esta gama el que mas ) de instrucciones ( le hize un apañito para que terminara de compilar aun dando el error de que no entra.. ) no es por depuracion, ya que soy muy quisquilloso con ese tema, me suele gustar dejar los programitas bien limpios y con menos lineas mejor, pero el tema existe en que si aun consiguiendo meterlo, si algun dia tengo que actualizar el software que hago? quito mas instrucciones para actualizarlo ?

--
"Por cierto, de sobra es conocido que no hay
quien entienda lo que escriben los médicos a
mano, pero resulta curioso comprobar que
tampoco se les entiende al escribir a máquina."
J. M. García

Saludos.
jmoreym@ono.com 
jarayam@latinmail.com 
"Macguiwer"  escribió en el mensaje
news:btsgev$caf$1@nsnmrro2-gest.nuria.telefonica-data.net...
> dice que usas C ,¿que compilador usas?, ya que puede ser que con otro
> compilador si entre.
> bueno claro que eso depende de cuanto espacio te falte.
> ¿cuanto te mide ahora el progama y cunato crees que te hara falta?
>
Reply to
RooT

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.