Age | Commit message (Collapse) | Author |
|
registers
|
|
|
|
|
|
This just prints "hello world" on two cores. It contains an example of
how to initialize a multi-core system using IPIs, and a simple spin
lock.
|
|
printf doesn't fit in the scratchpad, but since there's really no reason
to call it on constant strings it can be replaced with puts. With this
change, the "hello" example fits in the scratchpad.
|
|
Everything still defaults to the flash, but users can optionally select
the scratchpad. Note that you have to be pretty careful about your
scratchpad programs, most of them won't fit. For example, printf is too
big to fit in the scratchpad.
|
|
* examples ported to ilg build plugin
* project cleanup
* CoreplexIP-E31 ilg projects
* E51FPGA ilg projects
* Tested Debug
* debug launch files
* E31 Debug Launch Files
* removed typo project
* E51 launch files. Forgotten E31 File
* Missing coreplexip files
* examples ported to ilg build plugin
* project cleanup
* CoreplexIP-E31 ilg projects
* E51FPGA ilg projects
* Tested Debug
* debug launch files
* E31 Debug Launch Files
* removed typo project
* E51 launch files. Forgotten E31 File
* Missing coreplexip files
* starting fresh
* HiFive1 demo_gpio and libwrap
* hifive1 hello
* debug launchers for hello and demo_gpio
* hifive1 led_fade
* led_fade: Since E300 Arty Dev Kit doesn't have a PRCI, the led_fade demo doesn't really work on it.
* update include paths to ease generating stand-alone zips
* Adding E51 Examples
* E51 demo launch files
* E31 Demos
* E31 demo launch files
|
|
Since our loader doesn't support multiple sections anyway, there's
really no reason to have all these sections floating around. They're
causing trouble due to misalignment so it's easiest to just group them
together so we can properly enforce alignment.
|
|
|
|
I'm hoping this will make everything more likely to align. We can't use
the other mechanism because our loader is lazy and assumes all the
sections are contiguous.
|
|
|
|
Without this I get a message that looks like
Program has exited with code 0x/0000008
which doesn't make any sense. This prints
Progam has exited with code:0x80000008
|
|
Without these alignment directives the sections are only required to be
aligned on word-sized boundries, but we sometimes require double-word
alignment. This allows the linker to sanely emit these sections.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Provide get_timer_value() and get_timer_freq() and use them. On Arty,
they use mcycle and the known-fixed core frequency, whereas on HiFive1
they use mtime and the known-fixed mtime frequency.
|
|
- Warm up I$ first.
- Correct for integer division truncation error.
- Wait for an RTC clock edge before starting the timing loop,
which removes an error proportional to the number of loop
iterations, allowing us to run for far less time.
|
|
|
|
This improves the instruction stream's spatial locality.
|
|
The symbol may be overridden and end up out of range of JAL.
|
|
|
|
Remove unncessary srst delay when connecting with OpenOCD to HiFive1
|
|
|
|
|
|
|
|
hifive1: Update OpenOCD Config script to optionally allow pulsing SRST
|
|
|
|
The --wrap feature of GNU ld supports a cleaner framework for linking in
alternative implementations of libc functions without cpp hacks.
Place wrappers in separate object files to reduce static code size.
|
|
|
|
|
|
|
|
|
|
things.
|
|
|
|
Enable FPU in MSTATUS CSR during init
|
|
* Only attempts if FPU actually implemented in design
* Also initializes rounding modes, which are undefined at reset
|
|
This appears to resolve the issue of .sdata being assigned an incorrect
LMA (ld warning "section `.sdata' can't be allocated in segment 1").
|
|
|
|
This way, chips with FPU can run FPU instructions without taking
exceptions.
I've confirmed that dhrystone still runs successfully even on chips
with no FPU.
|