2019-11-08 03:10 PM
Hi All,
I continually have problems with the HAL drivers and CubeMX. ST Doesn't seem to have a proper bug tracking and reporting system. If they have, I haven't been able to find it.
I have posted bugs to the support system, but never seem to get any response.
Yesterday I built a SPI to Ethernet interface with a simple LCD display for use as a data server interface to a real time power monitor. I used CubeMX to do this.
When I built it I had errors when compiling lwip.c. Viz
compiling lwip.c...
../LWIP/App/lwip.c(85): error: #55-D: too many arguments in invocation of macro "osThreadDef"
osThreadDef(EthLink, ethernet_link_thread, osPriorityNormal, 0, configMINIMAL_STACK_SIZE *2);
../LWIP/App/lwip.c(85): error: #20: identifier "EthLink" is undefined
osThreadDef(EthLink, ethernet_link_thread, osPriorityNormal, 0, configMINIMAL_STACK_SIZE *2);
../LWIP/App/lwip.c(85): error: #144: a value of type "void (*)(void *)" cannot be used to initialize an entity of type "osPriority_t"
osThreadDef(EthLink, ethernet_link_thread, osPriorityNormal, 0, configMINIMAL_STACK_SIZE *2);
This code used to compile OK in previous versions and I have working ethernet on these projects.
The code in error is shown below:
/* Create the Ethernet link handler thread */
osThreadDef(EthLink, ethernet_link_thread, osPriorityNormal, 0, configMINIMAL_STACK_SIZE * 2);
osThreadCreate (osThread(EthLink), &gnetif);
The definition of osThreadDef found by right clicking and looking up the definition is found in cmsis_0s.h and is shown below;
// ==== Thread Management Functions ====
/// Create a Thread Definition with function, priority, and stack requirements.
/// \param name name of the thread function.
/// \param priority initial priority of the thread function.
/// \param instances number of possible thread instances (used to statically allocate memory).
/// \param stacksz stack size (in bytes) requirements for the thread function.
#if defined (osObjectsExternal) // object is external
#define osThreadDef(name, priority, instances, stacksz) \
extern const osThreadDef_t os_thread_def_##name
#else // define the object
#define osThreadDef(name, priority, instances, stacksz) \
static uint32_t os_thread_stack##name[(stacksz)?(((stacksz+3)/4)):1]; \
static StaticTask_t os_thread_cb_##name; \
const osThreadDef_t os_thread_def_##name = \
{ (name), \
{ NULL, osThreadDetached, \
(instances == 1) ? (&os_thread_cb_##name) : NULL,\
(instances == 1) ? sizeof(StaticTask_t) : 0U, \
((stacksz) && (instances == 1)) ? (&os_thread_stack##name) : NULL, \
4*((stacksz+3)/4), \
(priority), 0U, 0U } }
#endif
I do not understand what the problem is as I am no C expert. Can anyone help me on what the problem might be.
I have had three bugs in AHL drivers over the past six months and patched them myself as I have given up on ST.
What annoys me is that ST Bug Support is pretty much non-existent as far as I can see. Bug reporting is as much a service to the company as it is to customers as it represents testing of the software. Complex bugs can take an hour to properly define and write up, The company is getting that time for free.
I use KiCad for my pcb design. I always use the Nightly builds of this and have had a couple of bugs which I have reported on their bug reporting system. The system is great easy, to use and it gets fast reposes from their staff. Why can't a large company like ST do the same?
What do other people think?
Best regards
Rob
2019-11-08 03:43 PM
Additional
I patched lwip.c with a "raw" freeRTOS call to create a task:
/******************************* rjgMod **********************************/
/* Create the Ethernet link handler thread */
// osThreadDef(EthLink, ethernet_link_thread, osPriorityNormal, 0, configMINIMAL_STACK_SIZE * 2);
// osThreadCreate (osThread(EthLink), &gnetif);
/* Monitor Task */
xTaskCreate(ethernet_link_thread,
(char const*)"ethernetLinkTsk",
600,
NULL,
6,
ethernetTaskHnd);
/******************************* End rjgMod ******************************/
It now compiles and builds. (Don't like cmsis os interface anyway. It's obtuse)
I don't know if it works yet.
That's for another installement!
2019-11-08 10:40 PM
It would be interesting to know how SW bug reporting / experience is done in similar companies for microcontrollers.
Anyone?
2019-11-27 12:06 AM
As usual no interest shown from ST in this topic!