map_base_uart=(unsigned int *)mmap(0,4096,PROT_READ|PROT_WRITE,MAP_SHARED,fbb,0x481a0000);
if(map_base_uart == NULL)
{
printf("UART mmap err!\n");
}
else
{
printf("UART mmap ok!\n");
}
recv_spi[0]= (*(volatile unsigned int *)(map_base_uart)&0xff);//
printf("usrt 0H value : %d \n ",recv_spi[0]);
printf("\n");
分别试了SPI0 和SPI1都不行,报如下错误
root@am335x-evm:/mnt/nfs# ./spi spi mode: 0[ 2820.799835] Unhandled fault: external abort on non-linefetch (0x1018) at 0x40091000 bits per word: 8 max speed: 500000 Hz (500 KHz) UART mmap ok! Bus error root@am335x-evm:/mnt/nfs#
然后分别试了,GPIO0-3; UART0-3 这几个地址,读基地址都可以读到内容。 ,为啥操作SPI 就是不行,但是APP方式调用标准SPI驱动就可以正常收发数据呢?