<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="bbPress/1.0.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>LeafLabs Garden &#187; Topic: ST Micro STM32F4xx Cortex-M4 Documents available</title>
		<link>http://forums.leaflabs.com/topic.php?id=1056</link>
		<description>A place to share, learn, and grow...</description>
		<language>en-US</language>
		<pubDate>Fri, 22 Jan 2016 00:07:21 +0000</pubDate>
		<generator>http://bbpress.org/?v=1.0.2</generator>
		<textInput>
			<title><![CDATA[Search]]></title>
			<description><![CDATA[Search all topics from these forums.]]></description>
			<name>q</name>
			<link>http://forums.leaflabs.com/search.php</link>
		</textInput>
		<atom:link href="http://forums.leaflabs.com/rss.php?topic=1056" rel="self" type="application/rss+xml" />

		<item>
			<title>ala42 on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=4#post-7076</link>
			<pubDate>Wed, 02 Nov 2011 18:39:24 +0000</pubDate>
			<dc:creator>ala42</dc:creator>
			<guid isPermaLink="false">7076@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Some infos to get the F4 FPU running:&#60;br /&#62;
- the CodeSourcery arm-none-eabi-gcc-4.5.2 works fine&#60;br /&#62;
- to be able to use the fpu use the compiler options -mfpu=fpv4-sp-d16 -mfloat-abi=softfp&#60;br /&#62;
- make sure you do NOT use -fpack-struct, as the fpu load and save instructions need word aligned addresses. Otherwise the code throws an exception using unaligned addresses.&#60;br /&#62;
- the fpu needs to be enabled in the startup code somewhere. Currently I use&#60;br /&#62;
&#60;pre&#62;&#60;code&#62;ldr     r0, =0xe000ed88           //; enable cp10,cp11
	 ldr     r1,[r0]
	 ldr     r2, =0xf00000
	 orr     r1,r1,r2
	 str     r1,[r0]&#60;/code&#62;&#60;/pre&#62;
&#60;p&#62;in start.S, but it might be better to add&#60;br /&#62;
&#60;pre&#62;&#60;code&#62;SCB-&#38;gt;CPACR &#124;= ((3UL &#38;lt;&#38;lt; 10*2)&#124;(3UL &#38;lt;&#38;lt; 11*2));  /* set CP10 and CP11 Full Access */&#60;/code&#62;&#60;/pre&#62;
&#60;p&#62;somewhere.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=4#post-6994</link>
			<pubDate>Wed, 26 Oct 2011 13:43:07 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">6994@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;becker - I am happy to have an incomplete but reasonable abstraction that makes the common cases easier, and don't prevent me getting at the hardware. As long as the default initial values are meaningful and usable, for example PWM or ADC, I am fine.&#60;/p&#62;
&#60;p&#62;Maple lib has been around in some form for more than two years and I don't think the abstractions are close to complete, so I don't expect some 'magic' to suddenly make them all complete and right.&#60;/p&#62;
&#60;p&#62;I agree with you that poor abstractions get in the way, and poor implementations can maken things harder or more error prone. &#60;/p&#62;
&#60;p&#62;For example, implementations that cache register values into variables, can be a nightmare because it is error prone or nerve wracking to work around them. &#60;/p&#62;
&#60;p&#62;Similarly I don't like something abstract which tries to force a bunch of registers to be 'consistent', rather than give access to the individual components. For example, I do think the HardwaretImer's setPeriod is a poor abstraction because most values for period have multiple prescaler &#38;amp; reload values. IMHO it is better for the user to understand a little bit more detail about the HardwareTimer's counter, then use a calculator to work out the two numbers to have exactly the properties needed. This seems simpler, more stable and robust than hope a piece of library software will do the right thing for most cases. In this case it doesn't matter because the library gives access to the pre-scale and reload values, but an interface which &#60;strong&#62;only&#60;/strong&#62; provided setPeriod would not be good.&#60;/p&#62;
&#60;p&#62;So I don't expect abstractions of the timers which are complete, but I do expect to be able to use the useful parts and work around them for the extra functionality.&#60;/p&#62;
&#60;p&#62;I do expect to have an abstraction of the counter, with prescaler and reload value. I'd like more control, but I am okay with nothing more than up/down or just up counting. If I need more, I am happy to get at the raw-hardware.&#60;br /&#62;
I'd like an abstraction for the encoder.&#60;/p&#62;
&#60;p&#62;I do expect to have an abstraction of an output channel. I'd like one for an input channel. &#60;/p&#62;
&#60;p&#62;Because I don't expect perfect, complete abstractions, I'd prefer things to match the ST Micro Peripherals documentation (RM0008). So I'd prefer to have the register names match the ST documentation.  Any alternative to following the ST documentation needs to deliver &#60;strong&#62;significant&#60;/strong&#62; added value (cute or nifty do not count:-)&#60;/p&#62;
&#60;p&#62;(a bit off topic, sorry folks&#60;br /&#62;
full disclosure: I am not a member of LeafLabs staff.)
&#60;/p&#62;</description>
		</item>
		<item>
			<title>becker on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6990</link>
			<pubDate>Wed, 26 Oct 2011 08:38:23 +0000</pubDate>
			<dc:creator>becker</dc:creator>
			<guid isPermaLink="false">6990@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I don't entirely agree with &#34;provide a decent abstraction&#34;.&#60;/p&#62;
