<?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: Bootloader-less Designs</title>
		<link>http://forums.leaflabs.com/topic.php?id=9464</link>
		<description>A place to share, learn, and grow...</description>
		<language>en-US</language>
		<pubDate>Fri, 22 Jan 2016 00:03:58 +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=9464" rel="self" type="application/rss+xml" />

		<item>
			<title>gbulmer on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=3#post-21548</link>
			<pubDate>Fri, 07 Dec 2012 14:30:42 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">21548@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;feurig - again thank you for you help.&#60;br /&#62;
Please don't go out of your way for me. I won't be thinking about this till 2013, unless a chum had 'a cunning plan&#34;&#60;/p&#62;
&#60;p&#62;Cheers GB-)
&#60;/p&#62;</description>
		</item>
		<item>
			<title>feurig on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=3#post-21536</link>
			<pubDate>Fri, 07 Dec 2012 03:26:07 +0000</pubDate>
			<dc:creator>feurig</dc:creator>
			<guid isPermaLink="false">21536@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I modified the source code that came with the mpcc toolchain which ran cross platform (though without the IDE) once I had working code I just used it. I am working on modifying the code for mplab-x (which is cross platform). Ian (of dangerous prototypes) has an open source cdc implementation for the family that I haven't revisited. I did play with JAL but their usb/serial implementation was a bit flakey and their community is cracked.  I will post links tomorrow.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=3#post-21516</link>
			<pubDate>Thu, 06 Dec 2012 13:59:48 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">21516@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;feurig - I am beginning to come around to your view, that pic18lf14k50 is worth considering.&#60;br /&#62;
It is cheaper than a CP2120 board. About 1/2 the price of an Atmel ATmega8/16u2. Comes in DIP for prototyping.&#60;/p&#62;
&#60;p&#62;I'd prefer to start with an Open Source  'dumb' USB CDC to UART, that works with Windows/Linux/Mac.&#60;br /&#62;
I guess it would eventually have both UART and RESET and BOOT control, but UART would be enough to start.&#60;/p&#62;
&#60;p&#62;So would you give me a pointer or two to a C tool chain and example source code?&#60;br /&#62;
Is it straightforward to use from C, or is using assembler critical?&#60;br /&#62;
Do you use a USB sniffer to debug the system? If so, what do you use?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=3#post-21128</link>
			<pubDate>Sat, 17 Nov 2012 09:51:04 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">21128@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;ala42 - thanks for the link to the ST forum. I had missed that thread.&#60;/p&#62;
&#60;p&#62;I'll have to think about it a bit more, and I don't have time right now.&#60;br /&#62;
I am going over to watch the Micromouse competition, in Birmingham, UK:&#60;br /&#62;
&#60;a href=&#34;http://www.micromouseonline.com/2012/10/09/robotic-2012/?doing_wp_cron=1353163796.5206758975982666015625#axzz2CUXkOkxS&#34; rel=&#34;nofollow&#34;&#62;http://www.micromouseonline.com/2012/10/09/robotic-2012/?doing_wp_cron=1353163796.5206758975982666015625#axzz2CUXkOkxS&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;Edit: I am delighted to report that 'Coventry's own' Stephen Pithouse has won his 6th&#60;br /&#62;
Line-Follower robot competition in a row, at the UK Autumn championships in&#60;br /&#62;
Birmingham. He also won non-contact wall-follower again.&#60;/p&#62;
&#60;p&#62;The major difference is these victories are in the Senior competitions, against&#60;br /&#62;
adults, and not Juniors, as Stephen is now 18. Stephen designs, builds, tests&#60;br /&#62;
and programs all his robots himself. The 'brains' are Freeduino Nano's.&#60;/p&#62;
&#60;p&#62;I was lucky enough to help Stephen get started when I ran an Arduino workshop at&#60;br /&#62;
his school, with the help of a pair of Warwick University 'Technology&#60;br /&#62;
Volunteers' Alice Ng, and Olmo Nieto-Silleras. So it is great to seem him&#60;br /&#62;
continue to refine and improve his robots at each event.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=3#post-21127</link>
			<pubDate>Sat, 17 Nov 2012 09:40:50 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">21127@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;feurig - It did seem to take a long time for the Arduino to evolve. However the Arduino team do seem to work hard and diligently to ensure there is smooth path forward for Arduino users. &#60;/p&#62;
