工具/软件:
它可能关心的对象、
我已从 https://github.com/TexasInstruments/mcupsdk-core.git 下载 ThreadX 移植代码
我已在 TMDS64EVM 板上成功移植 ThreadX。
在移植 R5F 内核后、我注意到浮点打印问题。
线程在 main 函数开始之前、如果我放入以下代码、
main()
{
悬空 A = 3.0F;
DebugP_log ("[R5_0] R50 浮点值%f!!\r\n"、a);
/*输入 ThreadX 内核。 */
tx_kernel_enter ();
}
它 printf "[MAIN_Cortex_R5_0_0][R5_0] R50 float 值 3.000000!!" 浮点打印没有问题。
Buf 在线程入口函数执行线程后、浮点变量显示奇怪的值。
void tx_application_define (void * first_unused_memory)
{
UINT 状态;
状态= tx_thread_create (&main_thread、/*指向主线程对象的指针。 */
"main_thread"、/*用于调试的任务名称。 */
主线程的 ThreadX_main、/*条目函数。 */
0、/*传递给 entry 函数的参数。 */
MAIN_THREAD_STACK、/*主线程栈。 */
MAIN_TASK_STACK_SIZE、/*主线程栈大小(以字节为单位)。 */
MAIN_TASK_PRI、/*主任务优先级。 */
MAIN_TASK_PRI、/*已禁用占先的最高优先级。 */
tx_no_time_slice、/*无时间片。 */
TX_AUTO_START);/*立即启动。 */
}
void ThreadX_main ()
{
悬空 A = 3.0F;
DebugP_log ("[R5_0] R50 浮点值%f!!\r\n"、a);
}
在 ThreadX_main 函数中、它按如下方式打印值:
"[R5_0] R50浮点值32.000008!!!"
我已通过定义 TX_ENABLE_FPU_support 功能启用 FPU 上下文切换、但运气不好。
请告诉我们我必须修改代码的哪一部分。
谢谢您、
Sangjoon