cancel
Showing results for 
Search instead for 
Did you mean: 

firmware over Ethernet possible on STM32F103?

DJlee
Associate II

STM32F103 and W5300 (Ethernet chip) were connected to FSMC.

I've officially checked how to do firmware using Uart or USB.

However, I can't find the firmware method using Ethernet.

Can STM32F103 proceed with firmware upgrade using firmware data received from Ethernet Chip?

3 REPLIES 3

It's just blocks of data.

Perhaps read a BIN or HEX from an HTTP server as a simple example. Decode and write to flash pages. Look at other IAP examples to understand the mechanics. 

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
DJlee
Associate II

Thank you for your reply.

Can I change the bootloader behavior using IAP?

I'm looking for an IAP example, but it's hard to search.
I watched AN4657 but it was for Cube.

You also do not currently have a file named Linker script (*.ld).

We are currently compiling using IAR IDE.

Can you give me more help?

------

Should I work on the main and IAP as one project in addition?

Or do I have to hold the project for IAP and the main project respectively?

If there is no BUTTON_KEY in the example code below, does it move to while(1) if "Jump_To_Application();" appears?


////////////////////////////////////////////////////////////////////////////
/* /* Test if Key push-button on STM3210X-EVAL Board is pressed */
if (STM_EVAL_PBGetState(BUTTON_KEY) == 0x00)
{
/* /* If Key is pressed */
/* /* Execute the IAP driver in order to re-program the Flash */
IAP_Init();
Main_Menu ();
}
/* /* Keep the user application running */
else
{
/* /* Test if user code is programmed starting from address "ApplicationAddress" */
if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)
{
/* /* Jump to user application */
JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);
Jump_To_Application = (pFunction) JumpAddress;
/* /* Initialize user application's Stack Pointer */
__set_MSP(*(__IO uint32_t*) ApplicationAddress);
Jump_To_Application();
}
}

while (1)
{}

///////////////////////////////////////////////////////////////////////

Thank you for your answer.

I got to know IAP.

I'm currently using IAR IDE

1. Use Ethernet chip (W5300) to store firmware in appropriate flash memory
2. Change bootloader contents to IAP to overwrite stored firmware on user memory
3. Resetting

Is it going to work together?
I wonder if IAR IDE can also be applied.
"AN4657" seems to be for the Cube only.

Can you give me more help?