主题中讨论的其他器件: TDA2
工具/软件:

#include <iostream>
#include <cstring>
#include <string>
#include <cassert>
static void VersionProtocolTrans(std::string version, int iVerAdder, int iLenVersion, uint16_t *aVerDate) {
int iIsEvenNumber = 0;
uint16_t iTransData = 0;
int iIvalueIndex = 0;
for (auto c : version) { // 这里会触发SIGABRT
if (c != '\'') {
if ((uint16_t)c != 0) {
if (!(iIsEvenNumber % 2)) {
iTransData += (uint16_t)c << 8;
} else {
iTransData += (uint16_t)c;
}
iIsEvenNumber++;
if (!((iIsEvenNumber - 2) % 2)) {
aVerDate[iIvalueIndex++] = iTransData;
iTransData = 0;
}
}
}
}
if (iTransData) {
aVerDate[iIvalueIndex++] = iTransData;
}
if (version == "--") {
for (int j = 1; j <= iLenVersion - 1; j++) {
aVerDate[j] = 0;
}
}
}
int main()
{
// 直接触发assert失败
std::string version = "1234567890ab";
// 强制触发一个断言失败
assert(false); // 这会直接调用abort()
uint16_t aSecVer[1] = {0};
VersionProtocolTrans(version, 0, 12, &aSecVer[0]);
return 0;
}/
arm-linux-gnueabihf-g++-std=c++11 -g -O0 -Wall -Werror testplus.cpp -o test_cpp
上面的演示使用由此生成的编译后的可执行文件在较旧的 AM335x (SDK ti-SDK-am335x-evm-07.00.00.00) 上运行、并显示内核的行号。而在 am5716 中、则不是在 sdk6.3 中运行
AM335x:

am5716:

您能否提供一些指导、说明如何像 AM335x 中那样在 am5716 中实现这样一个详细的栈?
