¿Cómo construir Forth para dispositivos integrados?

3

Hasta ahora acabo de encontrar este documento que proporciona una guía para lograrlo. enlace

1) Quiero saber si hay alguna guía más reciente?

2) ¿Qué Forth es mejor para ese propósito?

Planeo usarlo con pic16f877a y sé que existe picforth, pero es solo un compilador, no un sistema para comunicarse con la ventana del terminal mediante una conexión en serie (es por eso que lo voy a usar).

gracias de antemano.

    
pregunta Catch.Me

3 respuestas

1

Echa un vistazo a mecrisp adelante. Lo he estado usando en MCUs STM32. Compila a unos 25K. Probablemente mucho trabajo (ASSEMBLER) para que funcione en un PIC32. Pero si lo haces tendrás un pequeño ayuno. Si lo haces me avisas. Vale la pena echarle un vistazo, ya que es tan vanguardista como he visto.

    
respondido por el Douglas Moldt
4

Es posible que desee consultar pForth , que es una implementación portátil en C. El PIC16F877A tiene 14K de Flash, y solo 368 bytes de RAM, por lo que no hay forma de que pForth se ajuste. El PIC16F877A también tiene una pila de hardware de 16 profundos que se usa solo para las direcciones de retorno y no tiene pila de parámetros. Estas restricciones probablemente habrían descartado el uso de un PIC16 para pForth de todos modos, incluso si pudieras obtener uno con suficiente Flash y RAM.

Según la respuesta de gbarry, parece que vas a necesitar un microcontrolador mucho más grande para pForth. También puede omitir el PIC18 (que tiene un tamaño máximo de programa de 128K), y también el PIC24 (que también tiene un máximo de 128K) e ir con un PIC32. El PIC32MX170F256B tiene 256K de Flash y 64K de RAM, y costs under $ 4 . Sin embargo, viene en un DIP de 28 pines en lugar de uno de 40 pines.

También puedes consultar los siguientes libros:

Programación de un lenguaje orientado a los problemas: adelante: cómo funcionan las partes internas por Charles H. Moore (el creador original de Forth)

Este libro solo está disponible como libro Kindle, pero puede obtener un lector gratuito para la PC y la mayoría de los dispositivos portátiles como el iPhone, iPad y Android.

Forth Application Techniques: Course Notebook , 5a edición de Elizabeth D. Rather (que fue cofundadora de Forth, Inc.)

    
respondido por el tcrosley
2

Descargué pForth en el consejo de @ tcrosley, compilado bajo OS X, y la imagen independiente es de 180 K. Este es uno de los varios puntos de tropiezo que me han impedido alcanzar un objetivo similar al de la persona que pregunta. Solo lo he intentado durante 15 años :) La mayoría son demasiado grandes, algunos carecen de intérpretes, algunos no están en C, algunos no se construyeron, algunos esperaban un entorno de Windows, etc.

La información provista por Brad Rodriguez todavía es aplicable a la construcción de varios sistemas FORTH. No estoy al tanto de ninguna actualización, y ya que es su sitio, ahí es donde estaría cualquier actualización. Hace poco me refería a estos documentos y todavía estoy intentando crear mi propio pequeño FORTH escrito en C. He tenido un poco de éxito, pero puedo decirles que hay muchos detalles. Este no es el tipo de cosas que puede hacer al mismo tiempo que intenta avanzar en un proyecto incrustado.

Tenga en cuenta que FORTH originalmente esperaba tener un bloque de RAM donde se compilan las nuevas palabras del diccionario. O bien no tienes que lidiar con mucha memoria RAM, o se te ocurre una forma de escribir en el programa flash.

También probé algo llamado FlashForth (este está escrito en ensamblador) y funcionó, pero lo puse en un PIC18F6620 bastante grande. Me distraje tratando de averiguar los aspectos internos del diccionario y dónde se almacenaban las cosas, así que nunca llegué a donde pudiera desarrollarme con él. Le sugiero que lo intente si puede conseguir algo de la familia PIC18F ... incluso para probarlo. En esa nota, hay algunas partes 18F que son compatibles con sus contrapartes 16F, por lo que si el costo es una preocupación, solo use las partes más grandes para el desarrollo si FORTH no va realmente al producto final.

    
respondido por el gbarry

Lea otras preguntas en las etiquetas