Merge branch 'develop'
firmware should send the last sample index, not where the next sample index write should take place.
makefile handles the environment setup
The code here is not beautiful. It probably isn't even correct. The only purpose of this project is to understand the ST tooling and the hardware itself. Things like CMSIS, OpenAMP, CubeMX, ST drivers...
Firmware running on the M4 gathers samples on the ANA0 pin, sampled at 96kHz into a shared memory buffer that is created by the Linux side and shared with the M4.
When the sample buffer becomes > 50% full, the firmware will send a
pointer to the last sample gathered. Linux userland programs poll a
specific ioctl(2)
for pointer updates and process the samples from
the last pointer update to the current.
From a Linux userland perspective, a program only needs to open
/dev/tuna-shm
, mmap(2)
it, poll ioctl(2)
for any changes
(TUNA_SHM_IOCTL_GET_BUF_WC
), and process any new samples.
The Linux kernel module and M4 firmware needs to be loaded and running before any userland program can actaully run.
Instructions for compiling and installing the kernel module can be found in the linux kernel module project README.md.
Instructions for compiling and installing the userland example programs can be found in the linux userland project README.md.
Instructions for compiling and installing the firmware can be found in the firmware project's README.md.