cm3588-mipi-camera.ino
Code C minimal pour initialiser un flux vidéo depuis une caméra MIPI CSI sur le CM3588.
Matériel : Caméra compatible MIPI CSI connectée au port CSI du CM3588. Le pilote du capteur doit être chargé. Vérifiez avec v4l2-ctl --list-devices. Compilez avec gcc cam.c -o cam. Ce code configure le format ; ajoutez la logique de capture complète pour la production.
cm3588-mipi-camera.ino
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <linux/videodev2.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#define DEVICE "/dev/video0"
#define WIDTH 1920
#define HEIGHT 1080
#define FORMAT V4L2_PIX_FMT_MJPEG
int main() {
int fd = open(DEVICE, O_RDWR);
if (fd < 0) { perror("Open"); return 1; }
struct v4l2_format fmt = {0};
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = WIDTH;
fmt.fmt.pix.height = HEIGHT;
fmt.fmt.pix.pixelformat = FORMAT;
if (ioctl(fd, VIDIOC_S_FMT, &fmt) < 0) { perror("Set Format"); return 1; }
struct v4l2_requestbuffers req = {0};
req.count = 4;
req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
req.memory = V4L2_MEMORY_MMAP;
if (ioctl(fd, VIDIOC_REQBUFS, &req) < 0) { perror("Reqbufs"); return 1; }
// Note: Full mmap and DQBUF logic omitted for brevity, refer to V4L2 docs
printf("Camera configured for %dx%d MJPEG\n", WIDTH, HEIGHT);
close(fd);
return 0;
}