Other Parts Discussed in Thread: SYSBIOS
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"
'
****构建完成****