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..............................................................................................................................................
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages111 Page
-
File Size-