mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-03 20:54:32 +02:00
esp_expression_with_stack: fix wrong top of stack calculation plus documentation update
This commit is contained in:
@@ -6,8 +6,7 @@ StackType_t * esp_switch_stack_setup(StackType_t *stack, size_t stack_size)
|
||||
{
|
||||
int watchpoint_place = (((int)stack + 31) & ~31);
|
||||
StackType_t *top_of_stack = (StackType_t *)&stack[0] +
|
||||
(sizeof(stack_size * sizeof(StackType_t)) /
|
||||
sizeof(StackType_t));
|
||||
((stack_size * sizeof(StackType_t)) / sizeof(StackType_t));
|
||||
|
||||
//Align stack to a 16byte boundary, as required by CPU specific:
|
||||
top_of_stack = (StackType_t *)(((UBaseType_t)(top_of_stack - 31) -
|
||||
|
@@ -19,7 +19,7 @@ Usage
|
||||
a mutex object allocated by the caller, which is used to protect if
|
||||
the same function shares its allocated stack, a pointer to the top
|
||||
of stack used to that fuction, and the function itself, note the
|
||||
function is passed extactly in the same way as do when you call
|
||||
function is passed exactly in the same way as do when you call
|
||||
it on a regular way.
|
||||
|
||||
The usage may looks like the code below:
|
||||
@@ -40,6 +40,7 @@ The usage may looks like the code below:
|
||||
ESP_EXECUTE_EXPRESSION_WITH_STACK(printf_lock,
|
||||
shared_stack,
|
||||
printf("Executing this from external stack! \n"));
|
||||
vSemaphoreDelete(printf_lock);
|
||||
free(shared_stack);
|
||||
}
|
||||
|
||||
|
@@ -18,7 +18,7 @@ System API
|
||||
High Resolution Timer <esp_timer>
|
||||
Himem (large external SPI RAM) API <himem>
|
||||
Inter-Processor Call <ipc>
|
||||
Call function with external stack<esp_expression_with_stack>
|
||||
Call function with external stack <esp_expression_with_stack>
|
||||
Interrupt Allocation <intr_alloc>
|
||||
Logging <log>
|
||||
Miscellaneous System APIs <system>
|
||||
|
Reference in New Issue
Block a user