工具与软件:
我是第一次尝试设置一个 鸵鸟流对象,但它崩溃的固件到 UTL_Halt ()当写入.
例如、g_diagLog <<"Hello World"<< endl
类 CDiagLog :公共排斥流 {公共 : CDiagLog (char buffer[]、unsigned int size ); private :};
#pragma DATA_SECTION ("ExtPgm3")
Char m_logBuffer[1024]={0}; #pragma DATA_SECTION ("ExtPgm3") CDiagLog g_diagLog (m_logBuffer、sizeof (m_logBuffer)); CDiagLog::CDiagLog (char buffer[]、unsigned int 大小) { memset (缓冲区、0、大小); }
当我跟踪程序执行时、它遵循这个路径(在进入指定函数时给出一些 CPU 寄存器的内容):
std::basic_ostream
sputn (ptr、count)-- XAR0:0x04A044、T0:0x0014
xsputn (ptr、count)-- xar0:0x04a044、T0:0x0014
std::strstreambuf:overflow (int)-- T0:0x0046
新操作员[]-- T0:0x0020
操作者 new -- T0:0x0020
malloc ()-- T0:0x0020
MEM_alloc ()-- T0:0x0001、T1:0x0024、T2:0x0024
lock2 ()-- XAR0:0x040000、XAR1:0x020000、T0:0x0001、T1:0x0024、T2:0x0001、 T3:0x0000
sys_abort ()-- XAR0:0x40000、XAR1:0x20001
UTL_Halt()
是否需要在 .tcf (main.tcf)中设置某些内容来支持 strstream 对象?
谢谢。


