Got it. In ibnotify of hal_serial_usb.c
Thanks!
Search found 9 matches
- Thu Jun 22, 2017 12:05 pm
- Forum: ChibiOS/HAL
- Topic: Understanding the OUT EP handling in Serial-over-USB driver
- Replies: 2
- Views: 2674
- Thu Jun 22, 2017 3:06 am
- Forum: ChibiOS/HAL
- Topic: Understanding the OUT EP handling in Serial-over-USB driver
- Replies: 2
- Views: 2674
Understanding the OUT EP handling in Serial-over-USB driver
Hi,
First let me say the driver works perfectly OK.
But when I digging into the code, some part I cannot understand. Here I'm based on ChibiOS 17.6.0, I think the part in 16.1.8 is identical.
When an OUT packet arrives at data EP, here is what happens:
1. The USB lld saves the packet to assigned ...
First let me say the driver works perfectly OK.
But when I digging into the code, some part I cannot understand. Here I'm based on ChibiOS 17.6.0, I think the part in 16.1.8 is identical.
When an OUT packet arrives at data EP, here is what happens:
1. The USB lld saves the packet to assigned ...
- Mon Jun 19, 2017 8:28 am
- Forum: ChibiOS/HAL
- Topic: Serial driver and gap between each character
- Replies: 3
- Views: 2724
Re: Serial driver and gap between each character
Giovanni wrote:Hi,
It is caused by the IRQ service times, if you need to operate at very high speeds then try the UART driver, it uses DMA.
Giovanni
Yes understand IRQ causes the delay. But why serving TXE takes longer time for higher baudrate? Should they take same time?
- Mon Jun 19, 2017 2:08 am
- Forum: ChibiOS/HAL
- Topic: Serial driver and gap between each character
- Replies: 3
- Views: 2724
Serial driver and gap between each character
Hi,
I'm testing Serial driver performance.
A simple program only calls
sdWrite(&SD1, buf, 64);
chThdSleepMilliseconds(500);
in the main loop.
SD1 is set to 115200 and 921600 respectively. All ChibiOS debug checks are disabled.
As can be seen from the attached screenshot.
115200 ...
I'm testing Serial driver performance.
A simple program only calls
sdWrite(&SD1, buf, 64);
chThdSleepMilliseconds(500);
in the main loop.
SD1 is set to 115200 and 921600 respectively. All ChibiOS debug checks are disabled.
As can be seen from the attached screenshot.
115200 ...
- Thu Jun 15, 2017 4:17 pm
- Forum: ChibiOS/HAL
- Topic: STM32F407 Strange SerialUsbDriver behavior
- Replies: 15
- Views: 9851
Re: STM32F407 Strange SerialUsbDriver behavior
I can confirm this behavior using Saleae Logic tapping on USB wires. I'm using a STM32F303.
When I'm sending 64 bytes, I see one 64 bytes packet and one 1 byte packet.
When I'm sending 64 bytes via CDC, only one OUT packet is captured with length 64 bytes, no zero length packet follows.
I see no ...
When I'm sending 64 bytes, I see one 64 bytes packet and one 1 byte packet.
When I'm sending 64 bytes via CDC, only one OUT packet is captured with length 64 bytes, no zero length packet follows.
I see no ...
- Fri Jun 02, 2017 8:25 am
- Forum: ChibiOS/HAL
- Topic: ChibiOS Serial-over-USB + Serial
- Replies: 1
- Views: 2215
ChibiOS Serial-over-USB + Serial
I've successfully implemented a USB-UART bridge using Serial-over-USB (SDU1) and Serial (SD1).
Now I want to implement CDC_SET_LINE_CODING. I understand that I can write my own sduRequestsHook to do this. But sduRequestsHook is called from ISR and I cannot call thread level function sdStop(&SD1 ...
Now I want to implement CDC_SET_LINE_CODING. I understand that I can write my own sduRequestsHook to do this. But sduRequestsHook is called from ISR and I cannot call thread level function sdStop(&SD1 ...
- Wed Jan 27, 2016 5:10 pm
- Forum: STM32 Support
- Topic: Semihosting with newlib freeze
- Replies: 9
- Views: 9690
Re: Semihosting with newlib freeze
I dig in a little further and it seems freeze at
std.isra()
call stack was
std.isra()
__sinit()
_puts_r()
puts()
main()
I have no clue what is missing here.
std.isra()
call stack was
std.isra()
__sinit()
_puts_r()
puts()
main()
I have no clue what is missing here.
- Tue Jan 26, 2016 4:17 pm
- Forum: STM32 Support
- Topic: Semihosting with newlib freeze
- Replies: 9
- Views: 9690
Re: Semihosting with newlib freeze
No, I checked, not existing in map file.
While from a SDK build, I can see
c:/apps/armgcc/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv6-m\libc_nano.a(lib_a-init.o)
c:/apps/armgcc/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv6-m/rdimon-crt0.o (__libc ...
While from a SDK build, I can see
c:/apps/armgcc/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv6-m\libc_nano.a(lib_a-init.o)
c:/apps/armgcc/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv6-m/rdimon-crt0.o (__libc ...
- Tue Jan 26, 2016 3:21 pm
- Forum: STM32 Support
- Topic: Semihosting with newlib freeze
- Replies: 9
- Views: 9690
Semihosting with newlib freeze
I've been trying semihosting, by changing LD variable in the Makefile to:
LD = $(TRGT)gcc -specs=rdimon.specs
The balance I need to do is just to add
initialise_monitor_handles()
in main() to get printf() working.
However, if I try use newlib at the same time, where
LD = $(TRGT)gcc -specs=nano ...
LD = $(TRGT)gcc -specs=rdimon.specs
The balance I need to do is just to add
initialise_monitor_handles()
in main() to get printf() working.
However, if I try use newlib at the same time, where
LD = $(TRGT)gcc -specs=nano ...