&#60;p&#62;Sometimes abstractions just get in the way and introduce bugs.  A good test is &#34;does the user ever have to look below the abstraction?&#34;.  If so, the abstraction needs to make a major improvement in code readability to be worthwhile.  (And often the &#34;readable code&#34; ends up being superficial -- changes often introduce subtle bugs.)&#60;/p&#62;
&#60;p&#62;There are enough quirks in functionality that it's difficult to provide an abstraction that simplifies yet allows fully using the device.  Timers are a good example.  Every one is slightly different.  Some have complementary outputs, some have up/down capability, some can be chained, and some trigger specific devices.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6989</link>
			<pubDate>Wed, 26 Oct 2011 07:14:35 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">6989@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Pete Harrison did a quick and dirty comparison of STM32F103RE with STM32F407VG (on the DISCOVERY board) performance at:&#60;br /&#62;
&#60;a href=&#34;http://www.micromouseonline.com/2011/10/26/stm32f4-the-first-taste-of-speed/#axzz1bsvHxvsi&#34; rel=&#34;nofollow&#34;&#62;http://www.micromouseonline.com/2011/10/26/stm32f4-the-first-taste-of-speed/#axzz1bsvHxvsi&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;The code comments show cycles, so these differences would show running at the same clock speed. The numbers are generated by Rowley Crossworks. I assume they are correct, but I'd like to verify them. Very encouraging. &#60;/p&#62;
&#60;p&#62;It suggests improvements of about 7x, or more, for float operations. Only float operations, and a few arithmetic operations show this improvement, the rest should be the same number of cycles. Pete's results show an anomaly on long load and store which is a bit weird.&#60;/p&#62;
&#60;p&#62;Of course, the STM32F4 could be run a tad over 2x faster clock too, giving a theoretical speed-up of 14x or more on floating point operations.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6984</link>
			<pubDate>Tue, 25 Oct 2011 16:16:27 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">6984@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I went on a free STM32F4 seminar today (in Bristol UK):&#60;br /&#62;
