Code Monkey home page Code Monkey logo

sjsu-dev2's Introduction

SJSU-Dev2

Build Status Documentation Status Coverage Status Codacy Badge GitHub stars GitHub forks GitHub issues Slack Chat

Cross platform firmware framework written by students, alumni, and faculty of San Jose State University. Designed for the original purpose of helping students develop firmware for the SJTwo board.

Operating System Supported

         

Built for Ubuntu, Mac OSX, and Windows 10 WSL.

Full Documentation and Installation Guide

For full guide follow this link: documentation

Code Reference and APIs

See APIs

Using a Prebuilt Virtual Machine

One of the easiest ways to get started with SJSU-Dev2 is to use a VM with all of the software installed.

Steps to install virtual box and the virtual machine are listed below:

  1. Download and install Virtualbox and then the "VirtualBox Oracle VM VirtualBox Extension Pack" on your computer from this link: https://www.virtualbox.org/wiki/Downloads
  2. Download the prebuilt virtual machine: Ubuntu SJSU-Dev.ova
  3. Open "Ubuntu SJSU-Dev.ova" and import into VirtualBox.

Using the Virtual Machine

  1. Open the "Ubuntu SJSU-Dev" Virtual Machine on the left hand side.
  2. Login by entering the password "osboxes.org"
  3. To program your board, you will need to connect it to your host machine and bring it into the virtual machine by using the top menu: Devices > USB > CP2102n...
  4. At this point you can run commands like make application and make flash from within the SJSU-Dev2 folder which is located /home/osboxes/SJSU-Dev2

Quick Start Install on host machine

Setting up the environment

If you are using Windows, follow these steps to install WSL and make sure to install the Ubuntu as the linux distro. Once you have installed WSL, all instructions below for Linux should work for Windows.

To download and setup the environment, simply copy and paste this into a terminal:

git clone https://github.com/kammce/SJSU-Dev2.git
cd SJSU-Dev2
./setup

If you find that git is not installed on your machine follow these steps to install GIT.

Building a Project

The starter hello_world project can be found in the projects/ folder along with the the demos/ folder which is full of examples you can run on your board. To build hello_world :

cd project/hello_world
make application

Programming a board

From within a project, run make flash.

If make flash is not available for your platform, then you can try make jtag-flash DEBUG_DEVICE=<jlink|stlink|etc> PLATFORM=<insert platform here> if you have a JTAG or SWD debugger.

Viewing Serial Output

The preferred method for communicating with a serial device is via Google Chrome, using the online serial terminal tool, Telemetry. You can also open this up on your browser using the make telemetry command in a project directory.

Supported Processors

Processor/OS InterruptController SystemTimer CycleCounter
RISCV 32I
Arm Cortex M4F
Arm Cortex M3
Embedded Linux - - -

Supported Platforms

  • ☑ = Supported
  • ◯ = Partially supported
  • ☒ = Not supported but available
    • = Not available on microcontroller
Processor/OS MCU/SOC SystemController Gpio Pin Uart Adc Pwm I2c Spi Dac Timer Can Eeprom Flash PulseCapture Watchdog
Arm Cortex M4F lpc40xx
Arm Cortex M3 lpc17xx -
Arm Cortex M3 stm32f10x -
Arm Cortex M4F stm32f4xx -
RISCV 32IMAC gd32v10x -
RISCV 32IMAC gd32v10x -
Linux any -

Future Goals of SJSU-Dev2

  • Integrate user-defined literals for SI units
  • Platform Additions
    • Support for Raspberry Pi and other SBCs such as the BeagleBone Black
    • Support for host side application development
    • Support of STM32 series of MCUs
    • Support of TI series of MCUs
    • Support of RISC-V
  • Multi Threading Portability
    • Add FreeRTOS wrapper of POSIX calls
      • Allows Linux platforms to work with code that makes calls to FreeRTOS.
  • Move from Return-Error-Codes to C++ Exceptions
    • Make a version of C++ exceptions that is more optimal for embedded

Contributors

  • Khalil Estell: Creator and maintainer of the SJSU-Dev2.
  • David Huang
  • Matthew Boyd
  • Since this repository borrows heavily form SJSU-Dev repo, the people in that contrib list are also contributors to this repository.
    • SJSU-Dev was based on SJDev by Preet Kang.

Special Credits

  • Mikko Bayabo: Windows surface destructive testing
  • WSL testing: Sameer Azer, Aaron Moffit, Ryan Lucus, Onyema Ude

sjsu-dev2's People

Contributors

kammce avatar huangdave avatar diarmadhi avatar jeremy-chau avatar pricelessantonio avatar adam-d-sanchez avatar radconmannbor avatar harmandersihra avatar drler0 avatar chuefengvang avatar evanugarte avatar masterboyd avatar lawrence-wan avatar rjavier441 avatar rabeelio avatar hashah1 avatar brentjsimon avatar andrew-javier avatar charlesmacd avatar hsorathia avatar jechea14 avatar k-leong avatar ntwong0 avatar legenderry9 avatar pushpalpatil avatar zackeryplovanic avatar aidenchan12 avatar hangbogu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.