/
C# Code Sequence particulars
C# Code Sequence particulars
Calling library functions in C# is very similar to the C/C++ example below from the Basic Demo Code Sequence. The only significant difference is the necessity to use the Marshal class when passing pointers.
using System.Runtime.InteropServices; //add to top of source code to include Marshal
For example, when getting the F_Report_Message() string value, it should be retrieved as follows:
String text;
text = Marshal.PtrToStringAnsi(FLASHPROM_API.F_Report_Message());
Another commonly used example is reading and writing using byte arrays, i.e. using functions F_Read_Bytes_Block() and F_Write_Bytes_Block_to_RAM()
int response;
const Int32 size = 64;
Int32 addr;
byte []data_block = new byte[size];
IntPtr data_block_ptr = Marshal.AllocHGlobal(Marshal.SizeOf(data_block[0]) * data_block.Length);
addr = mcu.x.RAMStartAddr;//or use custom address
for(k=0; k<size; k++)
data_block[k] = (byte)(0x30 + k);
try
{
Marshal.Copy(data_block, 0, data_block_ptr, size);
unsafe
{
//----------------------------------------------------
response = FLASHPROM_API.F_Write_Bytes_Block_to_RAM(addr, size, (byte*)data_block_ptr);
//----------------------------------------------------
}
}
finally
{
Marshal.FreeHGlobal(data_block_ptr);
}
int response;
const Int32 size = 64;
byte[] data_block = new byte[size];
IntPtr data_block_ptr = Marshal.AllocHGlobal(Marshal.SizeOf(data_block[0]) * data_block.Length);
addr = mcu.x.RAMStartAddr;//or use custom address
//----------------------------------------------------
try
{
unsafe
{
response = FLASHPROM_API.F_Read_Bytes_Block(addr, size, (byte*)data_block_ptr);
}
Marshal.Copy(data_block_ptr, data_block, 0, data_block.Length);
}
finally
{
Marshal.FreeHGlobal(data_block_ptr);
}
Basic code example is compatible with C#, and can be found here: C/C++ Basic Demo Code Sequence
, multiple selections available,
Related content
C# Code Sequence particulars
C# Code Sequence particulars
More like this
Code Examples
Code Examples
More like this
Data Buffer Functions
Data Buffer Functions
More like this
Data Buffer Functions
Data Buffer Functions
More like this
2. Configuration
2. Configuration
More like this
Custom Buffer Write and Verify - GangPro-M
Custom Buffer Write and Verify - GangPro-M
More like this