|
|
|
|
|
|
||
|
|
Quote:
|
|
|
Latest blog entry: Flying in the Neighborhood
|
||
|
|
|
|
Joined May 2011
583 Posts
|
No it's in the config.
With Walkera's DFU Upgrade Tool one could save the model data (for each selected model one by one) to the computer into a *.bin file, but it crashes on my 32 bit Vista every time I try, so I use ST's own DFU demo to save the whole config area (all the 12 model) into a dfu file. You can find a download link to it here: http://rc.fdr.hu/devo.php#technical_data Edit: I've just counted, so far only about 250 byte known of the total 912...
|
|
|
|
|
Joined Jan 2012
674 Posts
|
A couple other things:
1) The processor is not programmed from System memory. The BOOT0 pin is tied low which means that the processor always boots from Flash. The BOOT0 pin is tied (through a 10k resistor) to a jumper 'CON2' on the right edge of the board (above DETC). Attaching a jumper will allow the processor to boot from System Memory. BOOT1/PB2 is also tied low (through a 10k resistor, no jumper) so there is no way to boot to RAM without soldering on a jumper 2) PB2 is also attached to the CE# (chip enable) of the 32MBit SST25VFO32B Serial Flash chip. There is no mechanism to read-protect this chip, so it should be easy to dump its contents by attaching an SPI device to it. I don't have one sitting around, but can whip something up if need-be. It should also be possible to hook up a logic-analyzer and read it while it is being programmed. It does not appear that the serial flash will have any code. most likely images or model memory. I think the above makes it clear why they have their own boot-loader: a) they want fancy graphics while in USB mode b) they need to be able to program the serial-flash chip c) They wanted to allow dfuse programming whith read-protection enabled(?) d) They wanted to restrict which memory areas could be programmed I'm not sure why they implemented it in DFuSE format in this case though. I wonder if they used a pre-made bootloader. |
|
|
|
|
||
|
Joined May 2011
583 Posts
|
Quote:
![]() The update screen made me think they implemented their own update, but it is possible they boot from their flash, show the screen, and then call the standard DFU updater in some system ROM, isn't it? However there are plenty of code space from 0x08000000 to 0x08004000 to do it... |
|
|
||
|
|
|
|
Joined Jan 2012
674 Posts
|
I'm going to guess they used the bootloader defined in UM0424:
http://www.st.com/internet/com/TECHN...CD00158241.pdf http://www.st.com/internet/com/SOFTW...ARE/um0424.zip A quick look-over seems to imply it is designed for what they need to do. Maybe looking over the code, it is possible to find a hole that would let us read the Flash memory. More likely we'll just do it another way. I'm still very confused about why the main dfu files can't be properly disassembled though. |
|
|
|
|
||
|
Joined May 2011
583 Posts
|
Quote:
It contains data and resources too, which might confuse the disassembler... Edit: BTW, you are right, it seems that the DFU should be implemented by the user (ie Walkera). The sample code in the "\STM32_USB-FS-Device_Lib_V3.3.0\Project\Device_Firmware_Upgrade\ " dir of the um0424.zip... |
|
|
|
||
|
Joined Jan 2012
674 Posts
|
Quote:
One last note: I tried entering system-boot mode (jumper on CON2), but was not able to get a response from the DFU or the STLink in this mode. Perhaps I'm missing something. Oh well. I'm done for the time being. |
|
|
||
|
|
||
|
Joined May 2011
583 Posts
|
Quote:
Just like the libraries, which also have a resource table at the beginning, but some of that tables are plain wrong (for example in the DEVO 6 v0.3 lib), still the tx works just fine. They might not use that resource tables. They might use other vector tables, since AFAIK the code begins at 0x0800000... |
|
|
||
|
|
||
|
Joined Jan 2012
674 Posts
|
Quote:
Potential Issues: a) There is a minor chance of bricking the Tx if the bootloader doesn't work exactly how we think it does b) we still need to find an entry point where code will actually execute My thought was to use the SWD pins to create a crude SPI interface. They are easy to attach to, they aren't connected to anything else, and they are bi-directional. I haven't looked at where the USART goes, but that could also be a good choice |
|
|
||
|
|
|
|
|
Stuff like this makes me wish I had studied hardware a little bit more... give me a code base with functions for hardware interface and I can whip together an awesome firmware... but the hardware stuff is slightly beyond me
|
|
Latest blog entry: Flying in the Neighborhood
|
|
|
|
||
|
Joined Jun 2010
118 Posts
|
Quote:
Build a landing zone - lots of NOPs (or whatever in ARM world) and put the dump code at the end, CPU jumps into NOPs then runs into your payload, it doesn't matter where it jumps to If you prefer you can always write to SPI flash and dump using DFU tool... |
|
|
||
|
| Thread Tools | |
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Wanted Broken Walkera Devo and Spektrum tx | itsmillertime | Aircraft - General - Radio Equipment (FS/W) | 1 | Mar 20, 2012 04:37 AM |
| For Sale Walkera Devo 7 TX/Devo RX2625H Combo for sale | Tom Z | Aircraft - General - Radio Equipment (FS/W) | 0 | Oct 06, 2011 12:33 PM |
| For Sale Walkera Devo 7 TX/Devo RX2625H Combo for sale | Tom Z | Aircraft - Electric - Helis (FS/W) | 0 | Oct 05, 2011 11:38 AM |
| Discussion New Walkera Devention Devo 12 TX w/ Touch-Screen | hobbypartz | Radios | 2 | May 08, 2011 11:38 PM |
| Discussion New Walkera Devention Devo 12 TX w/ Touch-Screen | hobbypartz | XHeli | 0 | May 05, 2011 11:19 PM |