Home

Manual del usuario: PaRTiKle sobre sistemas LPC2000

image

Contents

1. 512 bytes 0 5 Kbytes Por lo tanto se tiene que ajustar el valor THREAD STACKSZ durante la config uraci n de PaRTiKle para adaptarlos a los requisitos de la aplicaci n en este caso la memoria RAM del LPC2000 es de 32 Kbytes por lo que 512 bytes de pila per thread puede ser un buen valor por defecto ver figura Tras realizar las anteriores selecciones podemos guardar los cambios en el fichero config y salir El resultado tras salir ser Building the configuration utility End of PaRTiKle kernel configuration gt gt Execute make to build the kernel lt lt Tras esto basta con ejecutar la orden make para compilar PaRTiKle make gt gt Detected PaRTiK gt gt Building PaRTiK gt gt Building PaRTiK gt gt Building PaRTiKl path usr src partikle utils done kernel lpc done user libraries done Le Le Le Le gt gt Include these in your profile environment PRTK usr src partikle export PRTK PATH SPATH SPRTK user bin export PATH Core Options Arrow keys navigate the menu lt Enter gt selects submenus gt Hiohliohted letters are hotkeys Pressing lt Y gt includes lt N gt excludes lt M gt modularizes features Press lt Esc gt lt Esc gt to exit lt gt for Help lt gt for Search Legend built in excluded lt M module lt gt 18432 ernel dynamic memory 18248 ser dynamic memory 812 Thread st
2. usr local arm lpc Una vez realizados estos pasos los ejecutables del compilador son referenciados por PaRTiKle desde partikle mkfiles mkfile 1pc antes de continuar podemos comprobar que el compilador se ha instalado correctamente con el siguiente comando que deber a mostrar la ruta completa a los ejecutables gcc ld as ls usr local arm lpc bin arm elf gcc ld as usr local arm lpc bin arm elf as usr local arm lpc bin arm elf gcc usr local arm lpc bin arm elf 1d 2 2 Configuraci n cargador flash Para cargar programas el LPC2000 proporciona dos protocolos ISP In System Programming IAP In Application Programming Durante la fase de arranque el LPC2000 inicializa el puerto serie y comprueba si en el otro extremo est preparado para iniciar el protocolo ISP ver el apartado the Flash memory system and programming Mediante el ISP los cargadores envian el c digo al LPC2000 que se encarga de almacenarlo en la EEPROM y a continuaci n ejecutarlo Existen varios cargadores para Unix los dos m s comunes y utilizados son Ipc2isp http www cmucam org browser trunk tools Ipc2 lisp y Ipc2k pgm En nuestro caso vamos a utilizar este ltimo 1pc2k pgm presenta como ventajas una interfaz gr fica y el incorporar la emulaci n de una terminal serie Esto evita tener que utilizar un programa de emulaci n de terminal externo Es importante ajustar correctamente los par metr
3. 00003000 0x00003FFF xmit prep write Ok Sector 4 0x00004000 0x00004FFF xmit prep write Ok Sector 5 0x00005000 0x00005FFF xmit prep write Ok Sector 6 0x00006000 0x00006FFF xmit prep write Ok Sector 7 0x00007000 0x00007FFF xmit prep write Ok Firmware nello word hex Program Now Port devtyUsB0 Baud 38400 Crystal 10 MH Reboot Booloader Quit Booting soft jump loading jump code jumping now gt gt PaRTiKle Core lt lt Detected 60 000 MHz processor Setting up the dynamic memory manager 18 kbytes at 0x40003544 Free system memory 18 Kb PaRTiKle 0 Kb text 0 data 0 rodata 0 bss 0 Kb App 0 Kb text 4194302 data 4194303 rodata 4194303 bss 0 Kb init console ok Jumping to the user s code Hello World Download Canceled couldn t run program Bue bye System exit status 0 exit Figura 7 Arranque de PaRTiKle bajo el LPC2136 11 Referencias 1 S Peiro M Masmano I Ripoll and A Crespo PaRTiKle OS a replacement of the RTLinux core Real Time Systems Group Universidad Polit cnica de Valencia http www e rtl org partikle node 5 http www e rtl org partikle 2 M Masmano I Ripoll A Crespo PaRTiKle OS User Manual Real Time Systems Group Universidad Polit cnica de Valencia http www e rtl org partikle node 5 3 M Masmano I Ripoll A Crespo An overview of the XtratuM nanokernel Workshop on Oper
4. Manual del usuario PaRTiKle sobre sistemas LPC2000 S Peir Rev Miguel Masmano Grupo de Inform tica Industrial y Sistemas de Tiempo Real Universidad Polit cnica de Valencia Spain speiro mmasmano ai2 upv es 30 de enero de 2012 Resumen En este texto se describe la puesta a punto desde cero del entorno de progra macion para desarrollar aplicaciones que se ejecuten sobre los sistemas LPC2000 con el SOTR PaRTiKle Dentro del entorno de programaci n se contempla tanto la parte hardware como la parte software Hardware El sistema LPC2000 y los dispositivos necesarios para tener acceso desde una terminal serie host hasta el LPC2000 target Software El sistema operativo de tiempo real para sistemas empotrados PaRTiKle las herramientas de compilaci n toolchain y el cargador por puerto se rie utilizado para cargar c digo en el LPC2000 Keywords PaRTiKle Real Time Operating Systems LPC200 ARM7 System Programming ndice 1 Sistemas LPC2000 Este apartado presenta una visi n general de los sistemas utilizados proporcio nando referencias a documentos mas especificos que quedan fuera del alcance de este manual El manual se centra en particular en el modelo LPC2136 que utiliza los proce sadores de la arquitectura ARM Advanced RISC Machines de 32 bits en particular la familia ARM7TDMI S donde la S final hace referencia a que el procesador esta modelado en VHDL 1 1 Caracter sticas LPC2000 A conti
5. Por la parte hardware es necesario disponer de un cable USB a mini USB Para poder acceder al UART serie que incorpora el sistema LPC2000 la conexi n serie se proporciona a traves de USB por medio de un driver FTDI Por ello es necesario disponer de un driver USB con soporte para FTDI en el host PC que se est utilizando como plataforma de desarrollo Este driver permitir usar la conexi n serie En el caso de GNU Linux se ha utilizado el m dulo usbserial con soporte FTDI que tr s cargarse proporciona el dispositivo dev ttyUSBO a traves del que se puede comunicar a traves del puerto serie 2 3 Configuraci n de PaRTiKle Una vez instalado correctamente el compilador cruzado podemos pasar a obtener y configurar PaRTiKle La versi n m s actualizada de PaRTiKle est disponible en el repositorio del grupo de investigaci n https www gii upv es svn rtos trunk partikle Los fuentes de PaRTiKle pueden residir en cualquier directorio En nuestro caso supondremos usr src partikle cd usr src svn co https www gii upv es svn rtos trunk partikle cd usr src partikle make menuconfig Los aspectos a tener en cuenta durante la configuraci n son la arquitectura y la memoria din mica disponible en el sistema Architecture gt gt LPC arm7 Stand Alone system Core Options gt gt Kernel Dynamic Memory 18432 bytes 18 Kbytes gt gt User Dynamic Memory 10240 bytes 10 Kbytes gt gt Thread stack size
6. Si por lo contrario se trata de c digo espec fico para una arquitectura este ocupa un directorio propio core kernel arch por cada arquitectura arch 2 3 2 Caracter sticas de PaRTiKle para LPC Todas las cuestiones asociadas al LPC2000 has sido ya mencionadas anteriormente Es importante remarcar que en la implementaci n se ha intentado minimizar la cantidad de c digo ensamblador escrito para ello se ha utilizado nicamente en los detalles de inicializaci n donde era imprescindible utilizar ensamblador Como resul tado utilizando la herramienta SLOCcount SLOC Source Lines Of Code se puede comprobar que cd usr src partikle core kernel lpc 9 6 9 5 sloccount SLOC Directory SLOC by Language Sorted 1511 lpc ansic 1410 asm 101 Totals grouped by language dominant language first ansic 1410 93 32 asm 101 6 68 B sicamente el c digo ensamblador escrito se encarga de preparar un contexto para poder llamar a la primera funci n C para llevar a cabo el resto de la inicializaci n por medio de c digo escrito en C por medio de lecturas escrituras sobre registros 2 3 3 Programaci n de aplicaciones PaRTiKle Una vez terminado el anterior paso ya podemos utilizar PaRTiKle para desar rollar aplicaciones con el LPC2000 A modo de ejemplo podemos compilar y ejecutar los ejemplos que se distribuyen con PaRTiKle se encuentran en user examples c examples cd usr src partikle cd user examples c
7. ack size erbose Compiling ebugging support loating Point Support MEL lt Help gt Figura 6 Configuraci n de PaRTiKle bajo el LPC2136 2 3 1 Introducci n a PaRTiKle La interfaz b sica que ofrece es la de POSIX threads PSE52 subconjunto de servi cios POSIX para sistemas m nimos Una caracter stica muy interesante de PaRTiKle es su modularidad esto es PaARTiKle implementa y ofrece la interfaz POSIX threads bas ndose en una interfaz con el hardware gen rica Con lo que es extremadamente sencillo portar PaRTiKle a distintas arquitecturas Buena muestra de esto es el porting de PaRTiKle a la arquitectura ARM7 para sistemas LPC que se describe en este documento Los aspectos m s destacados que facilitan las tareas de porting a nuevas arquitecturas son 1 Conjunto reducido de requisitos hardware initcode c digo de inicializaci n interrupts manejo de interrupciones timers programaci n de timers clocks print rutinas para enviar car cteres a un dispositivo de salida vga serie 2 Proceso de configuraci n y compilaci n sencillo 3 Estructura del c digo fuente En el momento de programar una nueva funcionalidad para el sistema se debe determinar si esta es com n a todo el sistema por ejemplo planificador gesti n timers se ales sistema de ficheros en dicho caso el nuevo c digos ser c digo portable y residir en el directorio core kernel port
8. ating Systems Platforms for Embedded Real Time applications 2005 http www xtratum org biblio 4 NXP LPC2131 2 4 6 5 User manual NXP founded by Philips http www standardics nxp com support documents microcontrollers search LPC2 amp type user 5 Trevor Martin The Insider s guide to the ARM7 based microcontrollers Hitex development tools http hitex co uk arm 6 Advanced RISC Machines ARM7TDMES rev r4p3 Technical Reference manual ARM Limited http www arm com documentation ARMProcessor_Cores 7 David Seal The ARM Architecture Reference Manual 2nd Edition Addison Wesley Longman Publishing Co http www arm com documentation books html 8 NXP LPC2000 Application Notes Boot sequence In terrupts Spurious Interrupts NXP founded by Philips http www standardics nxp com support documents microcontrollers search LPC2 9 Paul Stoffregen LPC2K_PGM Linux Bootloader Utility Philips LPC 2000 ARM7 Chips http www pjrc com arm lpc2k_pgm 10 The Mikrocontroller project http www mikrocontroller net articles LPC2000 12 Martin Thomas Philips LPC213x 214x examples ported for the GNU Toolchain http www siwawi arubi uni kl de avr_projects arm_projects Ipc2k_bundle_port 13 Intel Corporation Intel Hexadecimal Object File Format Specification Intel 1988 http www pjrc com tech 8051 pm2_docs intel hex html 14 Craig Peacock USB with the simplicity of RS 232 http www beyondlog
9. cas en cuanto a su modo de uso con la excepci n de que la UARTI proporciona un soporte adicional para el uso de un MODEM Ambos perif ricos cumplen la especificaci n est ndar industrial 550 Ambas contiene un generador de baud rate y fifos de 16 bytes para agilizar la recepci n transmisi n de car cteres Figura 4 UARTs serie presentes en el LPC2000 1 1 4 Gesti n de tiempo Los LPC2000 incluyen para la gesti n del tiempo un reloj RTC y dos tempo rizadores TO y T1 El RTC Real Time Clock que funciona a una frecuencia de 32Khz como reloj del sistema La resoluci n de este reloj es de 1 32K hz 3 05 107 sec Los temporizadores TO y T1 pueden ser utilizados tanto como temporizadores co mo contadores Estos funcionan a la frecuencia del bus de perif ricos PCLK Periph eral bus Clock que se calcula de la siguiente forma CCLK 60 10 60Mhz PDIV 4 PCLK CCLK PDIV 15 106 15Mhz Que proporciona una resoluci n de 6 66 1078 sec 1 1 5 JTAG ETM Un aspecto importante de estos dispositivos es que proporcionan interfaces para facilitar las tareas de depuraci n testing las cuales suelen ser necesarias en las etapas iniciales de programaci n En el caso de LPC2000 se puede utilizar un debugger como GDB Insight OpenOCD para acceder al dispositivo a traves de la interfaz JTAG Joint Test Action Group http www google es search q LPC2000 with JTAG gdb insigh
10. de forma que el procesador se encuentra en su hilo de ejecuci n y cuando alguno de los dispositivos requiere la atenci n del procesador realiza una petici n de interrupci n que el procesador puede atender Para ello el procesador ARM unicamente proporciona los modos de funcionamiento IRQ y FIQ el resto es tarea del sistema espec fico As pues los sistemas ARM incorporan un controlador de interrupciones que se encarga de notificar al procesador de las interrupciones y proporcionar una interfaz para su acceso control desde el procesador En el caso del LPC2000 este controlador se implementa mediante el VIC Virtual Interrupt Controller niRQ MA Vector Interrupt Controller Figura 3 Controlador VIC LPC2000 El VIC presenta un conjunto de registros mapeados en la memoria del ARM para acceder controlar las interrupciones de los distintos dispositivos disponibles en el LPC2000 por medio de escrituras lecturas en memoria Cuando se recibe una interrup ci n el procesador carga en el PC la entrada correspondiente del vector de interrupci n vector irq Esta a su vez ser una instrucci n de salto o modificaci n del PC en el caso de las IRQ FIQ se trata de un salto a un manejador de interrupciones global encargado de determinar la interrupci n del dispositivo espec fico que se ha producido y ejecutar su manejador asociado 1 1 3 Uart serie Los LPC2000 incorporan dos uarts en el chip las dos son id nti
11. examples make 66 o Tras esto se compilar n los programas c contenidos en el directorio actual el resultado ser un fichero prtk por cada c los ficheros prtk contienen el eje cutable del programa en formato ELF para poder ser cargados en el LPC2000 utilizan do el Ipc2k pgm han de ser convertidos a Intel Hex lo que se realiza mediante la orden make make hello world hex para luego utilizar el cargador flash para transmitirlo al LPC2000 y ejecutarlo ver la siguiente captura de pantalla figura del proceso de carga y ejecuci n lpc2k pgm 10 Port dev ttyUSB opened at 38400 baud Entering Bootloader Mode Reset CPU into bootloader Read hello_world hex 67416 bytes Attempting baud sync Baud sync sucessful Found chip LPC2136 256k Device Unlocked Erasing Sector Ot prep erase Ok Sector 1 prep erase Ok Sector 2 prep erase Ok Sector 3 prep erase Ok Sector 4 prep erase Ok Sector 5 prep erase Ok Sector B prep erase Ok Sector 7 prep erase Ok Sector 8 prep erase Ok Sector 39 prep erase Ok Sector 10 not used Sector 11 not used Sector 12 not used Sector 13 not used Sector 14 not used Programming Sector 0 0x00000000 0x00000FFF xmit prep write Ok Sector 1 0x00001000 0x00001FFF xmit prep write Ok Sector 2 0x00002000 0x00002FFF xmit prep write Ok Sector 3 0x
12. ic org usb ftdi htm 15 Craig Peacock Interfacing the Serial RS 232 Port http www beyondlogic org serial serial htm 16 Development systems Division Compiler Tools Group Procedure Call Standard for the ARM Architecture ARM Limited 2003 http infocenter arm com help topic com arm doc ihi0042a THI0042A_aapcs pdf 17 Leslie Lamport HIX A Document Preparation System User s Guide and Reference Manual Addison Wesley Reading Massachusetts second edition 1986
13. nuaci n se muestran las caracter sticas generales del modelo LPC2136 Modelo LPC2136 Procesador ARM7TDMTI S 60 Mhz Memoria RAM 32 Kbytes expandible m dulo externo Memoria ROM 256 Kbytes EEPROM electrically erasable programmable ROM Puertos serie UARTO serial 38400 bauds UART1 modem Relojes RTC 32 768 KHz Timers t0 t1 15Mhz CCLK 60 Mhz PDIV 4 Otros gpio spi pwm i2c can Cuadro 1 Resumen de especificaciones LPC2136 En la figura se puede ver la placa utilizada en el robot de tipo humanoide biro v2 20 de libertad para el movimiento del robot este robot incorpora el sis tema LPC2136 sobre el que se ha portado el sistema operativo PaRTiKle La placa ha sido dise ada en el Grupo de Inform tica Industrial en el Instituto de Autom tica e Inform tica industrial http www ai2 upv es Se puede encontrar m s detalles as como videos del robot ubiro v2 en funcionamiento en la siguiente direcci n http www gii upv es personal mialgil ubiro2 htm Figura 1 Placa utilizada por ubiro v2 Para una descripci n m s detallada de las caracter sticas del LPC2136 se puede ver su manual del usuario as como el manual del procesador ARM7TDMI Por otra parte para cuestiones generales sobre la arquitectura ARM ver el Architecture Reference Manual A continuaci n a modo de introducci n se presentan una serie de secciones que tratan los aspectos b
14. os de funcionamiento del car gador en particular los campos m s relevantes son Crystal La frecuencia del reloj utilizado por el procesador al consultar el man ual del LPC2136 encontramos que es de 10 MHz Baud Tras varias pruebas con el cargador se ha comprobado que la mayor fre cuencia de funcionamiento del puerto serie es de 38400 baudios se pueden en contrar m s detalles en el manual sobre el motivo de esta frecuencia de fun cionamiento Port El puerto serie del PC host al que se ha conectado el LPC2000 CI PEK TT Firmware tmprBlirky hex Progr s Now Port dev ttyS 1 Baud 38400 Cystal 100 MHZ Reboot Booloader Quit b Terminal serie de la uart0 a entana de con guracion Figura 5 Ventana de configuraci n y terminal serie de la uart0 del LPC2000 Tras ajustar correctamente los par metros del cargador al ejecutar la orden de pro gramar nos aparecer una ventana de terminal por la que se vuelca la salida del puerto serie UARTO del LPC2000 Como se puede observa en la imagen la extensi n del fichero cargado es hex Esto se debe a que el contenido del fichero imagen cargado en la ROM debe estar en formato ihex Intel Hexadecimal Todos nuestro programas deber n ser traducidos del formato ELF formato por defecto producido por el linker en el entorno Linux a ihex Para ello disponemos de la herramiento objcopy 2 2 1 Conexi n serie con FTDI
15. s configurar las interrupciones para su uso Dispositivos en particular el puerto serie para poder depurar el c digo que esta mos ejecutando Inicializaci n de los modos de interrupci n Las restantes entradas del vector de interrupci n tambi n deben de inicializarse ya que se encargan de la gesti n de in terrupciones IRQ FIQ y excepciones Undefined Data Abort Program Abort etc que es interesante tratar para presentar un volcado del estado del procesador registros y pila para tener informaci n suficiente para comprender las causas de la excepci n Reserva de pilas de programa El est ndar del procedimiento de llamadas a fun ciones de C para la arquitectura ARM ATPCS requiere de un puntero a una pila de memoria para proporcionar los bloques de activaci n almacenamiento de variables locales temporales de las funciones en C Para ello es necesario durante la inicializaci n del procesador proporcionar una zona de memoria suficientemente grande para la pila del modo funcionamiento del procesador SVC En caso de no ser as y si el tama o reservado para dicha pila fuera inferior al utilizado el sistema comenzar a a utilizar zonas de memoria no reservada con lo que dejar a de funcionar correctamente En dicho caso se pueden editar los fuentes para ampliar el tama o de la pila SVC 1 1 2 Interrupciones Para gestionar los dispositivos de los LPC2000 se utiliza el modelo de peticiones de interrupci n
16. sicos de la programaci n de los sistemas LPC2000 En estas secciones se da respuesta a dos preguntas b sicas el procedimiento para arrancar al procesador y el procedimiento de carga de c digo para su posterior ejecuci n 1 1 1 Inicializaci n Al poner en funcionamiento el procesador este comienza a ejecutar c digo en el vector de interrupci n de reset vector reset Abajo se pueden ver las distintas causas de interrupci n que puede recibir el procesador junto con los vectores de inter rupci n a cargar en cada caso y sus direcciones de memoria entradas direcciones prop sito vector reset 0x00000000 Reset vector undf 0x00000004 Undefined Instruction vector swi 0x00000008 Software interrupt vector pabt 0x00000010 Program abort vector dabt 0x00000014 Data abort vector cksum 0x00000018 Reserved checksum vector irq 0x0000001c Interrupt ReQuest vector fig 0x00000020 Fast Interrupt reQuest Figura 2 Vectores de interrupci n ARM Tras un reset el procesador asigna al contador de pograma PC la direcci n del vec tor de interrupci n de reset vector reset Como resultado de esto se comienza a ejecutar la instrucci n que se encuentreenPC 0x00000000 Elvector reset es el encargado de inicializar el LPC2000 en el siguiente orden C digo de arranque programaci n PLL Inicializaci n de los modos de interrupci n reservar pilas de programa stacks Interrupcione
17. t En caso de no disponer de debugger se utiliza la depuraci n por medio de printf por el puerto serie 2 Entorno de programaci n En este apartado se comenta la puesta a punto desde cero de un entorno de progra maci n para desarrollar aplicaciones sobre el sistema operativo embarcado PaRTiKle En este apartado se contemplan las tareas de Configuraci n del compilador Configuraci n del cargador flash Configuraci n de PaRTiKle Y por ltimo la compilaci n y ejecuci n de aplicaciones sobre PaRTiKle 2 1 Configuraci n compilador Para programar el LPC2000 es necesario tener un conjunto de herramientas com pilador linker ensamblador que permitan generar c digo para el juego de instruc ciones Arm Thumb del procesador Para ello se utiliza el compilador cruzado host x86 target arm del proyecto GCC que permite generar c digo para el procesador arm7tdmi s El compilador utilizado para compilar PaRTiKle para el LPC2000 se ha obtenido de http www mikrocontroller net Los pasos para preparar el entorno de compi laci n utilizado por PaRTiKle asumen que el directorio raiz del compilador se en cuentre en usr local arm 1pc Podemos descargar los fuentes del compilador con los siguientes comandos S fuente http www mikrocontroller net wget http www mikrocontroller net download X arm toolchain linux 2 tar bz2 tar xjvf arm toolchain linux 2 tar bz2 C usr local mv usr local arm

Download Pdf Manuals

image

Related Search

Related Contents

Namag n°75 - Ville de Namur  SEGURIDAD PARA EL MINI CARGADOR  Otterbox Defender Case  Panasonic CF-VEB731U  Manual  Empalme consistente y duradero, todo el tiempo  Lenovo IDEAPAD U150 User's Manual  New Vission Pad U-15WF User Manual  und Bedienungsanleitung Instructions for Installation and  USO E MANUTENZIONE / PARTI DI RICAMBIO  

Copyright © All rights reserved.
Failed to retrieve file