aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2016-07-16 10:31:24 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2016-07-16 10:31:24 +0000
commit5dfd79b0597edd24b8af0bc2479d82b5e240a9d3 (patch)
tree2b7a3e884e537f836fba6d3edd1e6602ce2bfeb5 /os/hal
parentc7c6f26484c3abf23e906443b49c0b1a6d1f0ee0 (diff)
downloadChibiOS-5dfd79b0597edd24b8af0bc2479d82b5e240a9d3.tar.gz
ChibiOS-5dfd79b0597edd24b8af0bc2479d82b5e240a9d3.tar.bz2
ChibiOS-5dfd79b0597edd24b8af0bc2479d82b5e240a9d3.zip
Added alignment checks to the SDIO/SDMMC drivers.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9711 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal')
-rw-r--r--os/hal/ports/STM32/LLD/SDIOv1/hal_sdc_lld.c8
-rw-r--r--os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c8
2 files changed, 12 insertions, 4 deletions
diff --git a/os/hal/ports/STM32/LLD/SDIOv1/hal_sdc_lld.c b/os/hal/ports/STM32/LLD/SDIOv1/hal_sdc_lld.c
index 73e8483e0..8982d45b4 100644
--- a/os/hal/ports/STM32/LLD/SDIOv1/hal_sdc_lld.c
+++ b/os/hal/ports/STM32/LLD/SDIOv1/hal_sdc_lld.c
@@ -813,7 +813,9 @@ bool sdc_lld_read(SDCDriver *sdcp, uint32_t startblk,
}
return HAL_SUCCESS;
}
-#endif /* STM32_SDC_SDIO_UNALIGNED_SUPPORT */
+#else /* !STM32_SDC_SDIO_UNALIGNED_SUPPORT */
+ osalDbgAssert((((unsigned)buf & 3) == 0), "unaligned buffer");
+#endif /* !STM32_SDC_SDIO_UNALIGNED_SUPPORT */
return sdc_lld_read_aligned(sdcp, startblk, buf, blocks);
}
@@ -846,7 +848,9 @@ bool sdc_lld_write(SDCDriver *sdcp, uint32_t startblk,
}
return HAL_SUCCESS;
}
-#endif /* STM32_SDC_SDIO_UNALIGNED_SUPPORT */
+#else /* !STM32_SDC_SDIO_UNALIGNED_SUPPORT */
+ osalDbgAssert((((unsigned)buf & 3) == 0), "unaligned buffer");
+#endif /* !STM32_SDC_SDIO_UNALIGNED_SUPPORT */
return sdc_lld_write_aligned(sdcp, startblk, buf, blocks);
}
diff --git a/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c b/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c
index b545634b6..257ae6f24 100644
--- a/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c
+++ b/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c
@@ -904,7 +904,9 @@ bool sdc_lld_read(SDCDriver *sdcp, uint32_t startblk,
}
return HAL_SUCCESS;
}
-#endif /* STM32_SDC_SDMMC_UNALIGNED_SUPPORT */
+#else /* !STM32_SDC_SDIO_UNALIGNED_SUPPORT */
+ osalDbgAssert((((unsigned)buf & 3) == 0), "unaligned buffer");
+#endif /* !STM32_SDC_SDIO_UNALIGNED_SUPPORT */
return sdc_lld_read_aligned(sdcp, startblk, buf, blocks);
}
@@ -937,7 +939,9 @@ bool sdc_lld_write(SDCDriver *sdcp, uint32_t startblk,
}
return HAL_SUCCESS;
}
-#endif /* STM32_SDC_SDMMC_UNALIGNED_SUPPORT */
+#else /* !STM32_SDC_SDIO_UNALIGNED_SUPPORT */
+ osalDbgAssert((((unsigned)buf & 3) == 0), "unaligned buffer");
+#endif /* !STM32_SDC_SDIO_UNALIGNED_SUPPORT */
return sdc_lld_write_aligned(sdcp, startblk, buf, blocks);
}