&#60;a href=&#34;https://www.silica.com/events/seminar/silica/view/stmicroelectronics-cortex-m4-seminar.html&#34; rel=&#34;nofollow&#34;&#62;https://www.silica.com/events/seminar/silica/view/stmicroelectronics-cortex-m4-seminar.html&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;It was a good use of my day.&#60;br /&#62;
We got three free evaluation boards! STM32F4, STM32L, STM8L&#60;br /&#62;
We only used the STM32F4 DISCOVERY in the workshop. We used it with Keil's free tools, which we also got (on a USB flash drive)&#60;br /&#62;
We did about 4 small projcets to get to grips with the tools, the chip, and a Real-time OS.&#60;/p&#62;
&#60;p&#62;Pretty nice debug. It has a second chip handling the USB hardware debug support.&#60;br /&#62;
I have been resistant to using a second chip on-board but if the debugger worked well, I might be persuaded to change :-)&#60;br /&#62;
Debug supported the usual source-code orientated breakpoints, and could watch data values, they said including peripheral registers (register writes, not spontaneous external inputs, I believe).&#60;/p&#62;
&#60;p&#62;There were some knowledgeable techies in the room too, so we got several questions resolved during the day. So very good stuff!&#60;/p&#62;
&#60;p&#62;The STM32F4 Discovery is only £11.67 (GBP) including Tax anyway, so not a fancy freebie, but definitely worth havinf someone who could help drive Keil and the CMSIS libraries.&#60;br /&#62;
It has a 3-axis accelerometer, microphone and headphone amp, plus some LEDs and buttons, so plenty of fun, and the free Keil IDE (crippled to 32KB program) seems to be enough to do some experiments.Be warned, there are some bugs in Keil which are being worked on, but likely won't be fixed this week.&#60;/p&#62;
&#60;p&#62;If there is anyone in Europe who can get along to one of the seminars, and is interested in STM32F4, I recommend you try to go. But you will have to be very quick.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>mbolivar on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6977</link>
			<pubDate>Tue, 25 Oct 2011 12:54:10 +0000</pubDate>
			<dc:creator>mbolivar</dc:creator>
			<guid isPermaLink="false">6977@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Hm. I think I'd prefer to keep base addresses in the peripheral headers, rather than consolidate them into one file. SPI and timers don't care about each other, so it's bad separation of concerns to stick the addresses together. What the actual addresses are doesn't really matter; what's important is the peripherals available and the functionality they provide.&#60;/p&#62;
&#60;p&#62;If we're going to provide a decent abstraction, the registers themselves should lose prominence in favor of devices and the functions that operate on them. Focusing on registers leads to the kind of unportable code that ST writes.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ala42 on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6975</link>
			<pubDate>Tue, 25 Oct 2011 11:07:51 +0000</pubDate>
			<dc:creator>ala42</dc:creator>
			<guid isPermaLink="false">6975@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;What I ment is you could keep the family specific base addresses for all peripherals in one file for each family, so the base addresses are not scattered over several files.&#60;br /&#62;
Might make sense to add the base addresses to the rcc_dev_table, so the info is kept in one place.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>mbolivar on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6974</link>
			<pubDate>Tue, 25 Oct 2011 10:28:47 +0000</pubDate>
			<dc:creator>mbolivar</dc:creator>
			<guid isPermaLink="false">6974@http://forums.leaflabs.com/</guid>
			<description>&#60;blockquote&#62;&#60;p&#62;
- some of the identical peripherals like USART1, TIM1, TIM8 and also ADC1-3 have different base addresses now. Base addresses should be kept in a central table.
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;Disagree. Family-specific include files should specify base addresses, so that adding a family doesn't require modifying any central file. Using the correct &#60;code&#62;-I&#38;lt;family-include-dir&#38;gt;&#60;/code&#62; lets us pick the right one at compile time.&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;
- HardwareSerial currently needs the bus clock speed in the constructor, which should be changed
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;Agree.  Similar clock issues affect HardwareSPI as well.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ala42 on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6956</link>
			<pubDate>Mon, 24 Oct 2011 09:03:40 +0000</pubDate>
			<dc:creator>ala42</dc:creator>
			<guid isPermaLink="false">6956@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;When you restructure the code and do not want to copy everything, you should keep these points for the F2/F4 in mind:&#60;br /&#62;
- some of the identical peripherals like USART1, TIM1, TIM8 and also ADC1-3 have different base addresses now. Base addresses should be kept in a central table.&#60;br /&#62;
- HardwareSerial currently needs the bus clock speed in the constructor, which should be changed
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ThomasB on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6943</link>
			<pubDate>Sat, 22 Oct 2011 02:26:27 +0000</pubDate>
			<dc:creator>ThomasB</dc:creator>
			<guid isPermaLink="false">6943@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Yes,the F4 should be really similar..&#60;br /&#62;
I had a look at the errata sheet.&#60;br /&#62;
If you check the CPU ID of the first F4 Series you will get the ID of the F2&#60;br /&#62;
So it seems that the F4 is 'only' a F2 with enabled floatingpoint  :)
&#60;/p&#62;</description>
		</item>
		<item>
			<title>mbolivar on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6940</link>
			<pubDate>Fri, 21 Oct 2011 14:05:01 +0000</pubDate>
			<dc:creator>mbolivar</dc:creator>
			<guid isPermaLink="false">6940@http://forums.leaflabs.com/</guid>
			<description>&#60;blockquote&#62;&#60;p&#62;
