我现在想实现如下功能:当SD卡插入的时候,根据SD卡的ID号来进行判断。如果ID号是我允许的,则这个SD卡可以被加载使用;否则拒绝该SD卡加载。
我修改了core目录下面的sd.c文件:首先将mmc_decode_cid函数的返回从void更改为int,并在mmc_decode_cid当中增加了cid判定代码。如果cid判定一致,则返回0;否则返回-1。然后,在mmc_sd_init_card函数当中,根据mmc_decode_cid调用的返回值判定,如果返回为0,则不做改动正常执行;如果返回-1,则跳转到mmc_sd_init_card当中的freecard标号处,对card进行free。
但是,当我重新编译并将新内核烧入tiny210的开发板之后,前面都能够正常通过。当出现一键精准定位的界面之后,定位会无法通过,且超级终端显示“calibration failed”,无法继续。
我的问题如下:
(1)上述方法是否正确?如果正确,上述问题应该怎么解决?
(2)如果不正确,我应该如何去做?我的目的就是想只让特定的SD卡能够插入开发板使用,其他的SD卡都拒绝接入系统使用。
谢谢!