meiSqNodeDownload
Declaration
WARNING!
The meiSqNodeDownload(...) function should always be used in conjunction with the meiSqNodeFpgaFileNameVerify(...) function. See Note below.
Description
meiSqNodeDownload SqNodeDownload reads a binary image from a file and writes it into a SynqNet node's non-volatile storage. SynqNet nodes may support one or more drive interfaces. SqNodeDownload can also write binary images to a drives' non-volatile storage if the drive interface hardware supports a communication channel to the drive processor. The drive interface(s) for a SynqNet node are indexed by a number (0, 1, 2, etc.).
The SynqNet node binary files are node specific. Please see the Node Binary Files: Product Table.
The SynqNet drive binary files are drive specific. The SqNodeLib includes the drive specific code necessary to support various hardware download protocols. Please see the drive manufacturer's documentation for details. Use meiSqNodeInfo(...), to determine if the SynqNet node supports a drive interface and its type.
The binary download process requires a significant amount of time, probably between 5 to 30 seconds, depending on the node/drive type and file size. A callback function pointer is provided in the MEISqNodeDownloadParams structure for the calling application to monitor the download progress.
WARNING!
The meiSqNodeDownload(...) function should always be used in conjunction with the meiSqNodeFpgaFileNameVerify(...) function. If meiSqNodeFpgaFileNameVerify(...) is not called before meiSqNodeDownload(...), it is possible to download an incorrect FPGA to the SynqNet node. Loading an incorrect FPGA onto a node would prevent the controller from communicating with the node over SynqNet.
Reloading the Runtime FPGA Image:
If you have accidentally loaded an incorrect FPGA onto a Slice I/O, RMB-10V2, or SQIO node, please see Reloading the Runtime FPGA Image. However, if you have loaded an incorrect FPGA image onto a SynqNet drive, please contact the drive manufacturer for troubleshooting details.
|
node |
a handle to a SynqNet node object |
*params |
a pointer to the download parameters structure. |
|
|
|
|
|
Sample Code
|
long printFpgaDownloadStatus(long percentage) { printf("Percentage %ld percent complete\r", percentage); return 0; }
void fpgaDownload(MEISqNode sqNode) { MEISqNodeFileName fileName; MEISqNodeDownloadParams params; long returnValue;
returnValue = meiSqNodeFpgaDefaultFileName(sqNode, &fileName); msgCHECK(returnValue);
params.filename = fileName.fileName; params.callback = printFpgaDownloadStatus; params.channel = MEISqNodeChannelNODE;
printf("%s\n", fileName.fileName); returnValue = meiSqNodeFpgaFileNameVerify(sqNode, &fileName.fileName);
msgCHECK(returnValue);
printf("Download Fpga begin\n"); returnValue = meiSqNodeDownload(sqNode, ¶ms); msgCHECK(returnValue);
printf("\n"); }
|
See Also
meiSqNodeInfo | meiSynqNetInfo | meiSqNodeFpgaFileNameVerify
MEISqNodeDownloadParams | MEISqNodeChannel | MEISqNodeCallback
|