¿Por qué solo se crean un máximo de 8 señales cuando se ejecuta UCOS en STM32?
/display/osiidoc/Semaphore+Management
Puede ver directamente la tasa de éxito de la creación de señales en el código
Unique Al igual que con el número total de señales, se realiza verificando la cadena de tablas OSEventFreeList para ver si quedan recursos. Sin el código completo a mano, no estoy seguro de cuál es la estructura de la cadena de tablas OSEventFreeList o dónde se encuentra el código de inicialización. Pero lo que sí es seguro es que la longitud inicial de la cadena determina cuántas señales se pueden asignar como máximo.
Si necesita más señales, debe modificar los parámetros del código de inicialización de OSEventFreeList. Además, modificar este parámetro puede requerir modificar otras partes de asignación de recursos de memoria (no he analizado el código fuente, por lo que no puedo estar seguro).