Thread 中讨论的其他器件:OMAPL138
工具/软件:TI-RTOS
我正在尝试在我的应用中设置网络和 UART 接口。 但当我在 LCDKC6748上调试我的应用时。 启动时会出现一些错误:
[C674x_0]使用 MAC 地址的默认 MAC 地址保存所需的200个字节:00-08-ee-03-14-99 00000.000 createInterrupts:错误:无法创建 RX Hwi! 00000.000 E_alreadyDefined:Hwi 已定义:INTR#-1094795586 00000.000 createInterrupts:错误:无法创建 TX Hwi! 00000.000 E_alreadyDefined:Hwi 已定义:INTR#-1094795586 00000.000 EMAC 已成功启动 00000.000 EMAC 注册 EMAC 成功 网络已添加:if-1:192.168.1.66 服务状态:Telnet:Enabled: :000 服务状态:Telnet:已禁用: :000 网络已删除:if-1:192.168.1.66 13:48 (20%) 11:96 (34%) 1:128 (4%) 6:256 (50%) 1:512 (16%) 0:1536 0:3072 (15360/49152毫米锁:40/0/34、mmBulk:3/0/3) 在48字节页面中分配3个块 (000d)(000d)(000b) 在256字节页面中分配3个块 (000a)(0000) (000a)输入 main () ti.sysbios.family.c64p.htr: 已经定义的 Hwi# taskinfwi.intrl:#taskxwi#t:已经定义的 Hwi#taskined.infwi.ine.taskine.taskn#
我在评论时发现了这一点
board_initCfg boardCfg; boardCfg = Board_init_PINMUX_CONFIG | Board_init_uart_stdio; board_init (boardCfg);
网络设置正常。 UART 中使用的某些 Hwi 似乎与网络模块冲突。
有人能帮我找出原因吗? 谢谢你
PS:这是我的 app.cfg
VAR Defaults = xdc.useModule('xdc.runtime.Defaults');
var Diags = xdc.useModule('xdc.runtime.Diags');
var Error = xdc.useModule('xdc.runtime.Error');
var Log = xdc.useModule('xdc.runtime.Log');
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
var Main = xdc.useModule('xdc.runtime.Main');
var Memory = xdc.useModule('xdc.runtime.Memory'
) var SysMin = xdc.useModule('xdc.runtime.SysMin');
var System = xdc.useModule('xdc.runtime.System');
var Text = xdc.useModule('xdc.runtime.Text');
var BIOS = xdc.useModule('ti.sysbios.BIOS');
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
VAR Swi = xdc.useModule('ti.sysbios.knl.Swi');
var Task = xdc.useModule('ti.sysbios.knl.Task');
var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
var ECM = xdc.useModule('ti.sysbios.family.c64p.EventCombiner');
var core = xdc.useModule('ti.sysbios.hal.Core');
//
*取消注释此行以全局禁用断言。
*所有模块继承'库'模块的默认值。 您
*可以使用 Module.common$按模块覆盖这些默认值。
*禁用断言将节省代码空间并提高运行时性能。
Defaults.common$.diags_ASSERT = Diags.always_off;
*/
*
取消注释此行以防止模块名称加载到目标上。
*模块名称字符串放置在.const 段中。 将此
*参数设置为 false 将节省.const 段中的空间。 错误和
*断言消息将包含"未知模块"前缀、而
不是*实际模块名称。
Defaults.common$.namedModule = false;
*/
/*
将系统中的 exit 处理程序数组最小化。 System 模块包括
*一组函数,这些函数在 System_atexit()中注册,
*由 System_exit()调用。
//
System.maxAtexitHandlers = 4;
/*
取消注释此行以禁用错误打印功能。
*禁用时,我们会丢失错误信息,因为
*不打印错误。 如果
*由于 Error_print()函数
*调用 System_printf(),禁用 raiseHook 将节省一些代码空间。
error.raiseHook =空;
*/
/*
取消注释此行以防止*在
目标上加载错误、断言和日志字符串。 这些字符串放置在.const 段中。
*将此参数设置为 false 将节省.const 段中的空间。
*错误、断言和日志消息将打印原始 ID 和 args、而不是
*格式化的消息。
text.isLoaded = false;
*/
/*
取消注释此行以在
程序退出时禁用 SysMin *的字符输出。 SysMin 向循环缓冲区写入字符。
*可以使用 ROV 中的 SysMin Output 视图查看该缓冲器。
SysMin.flushAtExit = false;
*/
/*
BIOS 模块将为系统创建默认堆。
*指定此默认堆的大小。
//
//BIOS.heapSize = 0x1000;
//
*设置内存和高速缓存
*//
*使用内存堆配置模块*
/ var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
var Memory = xdc.useModule('xdc.runtime.Memory');
var MMU = xdc.useModule('ti.sysbios.family.c64p.Cache');
//*创建 HeapMem 堆实例"systemHeapParams"*
/ var systemHeapParams = new HeapMem.Params;
systemapParams = 0x00020;systemHeapParams.Params = 0x00020
VAR systemHeap = HeapMem.create (systemHeapParams);
//将"systemHeap "设置为应用程序的默认堆*/
Memory.defaultHeapInstance = systemHeap;
//
*从源构建自定义 SYS/BIOS 库。
//
BIOS.libType = BIOS.LibType_Custom;
//系统堆栈大小(由 ISR 和 Swi 使用)*/
Program.stack = 0x2000;
// System_printf ()的循环缓冲区大小*/
sysmin.bufSize = 0x200;
//
*为整个系统创建和安装记录
器*/
var logerBufParams = loggerBufParams;
创建 LoggerBufParams = 16.0=LoggerLoggerBufParams;创建和安装记录器
Defaults.common$.logger = logger0;
Main.common$.diags_INFO = Diags.always_on;
System.SupportProxy = SysMin;
/*
=== NDK 配置====
//
var Global = xdc.useModule('ti.ndk.config.Global');
//
*不生成任何代码,此示例显示如何
手动对 NDK 堆栈线程进行编码*'StackTest'。
//
Global. enableCodeGeneration = false;
//创建 NDK 堆栈任务线程*/
var Task = xdc.useModule('ti.sysbios.knl.Task');
var ndkTaskParams = new Task.Params ();
ndkTaskParams.priority = 5;
ndkTaskParams.stakSIZE = 8192;
Task.create ('&StackTest'、ndkParams);
/*
使用 OMAPL138 EMAC 模块。 这将导致 dirver 库链接
*到程序中。
*/
xdc.useModule('ti.drv.omapl138.Emac');
/*在启动时调用 init 函数*/
BIOS.startupFxns =['&EVM_Init'];
/*
=== PDK 配置====
//
var devType ="omapl138"
//加载 OSAL 软件包*/
var osType ="tirtos"
var OSAL = xdc.useModule('ti.osal.Settings');
OSAL.osType = osType;
OSAL.socType = devType;
/*使用 CSL 软件包*/
var devl = xdc.loadPackage ('ti.csl');
Csl.Settings.deviceType
= board.loadType
=板级软件包*和 board.loadType *
board.Settings.boardName ="lcdkOMAPL138";
//加载 UART 软件包*/
var UART = XDC.loadPackage ('ti.drv.UART');
UART.Settings.enableProfiling = false;
UART.Settings.socType = devType;
//创建 UART 任务线程*/
var uartTaskParams = new Task.Params= true.true/enuartams
(&truart.Params
)xdc.useModule('ti.sysbios.family.c64p.Exception');
;var = exception (&true/uart.Params = true/uart.Params = true/uart_exception)