【问题】
编译警告:dma_map_single discards qualifiers from pointer target type
【解决办法】
原先的函数如下:
static void as353x_nand_write_page_hwecc(struct mtd_info *mtd,
struct nand_chip *chip, const uint8_t *buf)
{
…
info->rxaddr = dma_map_single( info->device,
(void *)buf,
info->len,
DMA_TO_DEVICE);
….
}
其中,直接将函数得到的参数const uint8_t *buf,强制转换成void *传入给dma_map_single,因此会有警告,所以,解决办法很简单,多加个非const的指针变量,保存传入的指针,再将此指针传给dma_map_single即可。修改后函数如下:
static void as353x_nand_write_page_hwecc(struct mtd_info *mtd,
struct nand_chip *chip, const uint8_t *buf)
{
…
uint8_t *data_buf = (uint8_t *)buf;
….
info->rxaddr = dma_map_single( info->device,
(void *)data_buf,
info->len,
DMA_TO_DEVICE);
….
}
转载请注明:在路上 » 【已解决】dma_map_single discards qualifiers from pointer target type