succesfully loading firmware to BF and executing command L502_BF_CMD_CODE_GET_PARAM (aka f_cmd_get_param), with parameter and receiving data. This BF function was modified to reply hardcoded 44527 at param 87. Other params are working too
This commit is contained in:
BIN
BF_companion
BIN
BF_companion
Binary file not shown.
85
main.c
85
main.c
@ -84,6 +84,9 @@
|
||||
#define READ_TIMEOUT 2000
|
||||
|
||||
|
||||
#define BF_CMD_USER_MULT 0x8001U
|
||||
|
||||
|
||||
// номера используемых физических каналов //
|
||||
static uint32_t f_channels[ADC_LCH_CNT] = {0};
|
||||
// режимы измерения для каналов //
|
||||
@ -297,13 +300,20 @@ int32_t f_setup_params(t_x502_hnd hnd) {
|
||||
// }
|
||||
|
||||
|
||||
X502_SetSyncMode(hnd, X502_SYNC_DI_SYN1_FALL);
|
||||
|
||||
//set ADC sample frequency from internal generator with frequency 2 MHz
|
||||
//X502_SetRefFreq(hnd, X502_REF_FREQ_2000KHZ);
|
||||
|
||||
//=======================================================//
|
||||
//for real work with Radar
|
||||
//X502_SetSyncMode(hnd, X502_SYNC_DI_SYN1_FALL);
|
||||
//X502_SetSyncStartMode(hnd, X502_SYNC_DI_SYN2_RISE); //start ADC samping by external trigger
|
||||
|
||||
X502_SetSyncStartMode(hnd, X502_SYNC_DI_SYN2_RISE); //start ADC samping by external trigger
|
||||
|
||||
//=======================================================//
|
||||
//for debug purposes:
|
||||
X502_SetSyncMode(hnd, X502_SYNC_INTERNAL);
|
||||
X502_SetSyncStartMode(hnd, X502_SYNC_INTERNAL); //start ADC samping after executing X502_StreamsStart()
|
||||
|
||||
|
||||
|
||||
@ -383,6 +393,74 @@ int main(int argc, char** argv) {
|
||||
fprintf(stderr, "Ошибка настройки модуля: %s!", X502_GetErrorString(err));
|
||||
}
|
||||
|
||||
char* BF_firmware_filename = "l502-BFfirmware0.ldr";
|
||||
|
||||
printf("loading Blackfin firmware file: %s\n", BF_firmware_filename);
|
||||
|
||||
uint32_t bf_firmware_load_state = X502_BfLoadFirmware(hnd, BF_firmware_filename); //load firmware from l502-BFfirmware0.ldr file to BlackFin
|
||||
printf("load state: %u \n", bf_firmware_load_state);
|
||||
|
||||
|
||||
uint32_t BF_cmd_receive_code = 0;
|
||||
|
||||
uint16_t cmd_code = 3;
|
||||
uint32_t par = 87;
|
||||
const uint32_t snd_data[] = {1,1,2,2,3,4,5,56,67,23,1};
|
||||
uint32_t snd_size = 11;
|
||||
uint32_t rcv_data[13] = {0,};
|
||||
uint32_t rcv_size = 13;
|
||||
uint32_t tout = 1;
|
||||
uint32_t recvd_size = 0;
|
||||
|
||||
|
||||
/*
|
||||
uint16_t cmd_code = BF_CMD_USER_MULT;
|
||||
uint32_t par = 10;
|
||||
const uint32_t snd_data[] = {1,1,2,2,3,4,5,56,67,23,1};
|
||||
uint32_t snd_size = 11;
|
||||
uint32_t rcv_data[13] = {0,};
|
||||
uint32_t rcv_size = 13;
|
||||
uint32_t tout = 1;
|
||||
uint32_t recvd_size = 0;
|
||||
*/
|
||||
|
||||
|
||||
printf("TX cmd_code: %u\n", cmd_code);
|
||||
printf("TX tout: %u\n", tout);
|
||||
printf("TX par: %u\n", par);
|
||||
printf("TX snd_data size: %u\n", snd_size);
|
||||
for (int i = 0; i < snd_size; ++i){
|
||||
printf(" %u,", snd_data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
printf("TX rcv_size: %u\n", rcv_size);
|
||||
|
||||
|
||||
BF_cmd_receive_code = X502_BfExecCmd (hnd,
|
||||
cmd_code,
|
||||
par,
|
||||
snd_data,
|
||||
snd_size,
|
||||
rcv_data,
|
||||
rcv_size,
|
||||
tout,
|
||||
&recvd_size);
|
||||
|
||||
|
||||
printf("\n======================\n\n");
|
||||
printf("RX received code: %u\n", BF_cmd_receive_code);
|
||||
printf("RX recvd_size: %u\n", recvd_size);
|
||||
printf("RX received_data:\n" );
|
||||
for (int i = 0; i < recvd_size; ++i){
|
||||
printf(" %u,", rcv_data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
|
||||
X502_Close(hnd);
|
||||
// освобождаем описатель
|
||||
X502_Free(hnd);
|
||||
return 0;
|
||||
|
||||
|
||||
|
||||
@ -395,12 +473,13 @@ int main(int argc, char** argv) {
|
||||
// }
|
||||
|
||||
|
||||
f_out = 2;
|
||||
f_out = 1;
|
||||
struct timespec time_started;
|
||||
struct timespec time_ended;
|
||||
timespec_get(&time_started, TIME_UTC);
|
||||
float total_runs = 0.0;
|
||||
long double delta_time = 0.0;
|
||||
|
||||
while(f_out != 1){
|
||||
total_runs += 1.0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user