cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F4 MCU firmware package 1.28.1

hubert_m
Associate II

STM32CubeIDE v.1.15.1

Currently on the official STM32F4 MCU package site there is a patch 1.28.1 to download which should include some fixes for ethernet issues (I hope those are fixes for issues I have) but this version is not availablie through Embedded Software Packages Manager (I did refreshed the list). I can download zip file from STM32CubeF4 - STM32Cube MCU Package for STM32F4 series (HAL, Low-Layer APIs and CMSIS, USB, TCP/IP, File system, RTOS, Graphic - and examples running on ST boards) - STMicroelectronics

but I can't import it using "From local..."

hubert_m_1-1718563110205.png

 

hubert_m_0-1718562870440.png


What's current status of 1.28.1 package? 

I'm currently using 1.27.1 version, is there any reasonable way to update to newer package or do I have to generate a new project?

 

 

8 REPLIES 8
Pavel A.
Evangelist III

 

Is the zip file damaged? Check file package.xml in the root.

It should be:

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<Package DBVersion="2.0">
 <PackDescription Release="FW.F4.1.28.0"  Patch="FW.F4.1.28.1">
  <Note  Release="ReleaseNotes.html" Patch="ReleaseNotes_Patch.html"/>
 </PackDescription>
</Package>

 If looks OK:

* Back up the previous CubeH4 library directory

* Extract the patch zip over the CubeH4 library directory, let it replace all files.

 

I followed you instructions and then changed library version in project.ioc. Reopened project, regenerated code and it seems like I'm using 1.28.1. Edit: Opened project in CubeMx, changed package version and regenerated code. Now .ioc won't open in STM32CubeIDE

Unfortunately still tcip_ip thread lock up in waiting for TxPktSemaphore in lol_level_output. I fill further investigate it and report on github. Everything worked fine until I've enabled HTTPD (just static). After that following steps can lock ethernet outpu:

1. Reset device

2. Ping device (just to test it works) -> works perfectly

3. send Get response -> HTTPS logs shows that everything is okey and it send reponse (it doesn't)

4. tcp_ip thread locked while waiting for TxPktSemaphore in low_level_output function.

 

 

static err_t low_level_output(struct netif *netif, struct pbuf *p)
{
  uint32_t i = 0U;
  struct pbuf *q = NULL;
  err_t errval = ERR_OK;
  ETH_BufferTypeDef Txbuffer[ETH_TX_DESC_CNT] = {0};

  memset(Txbuffer, 0 , ETH_TX_DESC_CNT*sizeof(ETH_BufferTypeDef));

  for(q = p; q != NULL; q = q->next)
  {
    if(i >= ETH_TX_DESC_CNT)
      return ERR_IF;

    Txbuffer[i].buffer = q->payload;
    Txbuffer[i].len = q->len;

    if(i>0)
    {
      Txbuffer[i-1].next = &Txbuffer[i];
    }

    if(q->next == NULL)
    {
      Txbuffer[i].next = NULL;
    }

    i++;
  }

  TxConfig.Length = p->tot_len;
  TxConfig.TxBuffer = Txbuffer;
  TxConfig.pData = p;

  pbuf_ref(p);

  if (HAL_ETH_Transmit_IT(&heth, &TxConfig) == HAL_OK) {
    while(osSemaphoreAcquire(TxPktSemaphore, TIME_WAITING_FOR_INPUT)!=osOK) //LOCK wait forever

    {
    }

    HAL_ETH_ReleaseTxPacket(&heth);
  } else {
    pbuf_free(p);
  }

  return errval;
}

 

 

 

I found solution to my problem with ethernet

Re: HTTP request to STM32 + LwIP results that Ping... - STMicroelectronics Community

Will 1.28.1 patch be available through Software manager in Cube? Now it hard to mantain correct version if one has to remember about manually applyting patch.

lealoureiro
Associate II

Does someone has any updates when the firmware version 1.28.1 will be available in STM32CubeIDE or STM32CubeMX via Package Manager? there is another way to install it via URL?

I just tried in latest version of both software and still don't see it there :(

Pavel A.
Evangelist III

You can download 1.28.1  fom github and install manually.

https://github.com/STMicroelectronics/STM32CubeF4/releases/tag/v1.28.1

 

 

It does not work :( 

I tried to download the zip and add it from ST Package Manager by using "from local" option but it says the package is corrupted.

 

Any suggestions how to import it?

Why ST team does not add it to the list?

 

Btw, does this package also includes the template code for the code generate by STM32CubeIDE (LwIP, RTOS, etc?)

Instructions how to install the code from the github are in the readme.md text, here:

https://github.com/STMicroelectronics/STM32CubeF4/tree/master

Scroll to the header: 

How to use

and then : "to use the same firmware version as the one available on st.com, issue the command below after specifying the targeted vX.Y.Z version"...

The instructions assume that the user is familiar with git. Else, you won't be able to use this method and need to wait until the update is available in package manager.

Unfortunately using the zip of a release/tag is no longer possible because of lot of submodules. So, must use git.

 

BarryWhit
Senior III

Newer versions of Cube MCU package can be limited to newer CubeIDE version. This may be on purpose due to incompat issues, or it may be just because of reduced attention to older versions. There is an XML file in the updater plugin directory (I can't remember the path off the top of my head) which shows the latest supported package version per family (for your CubeIDE installation). If (after a metadata update over net) the version shown there is below 1.28.1 (or whatever), you will not be able to upgrade to it through the updater, only manually - and at your own risk.

 

FWIW, I've done manual updates and had no issues, but I probably got lucky and my projects simply haven't overlapped with the incompat changes in that version. Logically, whenever there's an incompat change, they have to bump the CubeIDE version for the entire package, even if you need a specific different fix which isn't in itself incompat. You either have to upgrade your IDE, or roll the dice and apply the patch manually. I would expect a minor version to be compatible within the same CubeIDE version though, so I'm not sure what's going on (if you do actually have 1.28.0 installed, I mean).

 

One possible reason for this IDE/Package version compat requirement is that (IIRC) the templates used for code generation are not part of the Cube MCU package, but instead are part of the Cube IDE install. By that I mean the files are found under the CubeIDE install dir, not under the Repository dir where MCU packages are installed.

 

 

- If a post has answered your question, please acknowledge the help you received by clicking "Accept as Solution".
- Once you've solved your issue, please consider posting a summary of any additional details you've learned. Your new knowledge may help others in the future.