到;博士;我可以使用哪些工具或智能方法从具有 10 个二进制和三个 16 位输入变量以及多个 16 位和二进制输出变量的源代码中导出状态(转换)概览。所有输入变量都会随着源的每 33 毫秒执行而改变,源具有多个隐藏状态。
背景
我的任务是编写一个 20 多年历史的嵌入式产品的功能描述。源代码可用,但它是用一种早已被遗忘的语言编写的,类似于基本的。
源代码本身是用一种非常幼稚的方式编写的,有数百条长if
语句,根本没有函数调用。所有内部变量都是全局的。
尝试
我很快就失去了试图理解源代码的意义,它在一个永无止境的 33 毫秒循环中运行,并且在 1000 多行代码中的任何地方都使用和修改了变量。
我决定尝试模拟整个硬件,由于代码简单,结果转换为python非常简单。我现在可以预定义输入变量中的一些定时更改,然后在模拟秒数内执行代码,生成许多输出行,每 33 毫秒执行一次的最终结果。
模拟方法是有效的,但我需要花费很长时间来根据生成的输出制作定时输入。我目前至少确定了 16 个主要州,每个州都以不同的方式对待其他输入。
问题
我怎样才能更聪明地做到这一点,最好是自动化的。