项目作者: lab11

项目描述 :
Development board for teaching embedded systems
高级语言: C
项目地址: git://github.com/lab11/buckler.git
创建时间: 2018-07-29T19:52:28Z
项目社区:https://github.com/lab11/buckler

开源协议:MIT License

下载


Berkeley Buckler

Build Status

A development board for teaching embedded systems.

Buckler PCB

Getting Started

  1. Clone this repository and update the submodule
  1. $ git clone https://github.com/lab11/buckler.git --recursive
  2. $ git subomdule update --init --recursive
  1. Build an example application
  1. $ cd software/apps/blink/
  2. $ make

You should see results similar to

  1. BUILD OPTIONS:
  2. Chip nrf52832
  3. RAM 64 kB
  4. FLASH 512 kB
  5. SDK 15
  6. SoftDevice s132 6.0.0
  7. Board Buckler_revB
  8. DIR _build
  9. CC main.c ...
  10. ... (many more CCs) ...
  11. LD _build/blink_sdk15_s132.elf
  12. HEX _build/blink_sdk15_s132.hex
  13. BIN _build/blink_sdk15_s132.hex
  14. SIZE _build/blink_sdk15_s132.elf
  15. text data bss dec hex filename
  16. 37672 2548 2624 42844 a75c _build/blink_sdk15_s132.elf
  1. Load the example application (be sure to connect your Buckler board)
  1. $ make flash

The three LEDS (red, yellow, and blue) on Buckler should begin a blinking
sequence.

Build Options

Several make directives exist for convenience of performing common operations.

  • flash - Upload code to the attached board over JTAG. Also builds code if
    1. necessary.
  • rtt - Open two additional terminals, one starting a JTAG connection and
    1. the other with an RTT terminal.
  • gdb - Open two additional terminals, one starting a GDB server and the
    1. the other with a GDB session.
  • debug - Build application in unoptimized debug mode (with -g and -O0).
  • flash_debug - Upload debug version of code to the attached board over JTAG.
    1. Also builds the debug version of code if necessary.
  • erase - Erase all code from the attached board over JTAG.
  • flash_softdevice - Upload the appropriate softdevice to the board over JTAG.
    1. `make flash` automatically runs this command.
  • clean - Remove all built output.
  • size - Print size of built application text and data segments.
  • lst - Generate an assembly listing of the built code.

Directory Structure

  1. ├── hardware
  2. └── <Various hardware revisions>
  3. ├── <PDF version of schematic and layout>
  4. ├── <Eagle schematic and layout files>
  5. └── <Zipped assembly files>
  6. ├── media
  7. └── <Images used in repo>
  8. └── software
  9. ├── apps
  10. └── <Various applications>
  11. ├── <Code for application>
  12. └── <Makefile for application>
  13. ├── boards
  14. └── <Board-specific headers and Makefiles>
  15. ├── libraries
  16. └── <Various libraries>
  17. ├── nrf5x-base
  18. └── <Submodule: build tools and files for nRF projects>
  19. └── tools
  20. └── <Tools for Travis-CI use>

Project Repositories

If you are using Buckler for a project, we recommend you include it as a
submodule in your own repository. An example of how to do so can be found in:
buckler-external-repo

Software Requirements

In order to get code compiling and loading over JTAG, you’ll need at least two tools.

JLinkExe should be installed from here.
You want to the “J-Link Software and Documentation Pack”. There are various packages
available depending on operating system.

arm-none-eabi-gcc is the cross-compiler version of GCC for building embedded ARM code.

MacOS:

  1. $ brew tap ARMmbed/homebrew-formulae && brew update && brew install arm-none-eabi-gcc

Ubuntu:

  1. $ sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa && sudo apt update && sudo apt install gcc-arm-embedded