Commit graph

31 commits

Author SHA1 Message Date
Álvaro Fernández Rojas
ca81e5c242
Merge pull request #15 from mgduda/use_memmove_fix
Switch from memcpy to memmove when copying within buffers
2023-01-31 19:25:12 +01:00
Michael Duda
67ce07178f Switch from memcpy to memmove when copying within buffers
In the usb_write_bytes and uart_write_bytes routines, a memcpy was previously
used to copy untransmitted bytes to the beginning of the buffer (ud->uart_buffer
and ud->usb_buffer, respectively). Since the source and destination regions of
memory may potentially overlap, the use of memcpy may lead to undefined results.

From the draft C89 standard:

    4.11.2.1 The memcpy function

    Synopsis

             #include <string.h>
             void *memcpy(void *s1, const void *s2, size_t n);

    Description

       The memcpy function copies n characters from the object pointed to
    by s2 into the object pointed to by s1 .  If copying takes place
    between objects that overlap, the behavior is undefined.

    Returns

       The memcpy function returns the value of s1 .

By using memmove rather than memcpy in the usb_write_bytes and uart_write_bytes
routines, the potential for undefined behavior can be avoided.
2023-01-29 11:49:11 -07:00
Álvaro Fernández Rojas
9d05ed4b1d uart-bridge: avoid CR/LF conversion
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-11-04 11:13:57 +01:00
Álvaro Fernández Rojas
3aa5d05fe3 Switch UART0 to GPIO 16 (TX) & GPIO 17 (RX)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-11-04 11:08:49 +01:00
Álvaro Fernández Rojas
01e7831501 uart-bridge: add UART RX interrupts
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-11-04 11:00:31 +01:00
Álvaro Fernández Rojas
3e1672f2c9 Increase buffers and improve USB descriptors
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-11-04 10:59:54 +01:00
Álvaro Fernández Rojas
8db03b41ac Code cleanup
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-11-04 10:58:51 +01:00
Álvaro Fernández Rojas
71fd38df8a github: improve CI
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-11-04 09:19:25 +01:00
Álvaro Fernández Rojas
d0925bfd33 pico-sdk: update to 1.4.0
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-11-04 09:19:25 +01:00
cxxcoder
6aa7cf2958 usb-descriptors: use flash ID as USB serial
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-11-04 09:19:03 +01:00
Álvaro Fernández Rojas
05e4815f6b uart-bridge: bump clock to 250 MHz
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-05-03 19:59:45 +02:00
Álvaro Fernández Rojas
ebbc862b65 uart-bridge: increase BUFFER_SIZE
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-05-03 19:58:12 +02:00
Álvaro Fernández Rojas
71faf3097a build.sh: improve script
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-05-03 19:40:03 +02:00
Álvaro Fernández Rojas
982b071d6c github: update CI workflow
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-05-03 17:30:19 +02:00
Álvaro Fernández Rojas
a7d61bb4c8 pico-sdk: update v1.3.0
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-05-03 14:42:23 +02:00
Álvaro Fernández Rojas
2460b10523 uart-bridge: usb_read_bytes: fix usb_buffer access
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-10-25 18:42:30 +02:00
Álvaro Fernández Rojas
7a8e3bf16c github: force Ubuntu 20.04
Apparently, ubuntu-latest still points to Ubuntu 18.04, which uses an older
and incompatible version of gcc-arm-none-eabi.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-06 12:23:07 +01:00
Álvaro Fernández Rojas
206b612bae uart-bridge: improve usb_write_bytes
tud_cdc_n_write() may not be able to write the full buffer, so we need to
handle that by moving the remaining bytes in the buffer to the buffer start.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-06 12:05:47 +01:00
Álvaro Fernández Rojas
7f8226a3a1 github: add CI
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-06 11:37:55 +01:00
Álvaro Fernández Rojas
beb34da36d build: automatically checkout pico-sdk
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-06 11:27:34 +01:00
Álvaro Fernández Rojas
3f9c9fadde uart-bridge: add LC mutex
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-06 11:27:34 +01:00
Álvaro Fernández Rojas
8d9d952dde uart-bridge: remove unused variables
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-06 11:27:34 +01:00
Álvaro Fernández Rojas
f2531be879 usb-descriptors: refactor code
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-06 11:27:34 +01:00
Álvaro Fernández Rojas
b6c906e55e tusb_config: refactor code
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-06 11:27:34 +01:00
Álvaro Fernández Rojas
a41adfcfdd Update README with multiple UARTs support
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-04 09:15:03 +01:00
Álvaro Fernández Rojas
410eef18ef uart-bridge: expose both HW UARTs
With these changes, both HW UARTs will be exposed as two independent USB-UART
bridge controllers.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-04 09:08:41 +01:00
Álvaro Fernández Rojas
911bf03c80 uart-bridge: use DEF_BIT_RATE for CDC LC
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-04 09:03:46 +01:00
Álvaro Fernández Rojas
85383842d5 uart-bridge: code refactor
Avoid lines with more than 80 characters.
Fix indentation (tabs = 8 spaces).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-03 15:45:04 +01:00
Álvaro Fernández Rojas
f46d93bb54 uart-bridge: fix incorrect uart_parity_t usage
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-03 15:33:45 +01:00
Álvaro Fernández Rojas
7bac4bd99a uart-bridge: remove unneeded semicolon
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-03 15:29:50 +01:00
Álvaro Fernández Rojas
994eab59f5 Import project files
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-03 13:21:20 +01:00