diff --git a/components/freertos/include/freertos/task.h b/components/freertos/include/freertos/task.h index 29a4bee27b..0012cc600b 100644 --- a/components/freertos/include/freertos/task.h +++ b/components/freertos/include/freertos/task.h @@ -249,7 +249,8 @@ is used in assert() statements. */ * in SMP system. * * @param pvTaskCode Pointer to the task entry function. Tasks - * must be implemented to never return (i.e. continuous loop). + * must be implemented to never return (i.e. continuous loop), or should be + * terminated using vTaskDelete function. * * @param pcName A descriptive name for the task. This is mainly used to * facilitate debugging. Max length defined by configMAX_TASK_NAME_LEN - default @@ -314,7 +315,8 @@ is used in assert() statements. */ * xTaskCreateRestricted(). * * @param pvTaskCode Pointer to the task entry function. Tasks - * must be implemented to never return (i.e. continuous loop). + * must be implemented to never return (i.e. continuous loop), or should be + * terminated using vTaskDelete function. * * @param pcName A descriptive name for the task. This is mainly used to * facilitate debugging. Max length defined by configMAX_TASK_NAME_LEN - default @@ -400,7 +402,8 @@ is used in assert() statements. */ * task affinity in an SMP system. * * @param pvTaskCode Pointer to the task entry function. Tasks - * must be implemented to never return (i.e. continuous loop). + * must be implemented to never return (i.e. continuous loop), or should be + * terminated using vTaskDelete function. * * @param pcName A descriptive name for the task. This is mainly used to * facilitate debugging. The maximum length of the string is defined by @@ -460,7 +463,8 @@ is used in assert() statements. */ * using any dynamic memory allocation. * * @param pvTaskCode Pointer to the task entry function. Tasks - * must be implemented to never return (i.e. continuous loop). + * must be implemented to never return (i.e. continuous loop), or should be + * terminated using vTaskDelete function. * * @param pcName A descriptive name for the task. This is mainly used to * facilitate debugging. The maximum length of the string is defined by diff --git a/docs/en/api-guides/fatal-errors.rst b/docs/en/api-guides/fatal-errors.rst index a3293f7965..ce7e337d84 100644 --- a/docs/en/api-guides/fatal-errors.rst +++ b/docs/en/api-guides/fatal-errors.rst @@ -238,7 +238,11 @@ Application has attempted to read or write memory location, and address alignmen LoadStoreError ^^^^^^^^^^^^^^ -Application has attempted to do a 8- or 16- bit load/store from a memory region which only supports 32-bit loads/stores. For example, dereferencing a ``char*`` pointer which points into intruction memory will result in such an error. +This exception may happen in the following cases: + +- If the application has attempted to do an 8- or 16- bit load/store from a memory region which only supports 32-bit loads/stores. For example, dereferencing a ``char*`` pointer to intruction memory (IRAM, IROM) will result in such an error. + +- If the application has attempted a store to a read-only memory region, such as IROM or DROM. Unhandled debug exception ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/zh_CN/api-guides/fatal-errors.rst b/docs/zh_CN/api-guides/fatal-errors.rst index 8db3ac6a14..50c9328ffd 100644 --- a/docs/zh_CN/api-guides/fatal-errors.rst +++ b/docs/zh_CN/api-guides/fatal-errors.rst @@ -239,7 +239,10 @@ LoadStoreAlignment LoadStoreError ^^^^^^^^^^^^^^ -应用程序尝试从仅支持 32 位加载/存储的内存区域执行 8 位或 16 位加载/存储操作,例如,解引用一个指向指令内存区域的 ``char*`` 指针就会导致这样的错误。 +这类异常通常发生于以下几种场合: + +应用程序尝试从仅支持 32 位加载/存储的内存区域执行 8 位或 16 位加载/存储操作,例如,解引用一个指向指令内存区域(比如 IRAM 或者 IROM)的 char* 指针就会触发这个错误。 +应用程序尝试保存数据到只读的内存区域(比如 IROM 或者 DROM)也会触发这个错误。 Unhandled debug exception ^^^^^^^^^^^^^^^^^^^^^^^^^