This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/PROCESSOR-SDK-AM335X:任务未启动

Guru**** 2933180 points

Other Parts Discussed in Thread: SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/668049/rtos-processor-sdk-am335x-task-does-not-start

器件型号:PROCESSOR-SDK-AM335X
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

你好

每一个期待的人

这是东京的 Tomiyama。

我的任务也一样简单。 但它不会跳转到任务函数。

谁能告诉我如何跳转到任务功能。请尽快获得您的帮助。

此致

Tomiyama


/*
 * ==== taskFxn ====
 *
静态空 taskFxn (UARg a0、UARg A1)

   int cnt = 0;

   if (sys_init_cache()== false) while (1);

   /*我们需要的初始 USB 部件*/
   USB_init();

   while (1)
   {
       USB_main();
       CNT++;
       System_printf ("USB_task Count:%d\n"、cnt);

       system_flush();/*强制 SysMin 输出到控制台*/

   }

/*
 * ==== main ====
 *
int main()

   Task_Params taskParams1、taskParams2;
   Task_Handle 任务;
   ERROR_Block EB;

   system_printf ("enter main()\n");

 
   Task_Params_init (&taskParams2);
   taskParams2.instance->name ="task2";
   taskParams2.STACKSIZE = 2048;
   taskParams2.arg0 = 2;
   taskParams2.priority = 15;
   ERROR_INIT (&EB);
   任务= Task_create (taskFxn、&taskParams2、&EB);
   if (task =NULL){
       System_printf ("Task_create() failed!\n");
       BIOS_exit (0);
   }

   BIOS_start();   /*不返回*/
   返回(0);

下面是.cfg 文件。 编译器运行正常。

VAR 默认值= xdc.useModule('xdc.runtime.Defaults');
VAR 诊断= xdc.useModule('xdc.runtime.Diags');
VAR 错误= xdc.useModule('xdc.runtime.Error');
VAR 日志= xdc.useModule('xdc.runtime.Log');
VAR LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
VAR Main = xdc.useModule('xdc.runtime.Main');
VAR 内存= xdc.useModule('xdc.runtime.Memory')
VAR SysMin = xdc.useModule('xdc.runtime.SysMin');
VAR 系统= xdc.useModule('xdc.runtime.System');
var text = xdc.useModule('xdc.runtime.Text');

VAR BIOS = xdc.useModule('ti.sysbios.BIOS');
VAR 时钟= xdc.useModule('ti.sysbios.knl.Clock');
VAR Swi = xdc.useModule('ti.sysbios.knl.Swi');
VAR 任务= xdc.useModule('ti.sysbios.knl.Task');
VAR 信标= xdc.useModule('ti.sysbios.knl.Semaphore');
VAR Hwi = xdc.useModule('ti.sysbios.hal.Hwi');

/*
 *取消注释此行以全局禁用断言。
 *所有模块继承'库'模块的默认值。  您
 *可以使用 Module.common$按模块覆盖这些默认值。
 *禁用断言将节省代码空间并提高运行时性能。
Defaults.common$.diags_ASSERT = Diags.always_off;
 *

/*
 *取消注释此行以防止模块名称加载到目标上。
 *模块名称字符串放置在.const 段中。 设置此值
 *将参数设置为 false 将节省.const 段中的空间。  误差和
 *断言消息将包含"未知模块"前缀
 实际模块名称的*。
Defaults.common$.namedModule = false;
 *

/*
 *最小化系统中的 EXIT 处理程序数组。  系统模块包括
 *向 System_atexit()注册的函数数数组
 *由 System_exit()调用。
 *
System.maxAtexitHandlers = 4;       

/*
 *取消注释此行以禁用错误打印功能。  
 *禁用此功能时,我们会丢失错误信息,因为错误是这样
 *未打印。  如果禁用 raiseHook、则会节省一些代码空间
 *由于 Error_print()函数,您的应用程序未使用 System_printf()
 *调用 System_printf()。
error.raiseHook =空;
 *

/*
 *取消注释此行以防止 Error、Assert 和 Log 字符串成为字符串
 *加载到目标上。  这些字符串放置在.const 段中。
 *将此参数设置为 false 将节省.const 段中的空间。
 *错误、断言和日志消息将打印原始 ID 和 args 而不是
 *格式化的邮件。
text.isLoaded = false;
 *

/*
 *取消注释此行以禁用 SysMin 的字符输出
 *程序退出时。  SysMin 向循环缓冲区写入字符。
 *可以使用 ROV 中的 SysMin Output 视图查看该缓冲器。
SysMin。flushAtExit = false;
 *

/*
 * BIOS 模块将为系统创建默认堆。
 *指定此默认堆的大小。
 *
BIOS.heapSize = 0x1000;

/*
 *从源构建自定义 SYS/BIOS 库。
 *
BIOS.libType = BIOS.LibType_Custom;

/*系统堆栈大小(由 ISR 和 Swi 使用)*/
program.stack = 0x2000;