&#60;p&#62;I thought Dean Camera's Lightweight USB Framework for AVRs (LUFA - &#60;a href=&#34;http://www.fourwalledcubicle.com/LUFA.php&#34; rel=&#34;nofollow&#34;&#62;http://www.fourwalledcubicle.com/LUFA.php&#60;/a&#62;) showed how to replace the USB-to-serial. Paul Stoffregen's (pjrc.com) Teensy boards showed the advantages of doing it.&#60;/p&#62;
&#60;p&#62;AFAIK, Paul Stoffregen's Teensy boards still have the sneakiest USB connection; they are HID devices, and can plug straight into most things.&#60;/p&#62;
&#60;p&#62;FTDI, is not quite a &#34;one trick pony&#34;. It is possible to do 'bit-banging' using some of the pins (I have never tried). So, in theory, it is possible to get it to talk to a different interface (IIRC, someone has used one to make an SPI programmer, and another to make a JTAG interface), or to set the boot pins and reset. Also, I think some are about $2.&#60;/p&#62;
&#60;p&#62;I agree the ideal USB interface solution would be fully programable.&#60;br /&#62;
However, something low-cost, that avoids the need to install any drivers (on, at least, the main three platforms), and that does not create problems for users, for example by changing its USB class, would be better than where Maple is today.&#60;/p&#62;
&#60;p&#62;Let's hope Maple 2 addresses the problems that users suffer.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ala42 on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=3#post-21126</link>
			<pubDate>Sat, 17 Nov 2012 09:33:28 +0000</pubDate>
			<dc:creator>ala42</dc:creator>
			<guid isPermaLink="false">21126@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;No, I made is easy to understand directly in the source code :). Also see the link in the updated pervious post.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=3#post-21125</link>
			<pubDate>Sat, 17 Nov 2012 09:26:16 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">21125@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;ala42 - Oh, okay. I thought you might be making it easier for us to understand :-)
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ala42 on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=3#post-21124</link>
			<pubDate>Sat, 17 Nov 2012 09:20:48 +0000</pubDate>
			<dc:creator>ala42</dc:creator>
			<guid isPermaLink="false">21124@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;That is the way I implemented it.&#60;br /&#62;
On a STM32F103 it is at 0x1ffff000, see &#60;a href=&#34;https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2Fcortex_mx_stm32%2FSTM32%20Internal%20Bootloader&#38;amp;FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B&#38;amp;currentviews=3199&#34; rel=&#34;nofollow&#34;&#62;https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2Fcortex_mx_stm32%2FSTM32%20Internal%20Bootloader&#38;amp;FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B&#38;amp;currentviews=3199&#60;/a&#62;
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=3#post-21123</link>
			<pubDate>Sat, 17 Nov 2012 09:11:19 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">21123@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;ala42 - Thank you again.&#60;br /&#62;
So, the manufactured-in ST-bootloader is at the start of the 'System memory' block, which has different start addresses on some STM32 families?&#60;/p&#62;
&#60;p&#62;Is that code literally &#60;code&#62;#define BUILT_IN_BOOT_LOADER ((u32)0x1FFF0000)&#60;/code&#62; or is this really fixed in a link script?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>feurig on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=2#post-21119</link>
			<pubDate>Fri, 16 Nov 2012 19:19:51 +0000</pubDate>
			<dc:creator>feurig</dc:creator>
			<guid isPermaLink="false">21119@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;&#60;a href=&#34;http://www.bugblat.com/products/cor.html&#34; rel=&#34;nofollow&#34;&#62;http://www.bugblat.com/products/cor.html&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;So we are as backwards as we were with the arduino 6 years ago when we were arguing about how stupid the $4 fdti was and the arduino team got all conservative and pushed the status quo (and 3 years later pushed two designs that were our point exactly (the leonardo and the uno)).&#60;/p&#62;
