-
Notifications
You must be signed in to change notification settings - Fork 2k
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
WIP/RFC: Add support for the Texas Instruments Tiva TM4C123GLX ARM Cortex-M4F MCU #1787
Conversation
918256c
to
5e517b7
Compare
caddr_t res = heap_top; | ||
|
||
if (((incr > 0) && ((heap_top + incr > &_eheap) || (heap_top + incr < res))) || | ||
((incr < 0) && ((heap_top + incr < &_sheap) || (heap_top + incr > res)))) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cpu/tm4c123/syscalls.c:92: style (unsignedLessThanZero): Checking if unsigned variable 'incr' is less than zero.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where is the signature from? It should be void *_sbrk_r(struct _reent *ptr, ptrdiff_t incr);
|
8a8c3a6
to
b5155cf
Compare
gnaa, I missed that! That would mean I can't use cortex-m4_common or at least I'd have to fork it so it uses TivaWare headers instead of standard CMSIS :( |
I'm not an expert (and as we all no: sentences that start like this are not really constructive) but I highly dought, that a bunch of type definitions is licensable. In case of doubt: just change the names ;-P |
b5155cf
to
00b43fd
Compare
@haukepetersen your input on CMSIS here ;) |
Hm, that license reads rather restrictive... What we did earlier with some STM standard lib was to include it only as external pkg in RIOT, so we didn't include the files in question directly into RIOT. The nicest solution would actually be to write CMSIS-style headers for TI MCUs ourself, but that would be a shitload of work... I'm not sure of the best solution in this case here... |
How do we proceed with this one? |
@benpicco Are there any .svd files available for the MCU under a different license? It should be possible to auto-generate the CMSIS style headers from those. |
c95e010
to
d2d599f
Compare
Add TI's Cortex M4 'tiva'
compared to other implementations, 2500 seems to be insanely high anyway
The 32bit timer overflows every 53s, shift it down and count the interrupts for a greater range
got to shed off 488 bytes somewhere :(
@benpicco, ping!? |
Closed upon request. Open a new PR if we find any license-compatible headers that we can use. |
Is anybody still working on this? I had forked benpicco's work myself and got some basic functionality up on the EK-TM4C1294XL. But now I'm thinking about downgrading to the TM4C123G for my project, and I'm curious whether I will be able to use it with a more recent RIOT than 2014.12... |
This adds basic support for the TI TM4C123GH6PM MCU and the TM4C123GLX Launchpad development board based on it.
TM4C123GH6PM is a Cortex-M4F based chip with 32kiB Ram, running at up to 80 MHz.
As a special feature it provides 'ROM Functions', similar to BIOS calls, that are always present on the chip and that can be called using a memory table.
There are 6 32 bit general purpose timers and 6 64 bit general purpose timers.
Timers can be 'split' into two half-with timers (16/32bit). Prescaler is only available in half-with mode when counting down, when counting up it will extend the range by 8 bit.
There is also a currently unused 24 bit SysTick timer (also with no prescaling, only variable interrupt periods within the 24bit range)
I used stm32f4 as a template for this port.
working so far:
Depends on #1709 to run properly