27C3-Workshops - v3.24b
27C3-Workshops
We workshop in peace
Schedule | |
---|---|
Day | Day 2 - 2010-12-28 |
Room | Bigger Workshop (A03) |
Start time | 22:30 |
Duration | 02:30 |
Info | |
ID | 4337 |
Event type | Workshop |
Track | Brzzzzzzzzzzz! |
Language used for presentation | English |
Make a USB device with an ARM Cortex-M3 board
USB: So much more than a serial port with power
We'll make a USB device of our own, using the vendor specific device class for easy programming on all operating systems, and we'll write a small cross-platform program for the host that communicates with the device using libusb.
The Cortex-M3 is a 32-bit CPU core fully supported by GNU binutils, GCC and GDB. NXP LPC1343 is a small microcontroller running the core at up to 72MHz, with 32kb flash, 8kb RAM, a built-in generic USB device peripheral and many other features.
This is a crash course into embedded/device development where participants learn about cross-compiler toolchains, flashing, JTAG and SWD (although we don't have to use them since the chip has a nice bootloader in ROM) and last but not least implementation of USB inside our device and on the host with the help of libusb. The exact same concepts will apply to any microcontroller project, and ARM CPU cores are literally used everywhere, including cellphones (see the OsmocomBB project), tablet computers, netbooks and embedded Linux systems in many consumer electronics devices.
Development boards with a prototyping area will be made available but soldering is not a part of this workshop. Participants are encouraged to break out the soldering iron and develop something fantastic on their board after the workshop is finished and the ground work has been done.