Kind of nostalgic when Fred talks about bootloaders making things easier in the field.
first experience was with papertape bootloader into core. That made troubleshooting easier with access to something low level and was mostlikely still working!
For those interested in the industry historical approaches to booting / bootloading, the opening lecture might benefit a little from some historical perspective. One succinct article on same can be found at:
Apple Inc.'s first computer, the Apple 1 introduced in 1976, featured PROM chips that eliminated the need for a front panel for the boot process. According to Apple's ad announcing it
"No More Switches, No More Lights ... the firmware in PROMS enables you to enter,
display and debug programs (all in hex) from the keyboard."
That's LevitonDave. Wear leveling won't be an issue in our application. (YEa, I read through the typo! :) Be sure to say hi to Dan Evans for me. Used to work with him at GE Security. C'ya all tomorrow.
@mharkins - We had issues once we tried to get the high density cards operational. The driver we had didn't cleanly support the HD cards. It may have been something in the initialization sequence but we didn't have the datandard to reference so we were flying blind.
We were also looking at generic FAT vs FAT32 at the time. Our problem was wear leveling on the SD card.
LevitonDave, from what I see, the code I wrote is up to the SD 2.00 spec, so unless I ran into speed issues, there should be no issues with the higher capacity cards once I get the Fat 32 on there. Am I missing something? I've taken a SDHC card and partitioned, and formated a Fat16 partion and had no issues.
No problem - issues are making sure you can still reboot into some form of operational state if power is lost while actually reprogramming. This can get tricky especially since you may need to erase and write the reset vector to ensure things will work during the reprogramming.
Fred - have you ever had to update the boot loader in the field? (App to update the boot loader and then re-enter the boot loader?) it can get real fun to avoid a brick.
Fred, it would help reading the blog if you prefaced your responses with @questioner so we know which question you are answering. Often your response is several entries after the question. Thanks
I just had to modify my SD card initialization for dealing with the SDHC cards. Only needed a couple of commands. Adding the Fat 32 support is a bugger though. When you buy cards off the street, anything I've found that was 2G or less came formated as Fat 16. SO that's what our initial product was released with. Now once again, things have changed! LOL
@mharkins - Sorry for the confusion. You are fight the Fat16 limiation of 2 G is correct. However, the file system is not the issue for SD cards it is the protocol for the High Density. We have a Fat32 on a 2 G card and 4 G card that works just fine. However, it doesn't work with the HDSD cards. SD driver stack needs to be modified.
Actually, it is an issue with SD card size. You can't formate >2G with Fat 16 unless you partition it with external utilities. I just didn't want to have to talk customers through that experience!
Hi Fred, I have a development kit with several components, can I use the bootloader without affecting the functionality of the components?, is this bootloader in C? can I use a boot loader from any other maker?
@aefelgate - there are two layers of retry - record and file. if you can accomplish it the record level is definitly better for dection and recovery but the protocol may not support it.
Fred - coud you pull out the Fat8/Fat16 to buy some size. However, there is no cignificant value in shrinking code below a page size boundry since the page will still be the limit.
@aefelgate - For this approach you will need to have some form of confirmation of receipt/success since the communications mechanism is inherently unreliable. (use to design equipment for the cellular industry)
The idea was to have enough FLASH left over for a large application to run in. The bootloader is a C app that pulls in lots of modules. I'm sure with some work we could reduce the size of the bootloader by eliminating unecessary modules.
Exactly what I need to worry about. I am doing a remote bootloader over a cellular connection. Will need to accept the hex stream via a cellular data connection (via PIC uart).
The SPI and SD interface is not so bad, but support of FAT16 and 32 adds a ton. In fact, I'm just now writing code to add the Fat 32 since its getting harder and harder to find 2Gig and smaller SD cards.
The SD file system is why the code is so big. The SD interface has lots of overhead and so does the file system. If you were to use some form of streaming interface, the size might be smaller.
Error recovery for streaming is a big problem that having the file local overcomes.
Thank Fred, I found a dev kit for PIC18F47J13 that I will purchase online. I will continue through the class and double back once I receive the kit. Will the audio be available for review after the class?
It can be shared in a sense. You have to tell your application about the MDD File System files just like you have to tell the bootloader about them. It's the same MDD code but referenced from the application instead of the bootloader code.
JacquesB: this is prob. the price you pay for getting it from a standard media (microSD) and in standard format (HEX). I had experience with PIC bootloader and we got it in the 6 - 8K range but with a custom protocol using serial IF and a custom stream pre-processed from HEX ... however that also covered a clusters of micros ... "trees an a bus" :-)
Hi Fred - there is another trick if the PIC supports it. put the programming routine in ram and have it execute from there allowing flahs programming without having the execution/programmign conflict.
The secret with the audio is to pause it at the begining of the presentation, for about 10 seconds, to allow some buffering. From then on it works fine.
Thanks Fred! I want to make sure I have the right tools to build. I do have a couple of kits one from Freescale and Code Warrior 10 software. Will this be enough?
Audio troubles: In my case it appears that Skype was the problem (WinXP SP3, both Firefox or IE, same symptoms, both working now after I killed the Skype ... but it could have been something else ..)
No specific project at this time but have 3 Pic kits two antiques and one current would like to break the seal on this one and play with it, .... thought this seminar might come in handy since I'm more of a hardware type.
@richnass - I may have to review part of this one as a meeting came up that might cause me to miss a few minutes in the beginning. I'll answer all questions as I can.
Pretty active discussion already. Download the slides before the class starts at 2:00 EST. At that time, the player should start on its own. If it doesn't re-load the page.
@LeoSieben - To be clear, the text above will change to the red graphics only when the lecture starts. For the most part in the past, that happens right at the scheduled time.
@LeoSieben - The lecture is audio only. The audio is through this web page. The box above that says "The audio player will load automatically ..." will change to an animated graphics box. Someone will make a post below, commenting that they have audio. If you don't see the text above change to red graphics, reload the page. Either the lecturer, or someone in a post will indicate the slide number through the lecture
My personal preference is to convert the presentation to a PDF file, and make notes directly in the PDF file for future reference.
Downloaded the slides - looks like there is lots of code to discuss, but I did not see a link for where I might be able to download the source code. If you have full source code for this week's example project, can you please post a link. Thanks!
UK-based Plastic Logic and French company ISORG have created what the pair tout as a first in flexible printed electronics: a large area, conformable, organic image sensor printed on plastic.
For 3D printing to make the jump from rapid prototyping to manufacturing, engineers will need to find easier ways to move products from their CAD screens to their printers.
Gigabit and PoE are two networking technologies moving ahead in tandem as industrial users power remote Ethernet devices such as IP security cameras at 1,000 Mbps over existing CAT5 cable.
From Dell / Intel® New Paradigms in Design Work Scott Hamilton, vertical market strategist for Dell Precision workstations, 5/2/2013 5
Early in my career, I worked as a draftsman and remember the days of drawing on vellum with numbered pencils and Mylar with plastic lead. This was a fun experience in the sense that I ...
I've been using workstations for more than 10 years and love finding ways to get more performance from my system. With demanding professional applications that require more power each ...
A lasting memory from my first job as an engineer in an auto assembly plant is standing on hard concrete at six in the morning, vending-machine coffee clutched in hand, listening to ...
For industrial control applications, or even a simple assembly line, that machine can go almost 24/7 without a break. But what happens when the task is a little more complex? Thats where the smart machine would come in. The smart machine is one that has some simple (or complex in some cases) processing capability to be able to adapt to changing conditions. Such machines are suited for a host of applications, including automotive, aerospace, defense, medical, computers and electronics, telecommunications, consumer goods, and so on. This radio show will show whats possible with smart machines, and what tradeoffs need to be made to implement such a solution.
To save this item to your list of favorite Design News content so you can find it later in your Profile page, click the "Save It" button next to the item.
If you found this interesting or useful, please use the links to the services below to share it with other readers. You will need a free account with each service to share an item via that service.