System_printf()的/*循环缓冲区大小*/
SysMin。bufSize = 0x200;

/*
 *为整个系统创建并安装记录器
 *
var logerBufParams = new LoggerBuf.Params();
LoggerBufParams.numEntry = 16;
var logger0 = LoggerBuf.create (logerBufParams);
Defaults.common$.logger = logger0;
Main.common$.diags_INFO = Diags.always_on;

System.SupportProxy = SysMin;

编译器:


****项目 RTOS_USB_JSL_API_PPA_02_29的配置调试构建****

"C:\\ti\\ccsv7\\utils\\bin\\gmake"-k -j 4 all -O
gmake[1]:进入目录'C:/workspace_v7_02_26_USB/RTOS_USB_JSL_API_PPA_02_29/调试'
'生成文件:./app.cfg '
'调用:XDCtools '
"c:/ti/xdctools_3_32_02_25_core/xs "--xdcpath="C:/ti/bios_6_46_05_55/packages;C:/ti/ccsv7/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.a8Fnv -p ti.platforms.evmAM3359 -r debug -c "C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS "--compileOptions "-g -optimize_with _debug""./app.cfg
正在制作 package.mak (由于 package.bld)...
正在为软件包 configPkg 生成接口(因为 package/package.xdc.inc 比 package.XDC 旧)...
正在从 package/cfg/app_pea8fnv.cfg 配置 app.xea8fnv ...
正在生成自定义 ti.sysbios 库 makefile ...
正在开始构建库源...
使 C:/workspace_v7_02_26_USB/RTOS_USB_JSL_API_PPA_02_29/src/SYSBIOS/SYSBIOS.aaea8fnv ...
gmake[1]:进入目录`C:/workspace_v7_02_26_USB/RTOS_USB_JSL_API_PPA_02_29/src/SYSBIOS'
clei8fnv C:/ti/bios_6_46_05_55/packages/ti/sysbios/BIOS.c……
asmea8fnv C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/IntrinsicsSupport_asm.asm……
asmea8fnv C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/TaskSupport_asm.asm……
asmea8fnv C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a8/intcps/Hwi_asm.s470……
asmea8fnv C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a8/intcps/Hwi_asm_switch.s470……
asmea8fnv C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/exc/Exception_asm.asm……
asmea8fnv C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a8/Cache_asm.asm……
asmea8fnv C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a8/Mmu_asm.asm……
asmea8fnv C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a8/TimestampProvider_asm.asm……
asmea8fnv C:/ti/bios_6_46_05_55/packages/ti/sysbios/timers/dmtimer/Timer_asm.s470……
area8fnv BIOS.obj arm_IntrinsicsSupport_asm.obj arm_TaskSupport_asm.obj intcps_hwi_asc.obj intcps_hwi_asm_switch.obj exc_exception_asm_asm_cache_asc.obj mu_asmu_asc.obj A8 Timer_Timer_Timer_dA8………
gmake[1]:离开目录`C:/workspace_v7_02_26_USB/RTOS_USB_JSL_API_PPA_02_29/src/SYSBIOS'
已完成库构建。
clei8fnv 封装/cfg/app_pea8fnv.c……
'完成构建:./app.cfg '
'
gmake[1]:离开目录'C:/workspace_v7_02_26_USB/RTOS_USB_JSL_API_PPA_02_29/调试'
       1 μ A 個のファイルをコピーしました。
正在制作./src/sysbios/sysbios.aea8fnv ...
gmake[1]:没有为"全部"执行任何操作。
'building file:./init.asm'(构建文件:./init.asm)
'调用:ARM 编译器'
"../usb_lib/platform.lib""./usb_lib/system.lib""./usb_lib/usblib.lib""./usb_lib/utils.lib"-l"configPkg/linker.cmd"-llibc.a

'已完成的构建目标:RTOS_USB_JSL_API_PPA_02_29.OUT"
'

****构建完成****

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Tomiyama、

    请尝试在代码中输入一些断点以查看其停止位置吗?
    如果没有更多的代码行为信息、调试将会很困难。

    Lali