Hi! I just got to try it, and it works if I remove the "systemClock::enable();" line, otherwise it is stuck in that call. Is that bad? I also noticed there's a long (~1s) start-up time (when powering on the device) and looked at the listing, and noticed that the code is copied to RAM. Are these related? Why is this needed? 2015-12-25 0:55 GMT+01:00 Szabó Antal <szabo.antal.92@gmail.com>:
Thanks, I'll try this.
Happy Holidays to you and everyone else too :)
Antal Szabó
2015. dec. 25. de. 12:32 ezt írta ("Niklas Hauser" <niklas.hauser@rwth-aachen.de>):
Hi,
I’ve created a branch with a compilable STM32F103RC example:
https://github.com/salkinium/xpcc/blob/feature/stm32f103_support_experimenta...
The fastest clock configuration from internal clock is only 64MHz (8MHz / 2 * 16) and NOT 72MHz, which is the max. allowed Frequency. Consult the STM32F1 Reference Manual (RM0008) Chapter 7.2 (Clocks) for details:
using systemClock = SystemClock< Pll< InternalClock, MHz64 >, AhbPrescaler::Div1, Apb1Prescaler::Div2 >;
The clock tree is almost identical to the one from the STM32F100 so I expect this to work, but haven’t tested it in hardware. If the above configures the clock tree correctly though, the rest should pretty much work out-the-box.
Please note that the STM32F103 clock tree support is experimental, since it builds directly upon the complex work of the future SystemClock: https://github.com/roboterclubaachen/xpcc/pull/39
Happy Holidays, Niklas
PS: You need to provide your own OpenOCD configuration file, since I cannot know what hardware you are using.
On 23 Dec 2015, at 13:25, Szabó Antal <szabo.antal.92@gmail.com> wrote:
I can't get it working yet, the compiler complains that it can't find the xpcc::stm32::Clock type.
Here is what I'm trying: http://pastebin.com/g3XdN0K9 (I intentionally left out the enablePll and switchToPll calls, as those generated errors too)
Here's the error: main.cpp:7:22: error: 'Clock' in namespace 'xpcc::stm32' does not name a type typedef xpcc::stm32::Clock C;
I also don't know what should the parameters be for enablePll.
Can you please provide a small example like mine, with setting the pll from internal oscillator, that at least compiles?
2015-12-23 12:37 GMT+01:00 Szabó Antal <szabo.antal.92@gmail.com>:
Hi!
Thanks for this really quick and in-depth answer, this is a great first experience of the project's community :)
I will try this, but possibly only after christmas, and report back where I got with it.
2015. dec. 23. de. 11:18 ezt írta ("Niklas Hauser" <niklas.hauser@rwth-aachen.de>):
Hi Szabó,
I just found xpcc, and it seems very promising. In my project I use an STM32F103RC, and if I try to build a really simple project for it, I get this error: "Error: XPCC Error: Could not find xml device file.”.
We wanted to only add Device Files for devices that we have tested. I think I will just add a bunch of device files, so that we can get hackers like you to not have to also deal with the hacky and undocumented device file generator (sorry).
I looked in the tools/device_file_generator directory, but I don't really know how to use it. So my question is, what do I have to do to be able to use this mcu?
Here are all of my up-to-date device files: https://www.dropbox.com/s/ea16rjmgdp4s63m/xpcc_xml_2015_12-23.zip?dl=0
It contains the right file for the STM32F103rc (stm32f103-r_v_z-c_d_e.xml) plus a bunch more stuff.
We don’t yet generate linkerscripts automatically (*poke* *poke* @ekiwi), so you also need to add a file to src/xpcc/architecture/platform/linker/stm32 called stm32f103_c.ld with this content:
MEMORY { ROM (rx) : ORIGIN = 0x08000000, LENGTH = 256k RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 48k }
INCLUDE stm32_ram.ld
I can compile it, when changing the project file for the STM32F1 blinky to stm32f103rc.
https://github.com/roboterclubaachen/xpcc/blob/develop/examples/stm32f1_disc...
I don’t have a F103 handy at the moment, so I haven’t tested this in hardware, but it might just be similar enough to the STM32F100 to just work (@24MHz though). You will very likely have to manually configure the clock tree using this class (well, the generated class):
https://github.com/roboterclubaachen/xpcc/blob/develop/src/xpcc/architecture...
The problem is that we cannot yet generate the System Clock Tree classes automatically, but there is a PR for that: https://github.com/roboterclubaachen/xpcc/pull/39
I will have a closer look at the System Clock over the holidays.
Happy Hacking, Niklas
_______________________________________________ xpcc-dev mailing list xpcc-dev@lists.rwth-aachen.de http://mailman.rwth-aachen.de/mailman/listinfo/xpcc-dev
_______________________________________________ xpcc-dev mailing list xpcc-dev@lists.rwth-aachen.de http://mailman.rwth-aachen.de/mailman/listinfo/xpcc-dev
_______________________________________________ xpcc-dev mailing list xpcc-dev@lists.rwth-aachen.de http://mailman.rwth-aachen.de/mailman/listinfo/xpcc-dev