mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
ports/mimxrt: Use hardware byteswap support.
This commit is contained in:
parent
d5f0392499
commit
7c6105e54c
@ -193,6 +193,7 @@
|
||||
// Camera interface configuration.
|
||||
#define OMV_CSI_BASE (CSI)
|
||||
#define OMV_CSI_XCLK_FREQUENCY (12000000)
|
||||
#define OMV_CSI_HW_SWAP_ENABLE (1)
|
||||
|
||||
#define OMV_CSI_D0_PIN (&omv_pin_DCMI_D0)
|
||||
#define OMV_CSI_D1_PIN (&omv_pin_DCMI_D1)
|
||||
|
||||
@ -1307,13 +1307,16 @@ __weak int sensor_copy_line(void *dma, uint8_t *src, uint8_t *dst) {
|
||||
#if OMV_CSI_DMA_MEMCPY_ENABLE
|
||||
sensor_dma_memcpy(dma, dst16, src16, sizeof(uint16_t), sensor.transpose);
|
||||
#else
|
||||
if ((sensor.pixformat == PIXFORMAT_RGB565 && sensor.hw_flags.rgb_swap)
|
||||
if (0) {
|
||||
#if !OMV_CSI_HW_SWAP_ENABLE
|
||||
} else if ((sensor.pixformat == PIXFORMAT_RGB565 && sensor.hw_flags.rgb_swap)
|
||||
|| (sensor.pixformat == PIXFORMAT_YUV422 && sensor.hw_flags.yuv_swap)) {
|
||||
if (!sensor.transpose) {
|
||||
unaligned_memcpy_rev16(dst16, src16, MAIN_FB()->u);
|
||||
} else {
|
||||
copy_transposed_line_rev16(dst16, src16);
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
if (!sensor.transpose) {
|
||||
unaligned_memcpy(dst16, src16, MAIN_FB()->u * sizeof(uint16_t));
|
||||
|
||||
@ -322,6 +322,14 @@ int sensor_snapshot(sensor_t *sensor, image_t *image, uint32_t flags) {
|
||||
// Re/configure and re/start the CSI.
|
||||
uint32_t bytes_per_pixel = sensor_get_src_bpp();
|
||||
uint32_t dma_line_bytes = resolution[sensor->framesize][0] * bytes_per_pixel;
|
||||
|
||||
if ((sensor->pixformat == PIXFORMAT_RGB565 && sensor->hw_flags.rgb_swap)
|
||||
|| (sensor->pixformat == PIXFORMAT_YUV422 && sensor->hw_flags.yuv_swap)) {
|
||||
CSI_REG_CR1(CSI) |= CSI_CR1_SWAP16_EN_MASK | CSI_CR1_PACK_DIR_MASK;
|
||||
} else {
|
||||
CSI_REG_CR1(CSI) &= ~(CSI_CR1_SWAP16_EN_MASK | CSI_CR1_PACK_DIR_MASK);
|
||||
}
|
||||
|
||||
CSI_REG_IMAG_PARA(CSI) =
|
||||
(dma_line_bytes << CSI_IMAG_PARA_IMAGE_WIDTH_SHIFT) |
|
||||
(1 << CSI_IMAG_PARA_IMAGE_HEIGHT_SHIFT);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user