#include "appl_defs.h"
#include "appl_fpga.h"
+#include "pxmcc_types.h"
int cmd_do_test_memusage(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
{
uint32_t irc;
uint32_t ptirc;
uint32_t ptreci;
+ uint32_t pwmtx_info;
uint64_t ull;
pxmc_state_t *mcs = pxmc_main_list.pxml_arr[0];
+ volatile pxmcc_data_t *mcc_data = (pxmcc_data_t *)fpga_tumbl_dmem;
+ volatile pxmcc_axis_data_t *mcc_axis = mcc_data->axis + 0;
- fpga_tumbl_dmem[0] = 0;
+ mcc_axis->ccflg = 0;
si_skspace(&ps);
if (si_long(&ps, &pwm_d, 0) < 0)
ull = (1ULL << 32) * mcs->pxms_ptper;
ptreci = (ull + ptirc / 2) / ptirc;
- fpga_tumbl_dmem[0] = 0;
- fpga_tumbl_dmem[1] = (pwm_d << 16) | (pwm_q & 0xffff);
+ pwmtx_info = (9 << 0) | (10 << 8) | (11 << 16);
- fpga_tumbl_dmem[4] = ptirc;
- fpga_tumbl_dmem[5] = ptreci;
- fpga_tumbl_dmem[6] = ptofs;
+ mcc_axis->inp_info = mcs->pxms_inp_info;
+ mcc_axis->out_info = mcs->pxms_out_info;
+ mcc_axis->pwmtx_info = pwmtx_info;
+
+ mcc_axis->ptirc = ptirc;
+ mcc_axis->ptreci = ptreci;
+ mcc_axis->ptofs = ptofs;
+
+ mcc_axis->ccflg = 0;
+ mcc_axis->pwm_dq = (pwm_d << 16) | (pwm_q & 0xffff);
pxmc_clear_flags(mcs,PXMS_ENO_m|PXMS_ENG_m|PXMS_ENR_m|PXMS_BSY_m);
- fpga_tumbl_dmem[0] = 1;
+ mcc_axis->ccflg = 1;
+
+ if (0) {
+ mcc_data->axis[1].pwmtx_info = (12 << 0) | (13 << 8) | (14 << 16);
+ mcc_data->axis[1].ccflg = 1;
+ mcc_data->axis[2].pwmtx_info = (12 << 0) | (13 << 8) | (14 << 16);
+ mcc_data->axis[2].ccflg = 1;
+ mcc_data->axis[3].pwmtx_info = (12 << 0) | (13 << 8) | (14 << 16);
+ mcc_data->axis[3].ccflg = 1;
+ }
- printf("spd %ld\n",mcs->pxms_as);
+ printf("spd %ld act_idle %"PRIu32" min_idle %"PRIu32" avail %lu pwm_cycle %"PRIu32"\n",
+ mcs->pxms_as, mcc_data->common.act_idle, mcc_data->common.min_idle,
+ (mcc_data->common.pwm_cycle + 6) / 6, mcc_data->common.pwm_cycle);
+ mcc_data->common.min_idle = 0x7fff;
return 0;
}