How to use USB bootloader (AN3748) with Processor Expert in CW6.2?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to use USB bootloader (AN3748) with Processor Expert in CW6.2?

5,010 Views
dafodil
Contributor III

My project works with  MCF51JM64, I used PE in CW6.2 to create all this project.

I tried USB bootloader (AN3748), it's very interesting to make software updates, and works fine :smileyhappy: , but without Processor Explorer.... :smileysad:

 

Do you have any tutorial or any idea to use USB bootloader (AN3748) with PE?

 

Regards

Bernard

Labels (1)
0 Kudos
51 Replies

1,362 Views
BlackNight
NXP Employee
NXP Employee

Hello,

have a look at the TWR-LCD project (www.freescale.com/tower): the software implements the bootloader for the JM128 on the TWR-LCD board with Processor Expert.

 

Additionally I have ported it to MCU10.x (the eclipse based version of CodeWarrior) with all the parts of the bootloader as Processor Expert components as well (see the attached screenshot).

If this is of interest, I could post that project.

 

BK

0 Kudos

1,362 Views
paulminusx
Contributor III

@

Hello Erich,

I am a newbie in ARM Embedded systems and have recently made a custom MK22DX256VLF5 dev board, after some researching and copy pasting I was able to flash the MCU with a blink code using SWD programming of OpenSDA(CMSIS-DAP.s19 bootloaded) Circuitry (of my FRDM kl25z board ,of course I have cut the trace to KL25z )..But i want my board to be standalone and be directly connected/detected to PC as a USB HID Device /MSD device so that I can just flash a code (.s19 , .bin ) just by copying it ,or I can code in Keil but directly without using any excess circuitry.I have read your post http://mcuoneclipse.com/2013/04/28/serial-bootloader-for-the-freedom-board-with-processor-expert/  thinking that it will help me make a USB DFU Bootloader from scratch but it didnt. I am familiar with few terms such as Shell,FRTOS,etc.Can you provide me a way/references for my above puorpose..

You can also reply on my posts.

developing and burning a bootloader in K22P48M50SF4 MCU

Programming MK22DX256VLF5 with OPENSDA debug hardware of FRDM25KLZ using Keil (SWD programming)

How to make a USB DFU bootloader for MK22DX256VLF5 

Regards.

Shubham

0 Kudos

1,362 Views
trytohelp
NXP Employee
NXP Employee

Hi Paul,

This post is old and located in QoirIQ which is not really the good community box.

I recommend you to create a new post for this question and to put it under:

    - if it's linked to KDS: Kinetis Design Studio

    - if it's linked to MCU V10.6: CodeWarrior for MCU

Regards

Have a great day,
Pascal
Freescale Technical Support
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,362 Views
dafodil
Contributor III

Hi BK,

 

I am interested by your project under CW10.

Can you post it?

 

Bernard

0 Kudos

1,362 Views
BlackNight
NXP Employee
NXP Employee

Hi Bernard,

attached is the project. I'm using CodeWarrior for MCU 10.2beta, but the project should be backwards compatible with 10.1.

It has been posted as well on

http://www.steinerberg.com/EmbeddedComponents/Examples/Example_TWR-LCD_JM128_Bootloader

 

I intentionally kept the generated code in the zip file so you can have a look at all source files.

If you want to generate code, then you need to download/install some additional Processor Expert components, available on above site, or directly from this link:

http://www.steinerberg.com/EmbeddedComponents/EmbeddedComponents_v1.1.zip

 

I did not try the components with CW 6.2 (as I moved all my stuff to CW 10.x), but I think they should be backwards compatible.

 

Hope that helps,

BK

0 Kudos

1,362 Views
wrljet
Contributor II
I have tried to use the Bootloader component(s) you mentioned, with CW 6.3.  I downloaded all the latest from the complete-set zipfile.
For some reason it insists on adding two instances of the S19 component.  One for BootloaderUSB and one for BootloaderDisk.  The dropdowns to select the S19 File Reader each only show the one already associated.
Any idea how I might fix that?
Thanks, Bill

BlackNight wrote:

Hi Bernard,

