NETMF / netmf-interpreter

.NET Micro Framework Interpreter
http://netmf.github.io/netmf-interpreter/
Other
487 stars 224 forks source link

Extended vector tables for STM32 variants #365

Open SytechDesigns opened 8 years ago

SytechDesigns commented 8 years ago

This is an additional issue to porting to other ( newer) variants of the STM32F4xx series and cloning solutions from the base 407 versions, as mentioned in other posts by CW2 and others. Current vector table definitions in devicecode native stm32f4_bootstrap project, use the vector table defined in the RVDS or GNU folders. But some of the new chips, like the 411 and 469 have the vector table extended. What is the recommended way to handle this. a) Modify the existing vector table to include the 'longest' vector table currently in the STM portfolio ( most likely the 469). Extra entries, if they are not supported will be wasting a few bytes of ram - but we then need to change it again when STM release a new chip with more vector entries. b) have multiple vector tables in RVDS and GNU, and multiple projects for different families, which include the correct table ( similar to the approach in STMFlash, for 1M flash and 429 2Mflash) c) Just clone the bootstrap project into solution\device code and modify the vector table in this project? Any one have an opinion on this - or how would Steve M do it! Part of my new years resolution to try and maintain a neater MF codebase and break some of my past bad habits!

smaillet-ms commented 8 years ago

For the future NETMF should get itself out of the domain of bootstrapping and leave that to CMSIS or equivalent startup libraries available for Micro controller based systems. This would simplify the start up greatly as the silicon vendors generally provide the bootstrap code for their silicon, with configuration options, already. There's really little value in forcing users to essentially re-write that to conform to NETMF expectations that were defined almost a decade ago when the situation was very different. Ideally NETMF has one entry point you can call from main() and off it runs...