工作空间

任务树

1 个根任务
25%模块进度表
67%一、论文:
完成第一版提交
整改图标图题等低级错误
分析设计最简实现,夯实实验部分
43%二、调试器:
100%1.C66x调试器开发:
排查 C66x 多核调试时断点互相影响的问题,搭建环境复现了一个核停在 main 后另一个核无法正常停止的现象。
梳理多核运行和停止流程,调整为各个核心独立控制,避免一个核心的调试操作影响其他核心。
调试lmc报告的c66x工程上电问题,分析是check_stat和sim_init的消息时序问题,通过更新myserver解决
0%2.sparc调试器测试开发:
修 dyncom 断点刷新和停机路径
定位并修 `last_bp_step` 吞掉第二个临时断点
修 `tag_range_map` 断言
core1 多核问题排查
16%三、标准设备开发:
100%1.TIMER标准器件改动
修正Timer设备CLKSRC实现和用例配置相反的BUG,调通中断触发流程TIMER中断成功触发。
17%2. edma设备开发
配置EDMA测试脚本和熟悉标准用例,基于以前的设备代码配置json文件和初步测试。
分析EDMA_clearPram执行失败问题,补充C6713 EDMA参数RAM读写,实现`0x800`字节PaRAM空间访问。补充PQSR等全局寄存器的基础读写逻辑。
修正仿真配置中RAM与EDMA PaRAM地址重叠的问题,标准例程能够完成EDMA参数RAM初始化。
分析标准例程在缓存初始化阶段循环等待的问题,定位到C6713缓存控制寄存器未实现。
开发C6713 CacheCtl兼容设备,实现缓存模式寄存器和`MAR128`等MAR寄存器的读写回存。
对照TI CSL补充缓存块操作word-count寄存器的即时完成语义,解决缓存写回、失效操作无法结束的问题。
开发Timer1到EDMA的事件连接接口,在仿真配置中建立Timer设备与EDMA设备的连接关系。
核对TI CSL中`EDMA_CHA_TINT1`定义,修正Timer1事件通道号错误,确认Timer1对应EDMA通道2。
开发EDMA PaRAM解析和逐元素搬运功能,支持元素大小、源/目的地址更新、传输计数递减及参数表链接。
开发EDMA传输完成处理,设置TCC对应的`CIPR`状态并触发CPU INT8,调通EDMA中断服务流程。
调通Ping/Pong参数表链接和循环传输流程,官方`edma1`例程能够执行完成并自动退出,仿真进程返回码为0。
核对标准例程无`Ping/Pong/Done`输出的问题,确认TI RTS CIO已配置但当前终端未捕获输出文本,后续需继续开发CIO输出解析及终端回显功能。
38%3. MCBSP设备开发
新增 C6713 McBSP 设备模型,实现 DRR、DXR、SPCR 等寄存器的基础功能。
实现同步数字回环:写入发送端后将数据送入接收端,并更新收发就绪状态。
配置 `sim_case.json`、`exelist.ini` 和 `model_lib_map.json`,接入官方 `mcbsp1.out` 用例。
实现 `RRST`、`XRST`、`RRDY`、`XRDY` 和数字回环模式(DLB)状态控制。
核对 McBSP 与 EDMA 的片上数据通路关系,确认 `0x34000000` 数据端口应作为独立数据端口模型接入,便于后续 EDMA 按地址访问。
分析 TI CSL 句柄和 COFF 初始化数据,确认 `0x34000000` 是 McBSP1 的共享数据端口,而非异常地址。
完成官方 `0x00080000` 次同步数字回环验证,CIO 输出 `TEST PASSED`,仿真正常退出。
新增 McBSP 数据端口模型:`0x34000000` 写操作按 DXR 处理,读操作按 DRR 处理,并与 McBSP 控制模型共享收发状态。
0%4. MCASP设备开发
配置 McASP 标准用例测试环境,补充运行脚本、被测程序路径和基础 JSON 映射,确认程序能够加载到 McASP 相关设备库。
分析 McASP 用例无输出、不退出问题,定位到标准例程实际访问 McASP0 地址,补充 McASP0 映射并调整地址表顺序,解决外设地址无法访问的问题。
根据 McASP 用例链接结果更新外部内存和 TI 运行库输出/退出地址,补充程序运行所需内存区,使程序能继续执行到外设初始化后续流程。
分析 McASP 初始化过程中 EDMA 相关访问异常,补充系统控制寄存器映射和 EDMA 事件选择寄存器基础读写,解决初始化阶段寄存器访问报错。
排查 McASP 回环流程卡住问题,初步补充 McASP 全局控制寄存器同步逻辑,并定位到后续还需完善 McASP 触发 EDMA 数据搬移的事件链路。
分析和配置程序地址:RTS 地址(输出和退出地址)
排查EDMA 未完成中断,复位位未置位的原因
编写缺失功能:XBUF 数据回环到 RBUF,向 EDMA 触发 AXEVT/AREVT。(官方用例依赖 EDMA 通道 14/15 完成并置位 `xmtDone/rcvDone`),补齐McASP 主动发 EDMA 事件的接口。
一是 McASP 能连接 EDMA;二是收发状态机启动后主动产生 AXEVT1/AREVT1 事件;三是内部数字回环时,XBUF 写入的数据能按用例需要从 RBUF 读回。
0%5. CIO设备开发
开发不改动标准例程打印输出的功能,识别TI RTS 的底层输出函数,解析_CIOBUF_中的数据,识别命令、fd、长度和 payload。
开发支持`_DTWRITE`写命令,从IO buffer中读取数据输出到终端。
核对终端输出第一行闪现的问题,定位到 CIO 文本换行字符处理异常,已修正 stdout/stderr 输出中的换行转换,现在能正常输出。
继续核查终端输出错位问题,CIO 输出层处理换行不完整,补充对换行字符的转换逻辑。
分析 TI RTS 输出缓冲区长度和实际换行字符不一致的问题,兼容处理 payload 后紧邻换行字符的情况,修复 McBSP 地址打印不左对齐的问题。
0%6. TI RTS退出函数识别
分析程序执行完不自动退出的问题,通过识别TI RTS 的退出函数实现仿真程序的退出操作。
通过增加终端输出缓存并在缓存发送完成后保留显示宽限时间,修复了仿真程序退出过快导致 Putty 偶发无法显示测试结果的问题。
27%四、覆盖率工具开发
35%1.F283X架构MCDC开发
调试f283x插桩流程,实现预处理、插桩、编译、运行流程;
调试覆盖率静态插桩动态执行流程:去除csv报告等冗余步骤,编写插桩执行数据解析、预处理行号映射代码;
开发MCDC插装执行数据解析,调试MCDC覆盖数据解析链路。
更换工程测试MCDC插桩,修复地址差异导致的无法获取到插桩数据的问题。
计算和展示插桩得到的MCDC数据,修复调用流程错误导致的第一次打开报告数据为0的问题。
编写MCDC报告初步显示相关源码行;
分析插桩解析流程中写死的数据有哪些(MCDC采集数组地址、采集数组长度),用配置文件改写为动态获取。
检查源码行显示情况,修复MCDC插桩结果文件的解析错误,条件名和行号映射能正常显示了。
梳理和明确结果文件和中间文件位置,合并功能重叠文件调整相关目录。适配新目录下的文件生成和查找逻辑。
更新MCDC详情页补充源码行号到预处理行号的映射逻辑,使明细页可直接读取条件名及 row/pair 信息;
今日完成 MCDC debug node 解析增强,补充函数名解析和匹配,添加兜底逻辑,修复了一些映射失败问题;
处理MCDC特例收口,识别并跳过缺少可绑定调试节点的block;
完成覆盖率报告提前弹出问题定位与修复,确认根因是 OnSim 内部与脚本末尾重复触发报告生成,并统一为脚本末尾生成及打开最终报告;
编写MCDC 详情报告审查字段和豁免批注,使其满足DO178C要求。
修改 MCDC 详情报告从文本存储改为浏览器本地缓存,确认审查字段和豁免批注部分接入本地存储。
清理了审查字段里的旧文件保存方式残留,改成只使用浏览器本地保存。
编写审查记录导出功能,导出的 JSON 同时包含审查字段和豁免批注内容,满足后续归档需要。
修正报告错误的行号 XOR 算法,使用已有正确的显式 Pair 结果;
修复旧bin/旧报告被继续使用,并且构建脚本还会写脏覆盖槽
处理EDMA中断入口未被读取的问题。
0%2.覆盖回环迭代
分析论文方法和现有流程,确定先实现条件组合覆盖的最小闭环。
重做条件覆盖详情页模板,统一有数据和无数据页面,并将审查、豁免和批注改为浏览器本地保存。
针对覆盖率显示为 0 的问题,改用插桩文件中的真实条件组合记录进行计算,并补充运行文件、数组长度和旧报告检查。
修复部分覆盖被误报为完整覆盖、普通分支被误算为条件覆盖、空数据导致异常等问题,相关测试和程序编译通过。
使用实际工程进行严格检查,发现仍有部分源码行对应关系不准确,已修复“错误选择附近代码行”的问题,并让未确认的数据停止生成报告,避免输出虚假的覆盖率。
梳理了现有 MCDC 流程,从代码处理、编译、仿真到报告逐步复现覆盖率为 0 的问题,确定主要问题在运行结果读取和源码位置对应环节。
检查了工具端和仿真端的数据传递,修正结果文件路径、数组长度和旧文件判断,减少误读旧数据的情况。
修正条件覆盖计算,改为根据实际记录的真假组合判断每个条件,并补充了 `&&`、`||` 和混合表达式测试,避免把部分覆盖误报为完整覆盖。
改进仿真程序的覆盖数据输出,统一结果文件格式,增加稳定读取和输出记录,使工具端能够按统一格式读取仿真结果。
重做 MCDC 详情页,统一有数据和无数据页面结构;审查记录和豁免记录改为浏览器本地保存,并保留导入、清空和合并导出功能。
完善 F28335 流程,增加旧文件清理、运行标记、结果文件更新时间和长度检查,发现流程异常时立即停止,避免生成可疑报告。
增加覆盖计算、详情页保存和结果可信性检查,完成主机工具编译验证。严格检查发现当前工程仍有部分目标无法唯一对应,流程现在会主动报错并保留原因,不再输出不可信的覆盖率。
44%3.覆盖分析工具优化和修复
排查覆盖率报告midfile生成偶现耗时过长的问题,C端多次测试未复现,界面测试复现后发现问题可能来自消息队列延迟
分析 PowerPC `a.out` 文件格式和调试信息,确认文件为 ELF32 大端格式,包含 DWARF 调试信息。
修正 PowerPC 交叉编译脚本,固定使用 `MinGW-powerpc-eabi-13.1.0` 工具链,成功生成 `test.elf`。将编译脚本改为 PowerShell 版本,验证 `pwsh` 可直接执行并生成 5176 字节的 PowerPC ELF 文件。
检查内核和覆盖率工具调用链,定位 `midfile_core0` 为空问题修复codecov注册逻辑,导出了有效执行数据。为 PPC 增加目标分支识别逻辑,修复目标码分支数目为0的问题,目标分支总数从 0 恢复到 126 个。
重写 `test.c` 覆盖率测试程序,新增 13 个编号测试函数,覆盖顺序、`if`、`while`、`do-while`、`for`、`switch`、MC/DC 和代码书写风格。按正常代码风格整理测试程序,补充中文注释、空行和多种括号写法,完成 PowerPC 交叉编译并生成 `test0.out`。
检查目标分支覆盖率为 0 的原因,确认仿真轨迹已导出但分支方向信息缺失,增加 PPC 分支执行方向记录。
提交覆盖率和 PPC 仿真相关代码,创建 3.0.2 基线版本标签,标记为“新样式报告生成基准版本并支持 PPC 覆盖分析”。
排查仿真启动崩溃,定位 `e300_core` 未注册 `get_architecture` 接口导致空函数指针调用,补充接口后仿真可进入运行阶段。
排查 ELF 加载崩溃,定位 `memory_space` 连接使用索引 0 而内核仅支持索引 1,增加索引兼容后 ELF 加载成功。