Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Western Digital Delivery #31

Open
wants to merge 44 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
4a73715
update toolchain name to riscv64
dbarbi1 Aug 8, 2017
dfcefde
Merge commit '4a73715' into AugustUpdate
dbarbi1 Aug 9, 2017
aeda4f0
added riscv64, and mabi and mcmodel switches
dbarbi1 Aug 10, 2017
3901ff5
merge
dbarbi1 Aug 10, 2017
16d16c2
because windows says so
dbarbi1 Aug 11, 2017
e880151
platform.txt: enable conditional compilation
Jul 18, 2018
a97751f
platform.txt: do not generate debugging information
Jul 18, 2018
9cc497f
Update README to reflect Windows support
Jul 30, 2018
56773f1
platform.txt: reduce stack size
Aug 7, 2018
3e3b496
platform.txt: reduce openocd printout noise
Aug 7, 2018
32bd834
libraries: add RGB LED library for Hifive1 board
Aug 8, 2018
eacd1e7
libraries: add examples of RGBL usage
Aug 8, 2018
06de1b3
cores: add interrupts() and noInterrupts() calls support
Sep 5, 2018
e430f0b
wiring: fix accuracy at low cpu freq in delayMicroseconds()
Sep 6, 2018
8ad8f4d
wiring: code style cleanup
Sep 7, 2018
172bdfa
wiring: do not unroll loops in delayMicroseconds()
Sep 7, 2018
93f35b3
wiring: reduce digitalwrite() code size
Sep 7, 2018
d7bc243
wiring: use hint to compiler to reduce code size
Sep 8, 2018
ba71e80
wiring: reduce delayMicroseconds() code size
Sep 8, 2018
40f5b4e
wiring: reduce delay() code size
Sep 8, 2018
7448821
main: decrease pll configuration code size for 320MHz clk
Sep 9, 2018
bbfafa1
wiring: fix delay accuracy at ~320mhz
Sep 12, 2018
95e9c29
wiring: ~320mhz accuracy fix - explained
Sep 13, 2018
8983537
libraries: add SoftwareSerial32 library
Sep 13, 2018
11dc23f
libraries: add software I2C
Sep 13, 2018
e7f8032
libraries: SW I2C: support for custom clock rates
Sep 13, 2018
f6a36cd
cores: update Stream.h and fetch Stream.cpp from Arduino
Sep 13, 2018
8b51925
libraries: add SimpleTouchscreen library
Sep 13, 2018
3cf7c6b
libraries: SimpleTouchscreen finalized
Sep 14, 2018
b4f595a
Tone: initial implementation
austinliou Sep 20, 2018
ba322a7
Tone: add tone() and noTone() prototypes
austinliou Sep 20, 2018
0250674
libraries: SoftwareSerial32 finalization
Sep 20, 2018
65a49c9
libraries: add Adafruit_NeoPixel
sean-wang-wdc Sep 18, 2018
3556e75
libraries: Adafruit_NeoPixel
sean-wang-wdc Sep 18, 2018
f3d9802
libraries: Finalized SlowSoftWireI2C
Sep 25, 2018
d71ab26
libraries: fix typo in SimpleTouchscreen.cpp header
Sep 28, 2018
32e225a
Tone: add license header
austinliou Sep 24, 2018
bd95b15
Tone: update legal header
austinliou Sep 28, 2018
fd578be
libraries: Servo: import from upstream
Sep 21, 2018
55e9203
libraries: Servo: add HiFive1 support
Sep 26, 2018
b77506a
README: update path to the instructions for windows
Sep 29, 2018
f48960d
libraries: softwareSerial32: code cleanup
Dec 11, 2018
a08584d
libraries: softwareSerial32: fix interrupt locking
Dec 10, 2018
28ce864
cores: wiring_constants.h cleanup
Jan 21, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 23 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
This repository allows you to program Freedom E300 boards using the Arduino IDE.
You can install this repository in two ways:

* Using the Arduino Boards Manager (Currently supported for Linux and macOS) to download precompiled binaries
* Manually compiling the tools (Suggested for platforms not supported by the above).
* Using the Arduino Boards Manager to download precompiled binaries.
* Manually compiling the tools.

Follow the instructions below to install the Board support package.

Expand All @@ -16,25 +16,26 @@ Please see the Getting Started Guides for more information on how to install and

# Setup #

## Install Arduino ##
## For Windows istallation ##

