Improving the Beaglebone Board with Embedded Ubuntu, Enhanced GPMC Driver and Python for Communication and Graphical Prototypes

Improving the Beaglebone Board with Embedded Ubuntu, Enhanced GPMC Driver and Python for Communication and Graphical Prototypes

Final Master Thesis Improving the BeagleBone board with embedded Ubuntu, enhanced GPMC driver and Python for communication and graphical prototypes By RUBÉN GONZÁLEZ MUÑOZ Directed by MANUEL M. DOMINGUEZ PUMAR FINAL MASTER THESIS 30 ECTS, JULY 2015, ELECTRICAL AND ELECTRONICS ENGINEERING Abstract Abstract BeagleBone is a low price, small size Linux embedded microcomputer with a full set of I/O pins and processing power for real-time applications, also expandable with cape pluggable boards. The current work has been focused on improving the performance of this board. In this case, the BeagleBone comes with a pre-installed Angstrom OS and with a cape board using a particular software “overlay” and applications. Due to a lack of support, this pre-installed OS has been replaced by Ubuntu. As a consequence, the cape software and applications need to be adapted. Another necessity that emerges from the stated changes is to improve the communications through a GPMC interface. The depicted driver has been built for the new system as well as synchronous variants, also developed and tested. Finally, a set of applications in Python using the cape functionalities has been developed. Some extra graphical features have been included as example. Contents Contents Abstract ..................................................................................................................................................................................... 5 List of figures .......................................................................................................................................................................... 7 List of tables ............................................................................................................................................................................ 9 2 Introduction ...................................................................................................................................................................... 11 2.1 Work done before .................................................................................................................................................. 12 2.2 Scope ........................................................................................................................................................................... 12 3 Internet of Things ........................................................................................................................................................... 13 3.1 Internet of Things .................................................................................................................................................. 13 3.2 Embedded systems ............................................................................................................................................... 13 3.3 Single Board Computers ..................................................................................................................................... 14 3.3.1 Arduino .............................................................................................................................................................. 15 3.3.2 Raspberry Pi .................................................................................................................................................... 16 3.3.3 Other boards .................................................................................................................................................... 17 4 BeagleBone........................................................................................................................................................................ 20 4.1 Description ............................................................................................................................................................... 20 4.2 Device tree ................................................................................................................................................................ 21 4.2.1 Device Tree Blob ............................................................................................................................................ 22 4.2.2 Device Tree Overlay ..................................................................................................................................... 23 4.3 Laboratory Cape TT01v1 .................................................................................................................................... 24 5 Methodologies and development ............................................................................................................................ 27 5.1 Brief ............................................................................................................................................................................. 27 5.2 Setting up the development environment ................................................................................................... 27 5.2.1 Virtual machines ............................................................................................................................................ 28 5.2.2 Cross compiling .............................................................................................................................................. 32 5.3 Ubuntu embedded ................................................................................................................................................. 34 5.3.1 From Angstrom to Ubuntu ........................................................................................................................ 34 5.3.2 Build for Ubuntu 3.8 RCN Kernel ............................................................................................................ 36 5.3.3 Alternative builds of Ubuntu. Kernel 3.14 in ARMhf ...................................................................... 41 5.3.4 Some improvements .................................................................................................................................... 45 5.4 GPMC driver ............................................................................................................................................................. 46 5.4.1 First approach to the cross-compilation .............................................................................................. 46 5.4.2 Compiling the simple module driver beginning ............................................................................... 47 5.4.3 General Purpose Memory Controller GPMC ....................................................................................... 50 - 5 - 5.4.4 Asynchronous GPMC .................................................................................................................................... 51 5.4.5 Synchronous GPMC ....................................................................................................................................... 56 5.4.6 Burst GPMC ...................................................................................................................................................... 59 5.5 Cape programs ........................................................................................................................................................ 63 5.5.1 Previous work: regenerate the cape EPROM contents .................................................................. 63 5.5.2 Building the cape programs ...................................................................................................................... 64 5.5.3 Inspection of the cape programs behavior in the new environment ....................................... 65 5.5.4 Integrating both cape-bone-TT01v1 and cape-bone-iio capes .................................................. 66 5.5.5 Adapting the cape programs ..................................................................................................................... 69 5.6 Python ......................................................................................................................................................................... 69 5.6.1 Introducing Python ....................................................................................................................................... 69 5.6.2 Adafruit Python modules for BeagleBone ........................................................................................... 70 5.6.3 Installing Python and Python modules ................................................................................................ 71 5.6.4 Writing TT01 Cape programs to Python. Adafruit modules ........................................................ 71 5.6.5 Introducing graphics in the BeagleBone .............................................................................................. 82 6. Results ................................................................................................................................................................................ 91 6.1. Ubuntu system ....................................................................................................................................................... 91 6.1.1 Getting into Embedded Ubuntu ............................................................................................................... 91 6.1.2 Startup process..............................................................................................................................................

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    111 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us