attached is the project. I'm using CodeWarrior for MCU 10.2beta, but the project should be backwards compatible with 10.1.

It has been posted as well on

http://www.steinerberg.com/EmbeddedComponents/Examples/Example_TWR-LCD_JM128_Bootloader

 

I intentionally kept the generated code in the zip file so you can have a look at all source files.

If you want to generate code, then you need to download/install some additional Processor Expert components, available on above site, or directly from this link:

http://www.steinerberg.com/EmbeddedComponents/EmbeddedComponents_v1.1.zip

 

I did not try the components with CW 6.2 (as I moved all my stuff to CW 10.x), but I think they should be backwards compatible.

 

Hope that helps,

BK


 

0 Kudos

1,362 Views
BlackNight
NXP Employee
NXP Employee

Hi Bill,

 

>>I have tried to use the Bootloader component(s) you mentioned, with CW 6.3.  I downloaded all the latest from the complete-set zipfile.
>>For some reason it insists on adding two instances of the S19 component.  One for BootloaderUSB and one for BootloaderDisk.  The dropdowns to select the S19 File Reader each only show the one already associated.
>>Any idea how I might fix that?
The thing is that both BootloaderUSB and BootloaderDisk are using different templates. I think I need to fix this in the component. But you can easily solve it on your end:
a) add a new S19 component
b) from the BootloaderUSB and BootloaderDisk, select that new S19 component
c) remove the two old/unused/previous S19 components
Hope this helps,
BK
0 Kudos

1,362 Views
wrljet
Contributor II

Nope, that doesn't work.  (I had tried it)

 

The dropdowns still only show the already selected components,  (S191 and S192), but not my new S193

 

Bill

 

0 Kudos

1,362 Views
BlackNight
NXP Employee
NXP Employee

Hi Bill,

indeed. It worked for me under eclipse, but you are right: this does not work under classic :smileysad:.

Looks like this is fixed in the eclipse version (or at least easier).

But I have found a way to get it working under classic:

- in C:\ProgramData\Processor Expert\CW08_PE3_09\Beans, delete the BootloaderDisk and BootLoaderUSB folders (as they contain .dev template files which needs to be removed)

- import the two new components with 'update'

 

Basically I had to remove the template and re-save the interface (to use the global S19 instead of the template one).

Ufff :smileyhappy:

 

Hope this helps. Let me know. If this works, I'll publish them officially on the web site.

BK

0 Kudos

1,362 Views
wrljet
Contributor II

OK.  Did that.  Deleted the old components, update with the new ones you attached.   It worked!

They both then showed all the S19's in the dropdown.  I switched to both use S191 and deleted the others.

 

Location in Windows XP of the Beans in case somebody else plays with this was:

 

   C:\Documents and Settings\All Users\Application Data\Processor Expert\CW08_PE3_09\Beans

 

Thanks,

Bill

 

 

 

0 Kudos

1,362 Views
BlackNight
NXP Employee
NXP Employee

Hi Bill,

thanks for the quick feedback.

Yes, I missed the fact that depending on the host OS the path might be different, good catch!

 

BK

0 Kudos

1,362 Views
wrljet
Contributor II

BlackNight,

 

You do amazing work on all this stuff.  It is very much appreciated.

I'm sure I speak for a great many when I say that.

 

I went ahead and loaded up the example project TWR-LCD JM128 Bootloader on CW 10.2.

I did this to examine the settings for the linker file and stuff like that.

I don't actually use CW 10 yet, but I do have it installed in a VM for things like this.

 

I'm wondering now, do you have an example project for an app that will load with this bootloader?

 

Bill

 

0 Kudos

1,362 Views
BlackNight
NXP Employee
NXP Employee

Hi Bill,

thanks.

yes, I do :smileyhappy:

Two are attached. If you have another tower card connected to the TWR-LCD, it will communicate through I2C to the other board (e.g. to show accelereometer data). But you can run it standalone too.

 

The s19 files are all variations of different programs, using even more Processor Expert component for the whole UI.

If there is interest, I could post the whole project.

 

BK

0 Kudos

1,362 Views
wrljet
Contributor II

