# 一、编译 项目中有两个编译脚本; 编译tool 下的文件(包含用于下载的, uart_downloader.exe)。生成的文件在 bin 目录下: ```bash cd tools .\compile_all.bat ``` 编译testcase 下的文件,生成的文件在bin 目录下: ```bash cd tools\testcases .\compile.bat ``` # 二、运行testcase 请在testcase 目录下运行程序, > testcases 目录下生成的程序, 默认从 运行目录中读取 config.json配置文件。  > > 默认的config.json 在testcase 目录, 所以建议在testcase目录下运行程序。 示例: 使用默认配置 ```bash ..\\bin\\hr4256_m1_tdi_forward_situation1.exe ``` 示例:使用自定义配置 ```bash ..\\bin\\hr4256_m1_tdi_forward_situation1.exe config_file.json ``` # 三、下载程序 示例: ```bash ..\\bin\\uart_download.exe COMX resistor_addr 0xf0000000 program-o3lto.mem ``` 下载程序不支持从配置文件读取配置的方式。 # 四、调试程序 > 请确保 g++ gdb 程序的路径已加入环境变量**可执行路径**中,在终端可以直接调用 > > 请确保 vscode 已经安装扩展C/C++*(C/C++ IntelliSense, debugging, and code browsing)* 本工程的.vscode目录下提供已经配置好的调试配置文件,在此基础上只要按照下面的步骤即可调试程序。 1. vscode C/C++扩展 设置编译器路径Ctrl shift + P 快捷键:CTRL + SHIFT + P 在弹出的对话框中输入 ``` C/C++:Edit Configurations (UI) ``` 选择对应的匹配项。 在编译器路径下拉框选择自己电脑上对应的路径。 2. 然后打开要调试的文件,设置断点,F5即可调试 3. 程序的参数输入在 .vscode\launch.json 文件中设置(如下图所示) ![调试配置.png](http://img.fengbohan.com/2023/02/14/63eb4b6322827.png) # 五、Case 转换 > 脚本基于 Makefile 和 sed编写 > 用于将仿真用的Verilog case 转换成 对应的 cpp 文件。 > 脚本主要是辅助完成一些机械化的替换工作,执行脚本后仍需手动再进行替换。 在 tool\\testcases 目录下有个Makefile 脚本用于半自动化转换过程 case转换的步骤如下所示。 1. 复制 case 的sv 文件 为cpp 文件。 ```powershell cp .\software_tasks\software_tasks_test10\software_tasks_test10.sv .\software_tasks_test10.cpp ``` 2. 执行命令 ```powershell mingw32-make.exe all clean file=software_tasks_test10.cpp ``` 3. 然后请参考其他case 的例子**手动**完成剩下的转换 4. 使用Makefile 编译 > 除前面提到的编译脚本外,也可使用Makefile 编译 > ```powershell mingw32-make.exe software_tasks_test num=10 ``` # 六、配置文件-config.json 配置文件采用json格式,json数据解析使用[nlohmann-json](https://github.com/nlohmann/json)开源库实现。 示例程序中默认包含以下几个配置: 1. UART0_COM :UART0的COM号, 示例程序中均使用UART0作为程序下载、命令发送、命令接受的串口。 2. UART1_COM :UART1的COM号,目前示例程序未使用该参数。 3. resistor_addr:命令帧的电阻地址,该值需要和板子上的电阻地址相同,否则命令帧不会被正确接收。 4. chip_param:芯片参数设置帧使用的芯片参数。 > 用户也可根据需求,增加自定义参数。