The difference between the F2 and F4 is quite small, the clock system and I/O should be almost identical, so the F2 to F4 migration should be simple.
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;Exactly. F2 -&#38;gt; F4 should be pretty trivial, and ST has a lot already written (AN3427 and AN3364) about converting F1 -&#38;gt; F2, but nothing I could find for F1 -&#38;gt; F4. It seems like a win to support all three, and having F2 sit in the middle as a checkpoint for progress should make debugging easier.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ala42 on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6935</link>
			<pubDate>Fri, 21 Oct 2011 07:09:56 +0000</pubDate>
			<dc:creator>ala42</dc:creator>
			<guid isPermaLink="false">6935@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I have an GitHub account, but have not really used it. At least I know how to clone the files from GitHub :)&#60;br /&#62;
The difference between the F2 and F4 is quite small, the clock system and I/O should be almost identical, so the F2 to F4 migration should be simple. It requires some compiler option changes to use the fpu, but this is a later step.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>mbolivar on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6926</link>
			<pubDate>Thu, 20 Oct 2011 22:35:11 +0000</pubDate>
			<dc:creator>mbolivar</dc:creator>
			<guid isPermaLink="false">6926@http://forums.leaflabs.com/</guid>
			<description>&#60;blockquote&#62;&#60;p&#62;
@mbolivar: Is there anything of the F4 maple port ready to be shared, no matter how incomplete it is ?&#60;/p&#62;
&#60;/blockquote&#62;
&#60;p&#62;No, not yet.  We're going to go F1 -&#38;gt; F2 -&#38;gt; F4; however, the first step will be to restructure libmaple so that adding a new family affects the rest of the library in a minimal way.  The current mess of #ifdefs is a bit disgusting.&#60;/p&#62;
&#60;p&#62;I've been thinking about the best way to do this for a couple of weeks now, and I believe I've got a reasonable initial design in my head.  I hope to have something worth pushing by the end of the week, even if it's just to my libmaple tree, &#60;a href=&#34;https://github.com/mbolivar/libmaple&#34; rel=&#34;nofollow&#34;&#62;https://github.com/mbolivar/libmaple&#60;/a&#62; .&#60;/p&#62;
&#60;p&#62;My plan of attack can be summarized as &#34;apelike imitation of the Linux kernel&#34;, so if you're familiar with how arch/ is laid out, you can guess the direction I'm going in.&#60;/p&#62;
&#60;p&#62;Help on this is extremely welcome.  Do you know how to use git / have a GitHub account?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>dreamcat4 on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6916</link>
			<pubDate>Thu, 20 Oct 2011 06:26:21 +0000</pubDate>
			<dc:creator>dreamcat4</dc:creator>
			<guid isPermaLink="false">6916@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;A few of you might be interested in this recent Anandtech article. It talks about ARM's announcement of their new Cortex-A7 chip.&#60;/p&#62;
&#60;p&#62;&#60;a href=&#34;http://www.anandtech.com/show/4991/arms-cortex-a7-bringing-cheaper-dualcore-more-power-efficient-highend-devices&#34; rel=&#34;nofollow&#34;&#62;http://www.anandtech.com/show/4991/arms-cortex-a7-bringing-cheaper-dualcore-more-power-efficient-highend-devices&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;It seems to be what will be replacing the ARM7.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ala42 on "ST Micro STM32F4xx Cortex-M4 Documents available"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1056&amp;page=3#post-6915</link>
			<pubDate>Thu, 20 Oct 2011 06:21:43 +0000</pubDate>
			<dc:creator>ala42</dc:creator>
			<guid isPermaLink="false">6915@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;@mbolivar: Is there anything of the F4 maple port ready to be shared, no matter how incomplete it is ?&#60;br /&#62;
I got my F4 discovery board in the mean time and it accepted the before untested boot loader that I modified for the F2 CPU a few months ago. After disabling the USB stuff the led was flashing, so it looks like the CPU initialization and port setup was good enough in the first try. I already use a program start address of $10000 in the boot loader and linker script to adapt for the different flash rom pages sizes. I want to start porting the lib on the weekend, so anything that is already done is welcome.
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