Yeah, I'm looking for some sort of project source I can use to make a template for my bootload-able project.

 

Doesn't have to be anything fancy. 

 

Bill

 

0 Kudos

1,362 Views
BlackNight
NXP Employee
NXP Employee

Hi Bill,

ok, it is somewhat fancy, but I had no extra time to strip it down.

Attached is the project which was used to create the S19 files I have posted in the previous message.

I kept all the generated source files so if you do not have all the Processor Expert components, you can have a look.

But it is not classic 6.2, it is eclipse based, for the TWR-LCD.

What it does is to generate I2C messages for the navigation switch on the board and sends it over the bus to another tower card.

 

Place the project into the same workspace as the bootloader project, as it makes reference to the bootloader sources.

The readme.txt in the root of the project lists things to consider for a boot loader enabled application:

 

Settings for a Bootloader enabled applications
----------------------------------------------
The Processor Expert configuration name enables bootloader defines in Platform.h.
- stack size: 0x100 (or adjust to your needs)
- heap size: 0x20 (minimum)
- Memory Segment 0: start 0x4C00, size 0x1B3E0
- Memory Segment 1: Start 0x8001C0, size 0x3E40
- Fetch vectors from RAM, address 0x4800

 

I hope this is useful,

BK

0 Kudos

1,362 Views
wrljet
Contributor II
BK,
The TWR-LCD JM128 Bootloader project uses a component called IFsh1:IntFLASH.
Is this component part of (and new for) Codewarrior 10.x?  I don't seen to have it on my CW 6.3 install.
Bill

BlackNight wrote:

Hi Bill,

ok, it is somewhat fancy, but I had no extra time to strip it down.

Attached is the project which was used to create the S19 files I have posted in the previous message.

I kept all the generated source files so if you do not have all the Processor Expert components, you can have a look.

But it is not classic 6.2, it is eclipse based, for the TWR-LCD.

What it does is to generate I2C messages for the navigation switch on the board and sends it over the bus to another tower card.

 

Place the project into the same workspace as the bootloader project, as it makes reference to the bootloader sources.

The readme.txt in the root of the project lists things to consider for a boot loader enabled application:

 

Settings for a Bootloader enabled applications
----------------------------------------------
The Processor Expert configuration name enables bootloader defines in Platform.h.
- stack size: 0x100 (or adjust to your needs)
- heap size: 0x20 (minimum)
- Memory Segment 0: start 0x4C00, size 0x1B3E0
- Memory Segment 1: Start 0x8001C0, size 0x3E40
- Fetch vectors from RAM, address 0x4800

 

I hope this is useful,

BK


 

0 Kudos

1,362 Views
BlackNight
NXP Employee
NXP Employee

Hi Bill,

yes, it should be part of CW 6.3 as well. It is the component to program the internal flash. But I think it is not available in the free special edition, maybe this is your problem.

In any case: the IntFlash component is used only to store the touch screen calibration data in flash. You can go without it if use pre-programmed calibration values or use another way to store your calibration values.

 

Hope this helps,

BK

0 Kudos

1,362 Views
dafodil
Contributor III

Hi BK,

 

Do you know if this component called IFsh1:IntFLASH can be the source of my problem??

I use a free version of CW10.2

 

Regards

Bernard

__________________________________________

Hi Bill,

yes, it should be part of CW 6.3 as well. It is the component to program the internal flash. But I think it is not available in the free special edition, maybe this is your problem.

In any case: the IntFlash component is used only to store the touch screen calibration data in flash. You can go without it if use pre-programmed calibration values or use another way to store your calibration values.

 

Hope this helps,

BK

___________________________________________

0 Kudos

1,362 Views
BlackNight
NXP Employee
NXP Employee

Hello Bernhard,

I just checked: The IntFLASH component is not available/enabled in the free Special Edition of CodeWarrior.

So yes, this could be indeed your problem.

 

BK

0 Kudos

1,362 Views
dafodil
Contributor III

Hi BK,

 

CW10.2 said nothing about these licences, it's strange.

Do you know how to check licence of components in CW10.2?

 

Bernard

0 Kudos