Download and install Arduino IDE 1.6.12 tarball from the Arduino website. Unpack it and run their installation script as directed.
Follow the insructions in the [https://github.com/westerndigitalcorporation/CincoWinPkg/blob/master/README.md](https://github.com/westerndigitalcorporation/CincoWinPkg/blob/master/README.md)
## For Linux and MacOS installation ##
### Install Arduino ###

## Install the SiFive Boards ##
Download and install Arduino IDE 1.6.12 or later tarball from the Arduino website. Unpack it and run their installation script as directed.

Use one of the following methods:

### Option 1: Installing Through the Arduino IDE ###
### Install the SiFive Boards ###

This is supported for macOS and Linux.
Use one of the following methods:

Add the [http://static.dev.sifive.com/bsp/arduino/package_sifive_index.json](http://static.dev.sifive.com/bsp/arduino/package_sifive_index.json) to the Additional Board URLs.
#### Option 1: Installing Through the Arduino IDE ####

Use the Board Manager to search for and install the "SiFive" boards.
Add the [https://raw.githubusercontent.com/westerndigitalcorporation/CincoWinPkg/master/package_sifive_index.json](https://raw.githubusercontent.com/westerndigitalcorporation/CincoWinPkg/master/package_sifive_index.json)
to the Additional Boards Manager URLs in the `Preferences->Settings`.

### Option 2: Install this Repo Manually ###
#### Option 2: Install this Repo Manually ####

This is generally not supported. You can use this technique to install on platforms that aren't supported by the Board Manager, or if you want to work on the code in this repository.
** This is generally not supported. ** You can use this technique if you want to work on the code in this repository.

1. Clone this Repository

Expand Down Expand Up @@ -68,31 +69,27 @@ This is generally not supported. You can use this technique to install on platfo
If you installed the Freedom E SDK some other way, use that installation
location instead.

# Select Your Board #
### Select Your board: ###

Restart and launch the Arduino IDE.
Select the board in the Arduino Menu `Tools->Board->HiFive1`

Select the board (e.g. Freedom E300 Arty Dev Kit) on the Arduino Menu

Tools->Board->Freedom E 300 Dev Kit

# Select Your Toolchain #
### Select Your Toolchain ###

If you installed the tools using the Arduino Package Manager,
select `Tools -> Tool Install Location -> Default`.

If you compiled the Freedom E SDK manually,
select `Tools -> Tool Install Location -> Manual`.
If you compiled the Freedom E SDK manually, select
`Tools -> Tool Install Location -> Manual`.

# Select OpenOCD as the Programmer #
### Select OpenOCD as the Programmer ###

If you installed the tools using the Arduino Package Manager,
select `Tools->Programmer->SiFive OpenOCD`
If you installed the tools using the Arduino Package Manager, select
`Tools->Programmer->SiFive OpenOCD`

If you installed the tools manually, select
`Tools->Programmer-> Manual SiFive OpenOCD`

# Write & Upload Your Program #
### Write & Upload Your Program ###

Select an example program and modify it as usual.

Expand Down
8 changes: 6 additions & 2 deletions hardware/freedom_e/boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ freedom_e310_arty_devkit.name=Freedom E300 Arty DevKit

freedom_e310_arty_devkit.menu.toolsloc.default=Default
freedom_e310_arty_devkit.menu.toolsloc.manual=Manual
freedom_e310_arty_devkit.menu.toolsloc.default.compiler.path={runtime.tools.riscv32-unknown-elf-gcc.path}/bin/
freedom_e310_arty_devkit.menu.toolsloc.default.compiler.path={runtime.tools.riscv64-unknown-elf-gcc.path}/bin/
freedom_e310_arty_devkit.menu.toolsloc.manual.compiler.path=

#Point to the file for ./variants/<variant>/pins_arduino.h
Expand All @@ -17,6 +17,8 @@ freedom_e310_arty_devkit.menu.clksrc.fpga=65MHz FPGA Clock
freedom_e310_arty_devkit.menu.clksrc.fpga.build.f_cpu=65000000L

freedom_e310_arty_devkit.build.mcu=rv32imac
freedom_e310_arty_devkit.build.mabi=ilp32
freedom_e310_arty_devkit.build.mcmodel=medany

#"The 'core' file directory for this board, in ./cores
freedom_e310_arty_devkit.build.core=arduino
Expand All @@ -36,7 +38,7 @@ hifive1.name=HiFive 1

hifive1.menu.toolsloc.default=Default
hifive1.menu.toolsloc.manual=Manual
hifive1.menu.toolsloc.default.compiler.path={runtime.tools.riscv32-unknown-elf-gcc.path}/bin/
hifive1.menu.toolsloc.default.compiler.path={runtime.tools.riscv64-unknown-elf-gcc.path}/bin/
hifive1.menu.toolsloc.manual.compiler.path=

hifive1.menu.clksrc.hfxtal=16 MHz XTAL
Expand All @@ -51,6 +53,8 @@ hifive1.menu.clksrc.hfrosc.build.f_cpu=320000000L
hifive1.build.variant=standard

hifive1.build.mcu=rv32imac
hifive1.build.mabi=ilp32
hifive1.build.mcmodel=medany

#"The 'core' file directory for this board, in ./cores
hifive1.build.core=arduino
Expand Down
4 changes: 4 additions & 0 deletions hardware/freedom_e/cores/arduino/Arduino.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ typedef void (*voidFuncPtr)( void ) ;
#include "HardwareSerial.h"
#include "wiring_pulse.h"

// Tone function prototypes
void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0);
void noTone(uint8_t _pin);

#endif // __cplusplus

// Include board variant
Expand Down
Loading