Home
        Introduction to the Coldfire 5272 - J.-M Friedt
         Contents
1.   include  lt sys stat h gt     fd open   dev uc_int   0_RDONLY     while  1   read fd i 16     include  lt fcnt1 h gt  for  n 0 n lt 16 n    print     x      char   iln    amp 0xff    include  lt asm coldfire h gt     defines MCF_MBAR printf    n     include  lt asm m68knommu m5272sim h gt     defines PADDR    return 0     int main int argce char   argv      char i 16  int fd char n     The steps for compiling this module are described in a document available in  linux 2 4 x Documentation kbuild in the uClinux directory structure  most importantly config language txt  and makefiles  txt which describe the modifications to be brought to Config  in and the Makefile  in order to include the new module in the compilation sequence   In summary  we create a direc   tory named uc_int in the linux 2 4 x drivers char directory of uClinux  in which we place the  source code of our module and a Makefile including the lines obj   CONFIG_UC_INT     uc_int o  and include   TOPDIR  Rules make  Then in the Makefile of the char directory we add  ifeq    CONFIG_UC_INT   m    subdir   CONFIG_UC_INT     uc_int   obj   CONFIG_UC_INT     uc_int uc_int o  endif  and finally in linux 2 4 x drivers char Config inweaddtristate    uc_int driver    CONFIG_UC_INT  to add a new entry in the kernel configuration menu  A make to build the kernel then creates the  module uc_int o which is appended to the kernel by executing an insmod as would be done  classically under linux     10 Results    We have attach
2.  contacts bouncing against each other upon switch  closure  debounce    we add a 7414 Schmitt trigger with a low RC time constant  in order not  to slow down the response time of the circuit  in order to trigger only one  and not several   interrupts when the switch is closed  The circuit  using a component supplied with 3 3 V  LVC  type   is connected directly to pin 77 of the uCdimm  In case a 3 3 V compatible component is not  readily available  it should be possible to use any TTL compatible  5 V  component connected to  the hardware interrupt related pin by a resistor  fig  3     Similarly to the activation of hardware interrupts on IBM compatible PCs  the initialization  and acknowledgement sequence after interrupt processing is strongly dependant on the hardware   In the case of interest here  namely the management of IRQ0  in the Arcturus naming convention   which is INT2 in the Motorola naming convention   the register with which we must interract is  ICR1 located at address MBAR 0x20  Initializing interrupt i is done by setting INT IPL to 0x111   Acknowledging of this interrupt after management of the event is completed by setting to 1 the  bit INTzPI  One must rember during the management servicing  function uc_int_irqhandler      to deactivate the interrupt before acknowledging  then to perform the actions associated with this  interrupt  before finally re activating the interrupt at the end of the service routine  All the other  functionalities are standard modul
3.  of electrical mishandling are quite reduced thanks to the simple connections  The  first test is to check whether when powered up  the uCdimm 5272 transmits a message  The default  protocol used is to communicate through the first serial port  9600 bauds and N81  The following  messages  obtained either by cat  lt   dev ttySO or cu  1  dev ttySO  s 9600  appear upon  power up      uCbootloader 1 7 7r1   c  Copyright 2001 2004 Arcturus Networks Inc    All Rights Reserved    CACHE on   BOOT FLASH type 00c8 AT49BV32XA  0x10c00000   DP 002000 DP 004000 DP 006000 DP 008000 DP 00a000 DP 00c000  DP 00e000 DP 010000 DP 020000 D  030000 D  040000 D  050000  D  060000 D 1070000 D  080000 D  090000 D  0a0000 D  0b0000  D  0c0000 D  0d0000 D  0e0000 D  0  0000 D  100000 D  110000  D  120000 D  130000 D  140000 D  150000 D  160000 D  170000  D  180000 D  190000 D  1a0000 D  1b0000 D  1c0000 D  140000  D  1e0000 D  1  0000 D  200000 D  210000 D  220000 D  230000  D  240000 D  250000 D  260000 D  270000 D  280000 D  290000  D  2a0000 D  2b0000 D  2c0000 D  240000 D  2e0000 D  2  0000  D   400000    BS    The command    go    then launches the operating system stored in non volatile flash memory   The uCdimm 5272 is provided with a functional uClinux system  A classical linux bootsequence  is observed until a login prompt appears   the only account is root with the password uClinux   Discovering the available tools is straighforward   all executable binaries are located in  bin  We  will se
4.  unsigned long     MCF_MBAR   MCFSIM_ICR1    tmp    if   retval   request_irq  uc_int_irq  uc_int_irqhandler  SA_INTERRUPT   uc_int   dev       dbg  unable to assign irq  d   uc_int_irq  goto exit_sem                 static ssize_t uc_int_read  struct file  file  char  buffer  size_t count  loff_t  ppos    unsigned long tmp 4    besa     interruptible_sleep_on   amp dev  gt uc_int_queue      sleep until a interrupt occurs     memcpy   void    tmp   void     MCF_MBAR   MCFSIM_ICR1   sizeof  tmp                    the realease method is call when user want close    the device       static int uc_int_release  struct inode  inode  struct file  file      C        tmp    0x0f000000   volatile unsigned long     MCF_MBAR MCFSIM_ICR1  tmp  free_irgq  dev  gt uc_int_irq  NULL     eee           This module registers the interrupt service routine for INT2  in the Motorola naming conven   tion  thanks to the function request_irq    A user space client then listens through an interface    dev uc_int defined with a major number of 6 by running the command mknod uc_int c 6 0  in romfs dev of the uClinux directory    the function read    being blocking  the execution of the  client only continues when a hardware interrupt is triggered  The module then transfers to the  client the 16 bytes displaying the values to which registers INTiPL  i      1  4  are set  i e  most  significant word of the ICR1 register       include  lt stdio h gt    include  lt stdlib h gt    include  lt sys types h gt  
5. Introduction to the Coldfire 5272  J  M Friedt  S  Guinot      Carry  Association Projet Aurore  16 route de Gray 25030 Besan  on  http   projetaurore assos univ fcomte fr    7 juin 2005    We here aim at a step by step introduction to the use of embedded systems based on uClinux   The objective is to allow one to get familiar with linux running embedded systems on a limited  budget  We will first tackle the hardware aspects including the printed circuit board  PCB  to be  developed for running a test circuit  We will then present the development environment and most  interstingly the cross compiler   for generating a Motorola compatible binary in a computer based  on an Intel processor  Finally we will show how to access hardware peripherals of the processor  and the programming method somewhat unusual on embedded devices     1 Hardware aspects    The uClinux kernel  1  2  3  has been ported to a wide range of microcontrollers and processors   Its main contribution is to run on systems with no Memory Management Unit  MMU  and hence  to run on relatively simple embedded devices only including a microcontroller and a few additional  necessary peripherals  We impose two requirements in choosing the hardware   price and weight   The latter requirement is defined by our objective   the final system should fit in a flying object   hence the necessity for a lightweight  low volume and simple power supply circuitry to be used  with our processor board  Our choice is the Arcturus Net
6. _PWCRi    3  the relative width of the pulses is defined by the value stored in MCFSIM_PWWDi located at  address MBAR 0xd0 4 7    We thus generate with a division factor of 0x0c pulses on PWMO every 15 8 ms  with widths  ranging from 1 5 to 2 5 ms when the delays range from 13 to 37  as required for the angular control  of servo motors     We see in this example the complementarity of the programming methods under uClinux    simultaneously programming on a high level operating system  for example when accessing the  RS232 ports on the uCdimm exactly as would be done on a PC  and low level programming  as more usually performed on microcontrollers when directly writing to Coldfire 5272 hardware  configuration registers     9 Interrupts management    Hardware interrupts  which trigger a software event upon a hardware event generated on one of  the pins of the processor  are an unusual case in this presentation since only the kernel can access  these functionalities  We must thus  in order to be able to use these functions of the Coldfire  processor  write a module to be appended to the kernel  There again we will find programming  structures familiar to linux developpers  with methods usual for module programming  13   as well  as hardware specific calls which require an extensive reading of the datasheet of the processor  6   chapter 7     As a first step an additional hardware circuit is needed to trigger a hardware interrupt by a  push button while avoiding the effect of the
7. dist   http   www seattlerobotics org encoder 200009 qcam  html  http   projets sequanux org membres sim uclinux webcam     J  Corbet  A  Rubini  amp  G  Kroah Hartman  Linux Device Drivers  3rd Edition  O   Reilly Ed    2005     http    photopc sourceforge net protocol html  http    projetaurore assos univ fcomte fr ballon   http   friedtj free fr aduc816  pdf    W R  Newcott  Return to Mars et J B  MacInnis  E  Kristof  Titanic   Tragedy in Three  Dimensions  National Geographic  Aout 1998    http    www dilnetpc com dnp0038 htm    11    
8. e later  section 6  how to use minicom to communicate and transfer new binary images    Having checked that the communication through the serial port is working  we still have to  test the ethernet connexion  The default IP address of the uCdimm is 192 168 1 200 which is  initialized if  and only if  an ethernet connexion is detected during the boot sequence  The common  network configuration tools ifconfig and route are available to chage these parameters and a  ping command towards the host used as the serial terminal allows us to check that the ethernet  communication is functional  The system is shipped with a telnet daemon  login   root  passwd    uClinux  waiting for a connexion  as well as mount  The filesystem of the host can thus be exported  by NFS using the following command   mount  o nolock moutvers 2 IP_hote  r  pertoire   mnt where the options are necessary for a proper communication between the NFS server provided  in a linux 2 4 22 kernel and the uCdimm     3  Cross compiling    Having checked that the basic system is functional  we must now learn how to cross compile  our own application in order to       optimize the kernel to our application       add new applications  for exampe web server  text editor  etc            develop our own applications   We have recompiled the toolchain targetted towards the m68k elf  i e  binary for Motorola  68k processors in ELF format which will then be converted to a flat binary format to be directly  executed under uClinu
9. e programming as presented in the following example  in which  we have only kept the parts which are specific to our interrupt management module for the version    T ucdinms 272    N                                     1 6 74LVC14 74ers  5 1 kQ    3 3 V IRQO   4 7uF             Fic  3     Schematic  left  and implementation  right  of the debounce circuit used to trigger a  single hardware interrupt when a push button is pressed     of the kernel ported to the Coldfire processor  as well as the communication with user space  A  fully functional version of the module is available at  12       define IRQ_DEFAULT 66  static int uc_int_major   6     static struct file_operations uc_int_fops     owner  THIS_MODULE    read  uc_int_read    open  uc_int_open    release  uc_int_release     static void uc_int_irgqhandler  int irq  void  dev_id  struct pt_regs  regs    unsigned long tmp   Lave     tmp      volatile unsigned long     MCF_MBAR   MCFSIM_ICR1          disable interrupts      tmp  amp  Oxf8ffffff   volatile unsigned long     MCF_MBAR MCFSIM_ICR1  tmp      we ack this interruption to the hardware      tmp   0x08000000   volatile unsigned long     MCF_MBAR MCFSIM_ICR1  tmp      and wake up user application waiting for a read     wake_up_interruptible   amp dev  gt uc_int_queue         restore interrupts       static int uc_int_open  struct inode  inode  struct file  file    C       tmp      volatile unsigned long     MCF_MBAR   MCFSIM_ICR1      tmp    0x0  000000      volatile
10. ed our circuits including the uCdimm5272 board  two black and white webcams  as presented previously  motorized by a servo motor  controled by the PWM   an Olympus C 860L  digital camera  remote contolled through an RS232 link  14   and a wifi module DLink DWL 810   to a gondola attached to a 2 60 m diameter tethered gas balloon inflated with helium  European  Balloon Corporation  Belgique   15   The wifi link used to transmit images to the ground station  and to control the digital camera works when no obstacle is present in the path at a distance of  more than 150 m  Fig  4   The lack of analog to digital converter to monitor the environment    is compensated for by connecting to the second RS232 port of the wCdimm a microcontroler   ADuC814  16   used to read an analog value  in our case the temperature of the gondola  and  store the result in a file mounted by NFS from a server located on the ground  All these devices  are powered by a 2000 mA h Lithium polymer battery  T2M Powerhouse  providing an autonomy  of about 1 h  The whole gondola weights about 1 kg        Fic  4     Top  aerial photography of the parc of the Besancon observatory  left  and sunset on the  Ecole Nationale Sup  rieure de M  canique et des Microtechiques  ENSMM   the new Maison des  Microtechniques under construction and the buildings of the CROUS  right   Bottom   snapshot  of the Laboratoire de Physique et M  trologie des Oscillateurs  FEMTO ST LPMO   Besancon   France  and resulting stereoscopic 
11. g way       volatile unsigned char     MCF_MBAR MCFSIM_PADAT 1    value    to write on port C and     volatile unsigned char     MCF_MBAR MCFSIM_PCDAT 1    value    to write on port A  notice that the names of the port and of the register are inverted due to  the differences in the naming conventions of Arcturus Networks and Motorola    Reading from port B is done with  value    volatile unsigned char    MCF_MBAR   MCFSIM_PCDAT        Once familiar with these basic concepts  both hardware and software   we just have to imple   ment the communication protocols to grab an image as shown on figure 2  right   The images are  acquired in a loop and first stored on an NFS mounted directory for later viewing on a PC with  a graphical interface     Quickcam control software    The program as described here  12  periodically grabs an image on the uCdimm and transfers  it on the network to clients running on PCs for display and storage  Thus  we have selected to  run a multithreaded server on the uCdimm  using the pthread library optimized for embedded  applications and provided with uClinux  in order to allow multiple remote PCs to connect directly  to the image server  with the aim of disseminating stereoscopic images grabbed by the uCdimm   on a balloon or an unmanned autonomous vehicle for example  while multiple clients watch  simultaneously the result of these acquisitions  The ethernet connexion was replaced by a wireless  Wifi connexion thanks to a DLink DWL810  ethernet to wif
12. i converter  compatible in terms of  supply voltage with an embedded application  5 V voltage regulated by an 7805  600 mA current     We have completed the interfacing electronics by doubling all bus management components   75245 and 74573  so that two cameras could be connected in order to be able to measure the  distance of target objects by means of stereoscopy  the computational power of the Coldfire 5272  being enough for calculating the cross correlation between a few lines of the acquired images   Furthermore  we have implemented jpeg image compression either before image transmission  in  order to save bandwidth and hence increase the wifi range   or after reception of the images for a  direct display on a web interface        8 Using the PWM    The Pulse Width Modulation  PWM  generators are useful peripherals for controlling the  speed of DC motors  to make simple digital to analog converters  after low pass filtering  or  in  our case  for the angular control of servo motors as used in remote controlled models    Two of the PWMs integrated in the Coldfire 5272 are available to the uCdimm user  Their use  is consistent with their description provided in the 5272 datasheet  6  chapter 18       1  PWM i is activated by setting the most significant bit of the control register MCFSIM_PWCRi  located at address MBAR Oxc0 4 i  i   0  2     2  the repetition rate of the pulses is defined by the division factor set by the least significant  bits of this same register MCFSIM
13. image to be watched with red blue glasses  17      11 Conclusion    We have presented the successive steps during the development of our embedded application      image acquisition and transfer from a tethered balloon     based on uClinux  We have first be   come familiar with the development tools  bootloader  cross compilation  transfer of the resulting  programs by NFS  before approaching the hardware interfacing issues and software access to the  input output ports  The main point of using the Arcturus Networks uCdimm 5272 board is the  availability  at minimal cost and power consumption  of a decent computational power and the  availability of all the development tools and libraries provided by linux    Several manufacturers are now providing new boards with new functionalities and smaller  dimensions proving new application opportunities   we have just bought an SSV DIL NetPC  DNP 5280  18  whose presentation will be the subject of another article   this board is based on  the Coldfire 5282 which provides several useful peripherals which were not available of the 5272      for example analog to digital converters  an I C bus or a CAN bus     as well as a connector much  more convenient to use  DIL64   Despite their naming similarities  the programming model is very  different than that of the 5272 since like on other processors with an MMU  we must go to kernel  space to access registers controling hardware functionalities on the 5282     10    Acknowledgements    We ac
14. ire  a heat sink since the power consumption is so low  The RS232 ports are directly usable   the TTL  to RS232 voltage converters are included on the board  The same is true of the ethernet ports    the transformers converting the output signals to differential pairs are mounted on the board and  use a large volume over the PCB  The connector is a SODIMM 144 pins as found for connecting  RAM on laptops  bought from Digikey in the US since we were unable to locate such connectors  in France  7    One must expect though  to compensate for the expensive daughter board sold by  Arcturus  the access to a mandatory SMD compatible soldering iron and a binocular microscope  for soldering the connector as well as the ability to etch a single sided PCB with tracks separated  by 0 8 mm        lcross compilation   compiling a binary for a given target architecture  Motorola Coldfire  on a processor of    another architecture  here Intel x86 or SPARC     uCdimm5272    war       a       oe    l    E    regul  3 3 V      bus   ports    camera2       Fic  1     Test board including the emulation of a TTL compatible PC parallel port for interfa   cing the webcam  The board holding the uCdimm  including the voltage regulator  and ethernet  connector and an RS232 connector  is visible to the left while the A  B and C busses are trans   ported to a daughter board dedicated to the CMOS TTL levels conversion and multiplexing these  busses to the two webcams     2 First time startup    The chances
15. is working on  in our case Arcturus 5272   and selects whether he wants to modify the default parameters of the kernel for this hardware  in  our case we must change the processor frequency from 48 to 66 MHz and the amount of RAM    from 2 to 4 MB  and or the applications compiled in the disc image to be loaded to RAM  We  always use the compact C library uClibc  AFter leaving this first menu  the following menus  kernel  configuration and utilities  appear  The compilation is then completed by running make dep and  make which end up by putting in the images directory an image of the disc image bin ready to  be transferred to the RAM of the embedded device  and in the romfs directory the individual  files included in this image  By mounting via NFS this latter directory  one can execute these new  programs without having to transfer the whole image to RAM through the RS232 link  rx from  the bootloader   a lengthy operation detailed in the next paragraph  Notice that the kernel always  executes from RAM due to excessive memory access times to the other kinds of memories   even  a kernel to be stored in flash memory must be defined  in the Processor type and features  menu of the kernel configuration  with Kernel executes from RAM     6    Transferring an image of the filesystem    We have seen that cat or cu can be used for monitoring the behaviour of the uCdimm  A more  complete tool is minicom  which however requires a few initial configurations to be usable      1  lancer 
16. knowledge the support of F  Vernotte  director of the Besancon observatory  for kindly    hosting the student association Projet Aurore  and the help of H  Bassmann  The Imaging  Source  http    www theimagingsource com   for offering two identical webcam lenses  ref  Ado   gon L12mf3 6f  so that we could achieve stereoscopic imaging  Vincent Giordanno and the    os   cillator metrology    team of the FEMTO ST LPMO laboratory have provided the helium for the  tethered balloon  The association for the promotion of opensource software in Franche Comt        Sequanux  www sequanux org      is acknowledged for its logistics support     R  f  rences    1  2  3       10  11  12  13    14  15  16  17    18             Linux embarqu     le projet uClinux     Linux Magazine  pp 16 22  F  vrier 2002   in French      Linux et le syst  me sur silicium     Linux Magazine  pp 50 59  Avril 2005   in French     M  Opdenacker     Embedded Linux kernel and driver development     disponible    http      free electrons com    http    www arcturusnetworks com coldfire5272 shtml  http   friedtj free fr h8eng pdf    MCF5272 ColdFire Integrated Microprocessor User Manual  MCF5272UM   disponible     http   www freescale com webapp sps site prod_summary  jsp code MCF5272    http   www digikey com  reference 54697 1440    http    www uclinux org pub uClinux uclinux elf tools   m68k elf tools 20030314 sh    http    www uclinux org pub uClinux uclinux elf tools gcc 3   http   www uclinux org pub uClinux 
17. launch the configuration pannel of minicom by    CTRL A O     Serial port setup     Serial Device  gt   dev ttyS0  Serial port setup     Bps Par Bits     9600 8N1    Serial port setup     Hardware Flow Control     No    OL a cn    Serial port setup     Software Flow Control     No    and check that under    File transfer protocols    we have    xmodem  usr bin sx  vv      There is no use attempting an image transfer at 115200 bauds   while all our transfers succeeded  at 57600  they always failed at 115200  Once an image has been transferred  remember to set the  terminal speed back to 9600 bauds before launching the goram command since linux will open  a terminal on the serial port expecting communication at this speed  After observing that the  image stored in RAM behaves as expected  it can be permanently transferred to flash memory by  running the instruction program from the bootloader after the transfer rx  In our case a satisfying  result was obtained after         having edited etc inittab and removing the execution of agetty in order to free the serial  ports  this is done in the vendor Arcturus uC5272 directory otherwise this file would be  replaced by the default one during the next kernel compilation        having added in etc a file passwd including an entry for root with no password  in the  directory romfs etc since this file is not replaced during the compilation of a new kernel        having added in the user applications fundamental tools such as 1s  mkdir a
18. mming ports A to C of the Arcturus hardware seemed not to match the programming rules  given by Motorola  It appeared in fact that the port called B on the uCdimm5272 is in fact the  least significant byte of port C of the Coldfire 5272  port A of the uCdimm is the most significant  byte of port C of the Coldfire 5272  and finally port C of the uCdimm is the most significant  byte of port A of the Coldfire  This surprising result is confirmed by the manipulation of the  port direction registers   the most significant byte of PCDDR must be modified for port B of the  uCdimm to become an output port    In summary         ports are configured as GPIO by     volatile unsigned long    MCF_MBAR   MCFSIM_PACNT     0x40000000   to use ports  A and B as general purpose input outputs  There is no use in modifying MCFSIM PBCNT fol   lowing the naming conventions we just described   ethernet and serial interfaces are always  available        PADDR and PCDDR direction registers define whether a port is set for intput or output   the most significant byte of PC  Coldfire naming convention  setting the direction of port B   Arcturus Networks naming convention   Hence  to configure ports A and C as outputs and  the 5 least significant bits of port B as inputs with the 3 most significant bits as outputs  we  use     volatile unsigned short     MCF_MBAR   MCFSIM_PADDR     Ox0Off       volatile unsigned short    MCF_MBAR   MCFSIM_PCDDR     OxeOff        writing on a port is done in the followin
19. n the PC parallel port and the Quickcam is not freely  available  but several opensource software  Linux  DOS and 68HC11  11   provide the successive  steps needed to configure the camera and grab images    We observe that 8 bits aree needed for the communication from the uCdimm to the camera   sending commands through port A   5 bits from the camera to the uCdimm  reading pixels as  nibbles and handshake through port B  and 2 control signals from the uCdimm to the camera   port C   We will later use an additional 2 output bits on port B to multiplex the ports and  hence connect simultaneously two cameras  Interfacing the 3 3 V logic to TTL is done by resistors   pull up resistors from 3 3 V to TTL and current limiting resistors in series from TTL to 3 3 V 2    We have observed that all pins  whether as inputs or outputs  require such an interface without  which proper communication with the camera could not be achieved  Port A is thus connected to  the camera via a 74LS245 bus interface while ports B and C are connected throught a 74HCT573  latch  the selection of the components being only defined by their availability  and any other TTL   compatible bus interfacing chip could be suitable   The advantage of using a 74245 to interface  port A is that we will later be able to use this port in both directions  and hence speed up the  image transfer from the camera to the uCdimm     The uClinux operating system provides the address of some of the useful registers   the base  add
20. nd  in order to  activate NFS access  portmap and mount  Notice that for the latter  the default uClibc confi   guration must be edited to activate RPC  deactivated by default   modify UCLIBC_HAS_RPC y   by editing the file config uClibc       having added our own programs  either in the romfs bin directory following manual com   pilation  or after having appropriately modified the Makefile as described in section 3      7 Development of a practical application   image transfers    The practical application we wish to develop in order to be able to transfer images from a  captive balloon are      1  capture images and eventually compress them  2  replace the ethernet connexion by a wireless connexion    3  transfer images in real time through this netwoek connexion    The first point will be achieved by using old black and white Connectix Quickcam webcams  which used to be connected to the PC parallel port  This first part will get us used to programming  ports A  B and C as inputs and outputs  as well as with the electronics aspects of converting CMOS  3 3 V logic levels  uCdimm  to TTL level  5 V  webcam     The second point is simplified by using a commercial product   an ethernet wifi converter is  used as wireless communication interface    The last point is achieved by modifying the program controlling the camera so that it conti   nuously transfers images through the network rather than saves them in files     7 1 Webcam programming    The communication protocol betwee
21. omewhat unusual commands in which the pointer addresses are defined to reach a  predefined memory location    A first simple example is to have LEDs connected to ports A and C  pins 53 60 and 71 74 of the  uCdimm 5272  blink  Reading the Coldfire 5272 datasheet teaches us that these ports are accessed  by reading and writing to a base register  MBAR  incremented by 0x86 and 0x96 respectively  The  choice of ports A and C is dictated by the fact that the functions of port B are multiplexed between  a digital general purpose input output  GPIO  port and the first serial port  ttyS0  which want  to keep running  We will see though later that due to naming conventions differences between  Motorola and Arcturus  all ports will finally become usable    We will see  6  chapter 17  that 3 registers control the behaviour of each port          PiCNT  i A  B  defines the mulitplexed mode of each port  for example port B is multiplexed  with the first ethernet  serial ports        PiDDR  i A  B  C  defines the direction of each pin       PiDAT  i A  B  C  defines the level of each pin  read if the pin is configured as an input     5 Compiling a new kernel    The uClinux distribution includes linux kernels 2 4 and 2 6 adapted to systems which lack  MMU  The configuration is done as would be done with a classical linux   make menuconfig   The difference then comes with the menu that appears   instead of directly getting to the kernel  configuration menu  the user selects which hardware he 
22. ress register MBAR is defined in asm coldfire h  in a constant called MCF_MBAR  while the  hardware configuration registers are defined in asm m68knommu m5272sim h     uClinux  3 3V        portB_ portC portA                      av 8  b gt  Hob sv   H sy                74HCT573 ENFDIR ENDR  i TALS245 74LS245    status contro data status control data  parallel port  5V  parallel port  5V                                               Connectix Quickcam B amp W Connectix Quickcam B amp W                   Fic  2     Left   interface circuitry between the uCdimm  3 3 V CMOS  and TTL level electronics  compatible with the PC parallel port for connecting a webcam  The TTL components are used as  buffers and eventually for the multiplexing of the ports of the processor between the peripherals   Port A is used as a bidirectional data bus  commands from the uCdimm to the camera  pixel  values in the other direction   the 5 least significant bits of port B are used for reading the data  from the camera  port C is used for sending control signals to the camera and finally 2 most  significant bits of port B are used for multiplexing the digital circuits between the two cameras   Right   example of stereoscopic images obtained with the cameras connected to the uCdimm  6  bits  pixel      After observing that the adresses of the registers as defined in the uClinux header files indeed  match the values provided in the Motorola Coldfire 5272 datasheet  we were surprised to see that    progra
23. works uCdimm 5272  4   which answers  our price criteron  275 US dollars including shipment  and most importantly as being the smallest  system we could find for such a computational power  for example a Renesas H8 microcontroller  5   based board     smaller and cheaper     was eliminated for lack of sufficient memory and processing  power   The hardware we selected includes 4 MB of non volatile flash memory  8 MB RAM   a Motorola Coldfire 5272 processor clocked at 66 MHz and a second 100 Mb s ethernet port   additional to the one includeed on the processor     The uCdimm 5272 is provided with no documentation other than the few web pages available  on the Arcturus web page  mainly the connector pinout and the commands of the proprietary  bootloader provided for hardware initialization   A much more expensive development daughter  board is available but was not within our available budget  uCevolution board   The datasheet  of the embedded processor  Motorola Coldfire 5272  6   quickly becomes a fundamental reading in  order to understand the capabilities of this system as will be described later    Getting the Arcturus uCdimm 5272 to run is surprisingly simple   the only requirement is a  3 3 V power supply  which is provided in our case by a LM317 voltage regulator compatible with  a wide input voltage range     5 37 V     including the slowly decreasing voltage of a battery pack   properly decoupled to ground by a 440 nF capacitor  The voltage regulator does not even requ
24. x  on Intel based PCs and SPARC  The simplest method on PCs is to  unarchive an image of the directory including all the precompiled binaries for intel processors  gcc   1d  as and associated libraries   8   Under SPARC the compilation of all these tools is necessary    binutils  v 2 10   gcc  v 2 95 3   genromfs  v 0 5 1  and STLport  v 4 5 3   with the option  TARGET m68k elf  the whole procedure being automated by the script build uclinux tools sh   9     Once the toolchain available  we must fetch an uClinux source archive  10   configure it for our  hardware and compile a new kernel  see section 5   Our application to be included in the embedded  system will also be compiled during this step as described in Documentation Adding User Apps HOTO  in the uClinux distribution     4 Programming under uClinux    The development environment on a uClinux system is closer to that commonly found on mi   crocontrollers or under MS DOS than that found usually on a multiuser  multitasking operating  system  The fact that our program can freely access the whole memory range is possible thanks to  the lack of MMU which thus cannot generate a  segmentation fault  when our process attempts  an access to a memory zone out of its allocated range  This major difference provides us with the  ability to access hardware peripherals by writing and reading to pre defined memory locations  since on Motorola architectures input output peripherals are reached as memory accesses  Hence  we will use s
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Weitere Informationen auf unserer Webseite www  PRIMERGY 冗長化高効率内蔵電源ユニット(PG  COLOSSO EVO CARRO  Product Service Manual - American Weigh Scales Inc    Sony CMT-HPZ7 User's Manual  GE WB48X10056 User's Manual  GD-19L1G INSTRUCTIONS GD-17L1G  Backup and Restore Guide for Informix Dynamic Server    Copyright © All rights reserved. 
   Failed to retrieve file