&#60;p&#62; Here. An example of a commercial design a missing the same thing.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>feurig on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=2#post-21118</link>
			<pubDate>Fri, 16 Nov 2012 19:10:45 +0000</pubDate>
			<dc:creator>feurig</dc:creator>
			<guid isPermaLink="false">21118@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Tormod&#60;/p&#62;
&#60;p&#62;&#34;So now we are talking about adding a $1.50 chip to add the USB functionality we lose by saving $1.60? I must surely be missing something.&#34;&#60;/p&#62;
&#60;p&#62;You are missing modularity, configurability and the ability to change class. (though you argue for modularity right after this statement)&#60;/p&#62;
&#60;p&#62;The cp2102 (like the ftdi232) is a 1 trick pony. You cant, without considerable difficulty, get it to select one of the 3 boot modes on the stm32 when resetting the target device and you cant get it to change usb classes to say midi or hid which you can with the programmable devices.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ala42 on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=2#post-21107</link>
			<pubDate>Fri, 16 Nov 2012 07:02:11 +0000</pubDate>
			<dc:creator>ala42</dc:creator>
			<guid isPermaLink="false">21107@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;See &#60;a href=&#34;https://github.com/AeroQuad/AeroQuad/tree/development/Libmaple/maple-bootloader&#34; rel=&#34;nofollow&#34;&#62;https://github.com/AeroQuad/AeroQuad/tree/development/Libmaple/maple-bootloader&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;#define BUILT_IN_BOOT_LOADER ((u32)0x1FFF0000)&#60;br /&#62;
&#60;pre&#62;&#60;code&#62;if(*START_BOOT_LOADER_MAGIC_ADDR == START_BOOT_LOADER_MAGIC) {
 	  connectUSB();
          *START_BOOT_LOADER_MAGIC_ADDR = 0;
          jumpToUser(BUILT_IN_BOOT_LOADER);
	}&#60;/code&#62;&#60;/pre&#62;
&#60;p&#62;IIRC the F1 boot loader starts later, maybe 0x8000 later.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=2#post-21093</link>
			<pubDate>Thu, 15 Nov 2012 20:35:40 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">21093@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;ala42 - Okay, I think I understand; the manufactured-in, System Memory bootloader is &#60;strong&#62;NOT&#60;/strong&#62; mapped to 0 (by setting BOOT0=1 and BOOT1=0)&#60;/p&#62;
&#60;p&#62;So my question is; when you say &#60;em&#62;&#34;... and jumps into the CPU built in boot loader&#34;&#60;/em&#62;, what address does it jump to, i.e. what is the address of the start of ST's manufactured-in, System memory resident, bootloader? Is it start of System memory at 0x1FFF 0000?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ala42 on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=2#post-21091</link>
			<pubDate>Thu, 15 Nov 2012 19:35:53 +0000</pubDate>
			<dc:creator>ala42</dc:creator>
			<guid isPermaLink="false">21091@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;The BOOT0/1 pins stay in the normal boot position and are usually not touched. The running program sets a flag in RAM and resets the CPU. The CPU starts the code at the bottom of memory, something like the maple boot code without the ability to flash, which looks for the flag and jumps into the CPU built in boot loader, so I do not need the reinvent the wheel to implement a flashing protocol. If the flag is not found, the main program is started.&#60;br /&#62;
I let this dummy boot loader (dummy, as it does not load anything) flash the LED a few times to get a alive sign and also issue a USB disconnect, as the built in USB boot loader is not detected by the host OS without a disconnect.&#60;br /&#62;
I set the flag in the USB receiving library code, like standard libmaple does, but you can do that anyway you like. Currently I look for DTR and some bytes on the virtual com port, but might change this to react on a baud rate change.&#60;br /&#62;
The advantage of a small boot code at the bottom of memory with a F4 CPU is that you can use the small flash rom pages at the bottom of memory for eeprom emulation and have the main program at a higher address, where the larger pages are located.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Bootloader-less Designs"</title>
			<link>http://forums.leaflabs.com/topic.php?id=9464&amp;page=2#post-21090</link>
			<pubDate>Thu, 15 Nov 2012 18:56:21 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">21090@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;tormod, ala42 - So what is the process for executing the bootloader from a running program?&#60;br /&#62;
Is there any need to manipulate the BOOT0 or BOOT1? What is its address?
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
