嗨对话框
你们有显示如何使用u的示例代码吗_dll.dll用于固件下载和内存编程的API(DA1458x\ U DA1468x\ U PLT\ U v\ U 4.2.0.160)
我们正试图利用你_dll.dll下载固件和擦除SPI闪存的API,
udll\ U set\ U prog\ params、udll\ U set\ U device\ U params和udll\ U start\ U prog都成功返回,但不起作用。
*********
我们已经运行udll_init()并添加回调函数。但还是不行。
敬礼,
王路易
设备:
嗨,王路易2,
建议在对u进行任何其他操作之前调用udll_init()函数_dll.dll库,因为它设置为零一些内部结构udll\u start\u prog()返回udll\u SUCCESS消息并不意味着编程过程已经完成。为了找到进程所在的位置,应该检查在udll\u start\u prog()中调用的回调函数。然后,美国_dll.dll将执行回调以通知您代码的位置。
谢谢,下午好
嗨对话框
谢谢你的回复。
你能帮我检查一下我的示例代码吗?我已经加回电话了,但没用。
// 测试.cpp:定义控制台应用程序的入口点。
//
#包括“stdafx.h”
#包括“u\u dll.h”
#包括
#包括“string.h”
使用名称空间标准;
void My\ u CallBack(uint32\ t com\ u port\ u number,int status,void*data,uint32\ t data\ u len);
int main(int argc,char*argv[])结果=udll_init();
{
int结果=1;
_udll\u参数udll\u参数;
_udll\ U设备\参数设备\参数;
//********************************************************
cout<<“测试000开始:”<
不能<<结果<<结束;
//********************************************************
结果=1;
udll\ U params\ U t.dut\ U ic=U\ U dut\ U ic\ U DA14585;
udll_params_t.params_580.dut_ic=U_dut_ic_DA14585;
udll_params_t.params_580.baud_rate=57600;
udllïu paramsït.paramsï580。记忆动作=FW\U荷载;
udllïu paramsït.paramsï580。内存固件加载.action=FW\U负载;
udllïu paramsït.paramsï580。内存固件加载.en=假;
字符串FW_Path(“E:\\DA1458x_DA1468x_PLT_v_4.2.0.160\\executables\\binaries\\flash_programmer_580.bin”);
strcpy_s(udll_params_t.params_580。内存固件加载.fw_路径,fw_路径.c_str());
udllïu paramsït.paramsï580。内存固件加载.uart\u change\u pins=false;
udllïu paramsït.paramsï580。内存固件加载.uart\u boot\u pins=P04\u P05;
udllïu paramsït.paramsï580。内存固件加载通用异步收发器_引脚.uart\u端口\u tx= 0;
udllïu paramsït.paramsï580。内存固件加载通用异步收发器_引脚.uart\u pin\u tx= 4;
udllïu paramsït.paramsï580。内存固件加载通用异步收发器_引脚.uart\u端口\u rx= 0;
udllïu paramsït.paramsï580。内存固件加载通用异步收发器_引脚.uart\u引脚\u rx= 5;
结果=udll\u set\u prog\u params(&udll\u params\t);
不能<<结果<<结束;
//********************************************************
结果=1;
设备\u参数\u t.is \u active=真;
device_params_t.dut_num=U_dut_1;
device\u params\u t.com\u port\u boot=5;
设备参数\u t.com\u端口\u prog=5;
device\u params\u t.bd\u addr[bd\u addr\u SIZE]=uint8\u t(0);
设备参数OTP客户_字段数据[OTP\U 585\U CUSTOMER\U FIELD\U SIZE]=uint8\U t(0);
设备参数OTP客户_字段大小= 100;
设备参数xtal\U trim\U val[xtal\U trim\U SIZE]=uint8\u t(0);
设备参数adc校准值=0;
设备参数内存数据[最大内存数据大小]=uint8(0);
device\u params\u t.user\u callback\u udll=我的\u callback;
结果=udll\u set\u device\u params(&device\u params\t);
不能<<结果<<结束;
结果=udll_start_prog();
不能<<结果<<结束;
//********************************************************
结果=udll_close();
不能<<结果<<结束;
返回0;
}
void My\ u CallBack(uint32\ t com\ u port\ u number,int status,void*data,uint32\ t data\ u len)}
{
cout<<“测试”<
嗨,王路易2,
所附的代码只是一个示例,用于检查如何刻录/擦除SPI闪存和下载固件,但没有经过测试。您可以看到PLT-DLL如何使用UDLL来获取更多详细信息。更改测试时,应始终使用udll\u set\u prog\u params函数,但如果没有特定于设备的更改,则可以跳过udll\u set\u device\u params。
如果您使用多个设备,则必须对每个设备执行上述步骤。UDLL最多可以同时处理16个设备,但是您必须为每个设备设置不同的回调和不同的检查。附加的代码仅适用于每次运行的单个设备。如果SPI闪存的GPIO引脚与默认值不同,则必须在每个SPI测试中设置配置,即使在上一个测试中设置了配置。建议对每个状态回调更改使用计时器。一些有用的要点,以了解它是如何工作的。
谢谢,下午好
嗨对话框
非常感谢。
按照你的详细指导,我的代码可以工作(擦除,烧录文件到spi闪存)了。
但是,有些特殊的DUT,在将FW烧到DUT之前,有时需要一个复位信号,如果使用smartsnippet工具箱,会提示“按硬件复位按钮”。
通过使用u泷ullapi,如何知道DUT是否需要一个复位信号?
嗨,王路易2,
我们有一个PLT板,控制所有程序的所有设备,并在需要时重置连接的设备。尽管如此,如果您没有PLT硬件,您可以在程序启动时按下reset按钮,并将其保持到UDLL\u FW\u DOWNLOAD\u START回调函数命中为止。我建议您在前面附加的代码中添加以下消息,以便知道何时应按下并释放重置按钮。
第25行:cout<<“按住重置按钮”<
第111-112行:cout<<“松开复位按钮..”<
谢谢,下午好
嗨对话框
谢谢,我会把它加到我的密码里。