- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I'm trying to implement control of NIOS II program from nios ii console. Here is snippet of code:void sw_get_command(cmd_type *cmd) {
alt_u8 btn;
btn = (alt_u8) btn_read(BTN_BASE) & 0xf; // read 4 pushbuttons
if (btn != 0) { // a button pressed
if (btn & 0x01) // button 0 pressed
cmd->pause = cmd->pause ^ 1; // toggle pause bit
if (btn & 0x02) // button 1 pressed
cmd->prd = pio_read(SWITCH_BASE) & 0x03ff; // load new interval
if (btn & 0x04)
{
alt_u8 rvalid = 0;
alt_u32 data_reg = 0;
do{
data_reg = IORD(JTAG_UART_BASE, JUART_DATA_REG_OFT);
rvalid = data_reg >> 15 & 0x01;
} while (rvalid == 0);
printf("data = %c\n", (char)data_reg & 0xff);
printf("ravail = %d\n", (data_reg >> 16) & 0xffff);
}
btn_clear(BTN_BASE);
}
}
The sw_get_command is called from while(1) loop. If button 2 is pressed (condition btn & 0x04), user is invited to type some value in NIOS II Console. The value can have multiple symbols. I'm faced to problem how to read all symbols. Actually when I read a symbol (in the command data_reg = iord(jtag_uart_base, juart_data_reg_oft)), it seems that read fifo is erased. Otherwise how to explain that after leaving the do-while loop, the value of ravail (number of characters remaining in the read fifo) is 0 (1st image - screenshot of NIOS II console). Another question: after some "exercises" with button 2, the communication crashes and Eclipse becomes unavailable (2nd screenshot - fragment of Windows Task Manager screenshot). Thanks in advance. https://alteraforum.com/forum/attachment.php?attachmentid=13559&stc=1
Link Copied
0 Replies

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page