加载-ing 2021-03-22 17:02 采纳率: 0%
浏览 119

fpga用verilog读写SD卡,无系统

同样的SD卡,闪迪16G的2.0的卡。一块容量是15923150848;一块是15927345152。差值为winhex的读取到的根地址,8192*512。所以一个SD在读写的时候需要把读写地址加上8192,另一个就不需要。请问为何两块SD卡的地址管理方式不同,闪迪为何要这么做。新买了几块淘宝,京东的SD卡,SD卡的容量都是15923150848,就是很迷。为啥不让我通过审核

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-23 23:22
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    根据提供的信息,我们可以分析如下:
    1. 闪迪16G的2.0卡具有两种容量分别为15923150848和15927345152,差值为winhex的读取到的根地址,即8192*512。这意味着在读写时,一个SD卡需要将读写地址加上8192,另一个则不需要。这种地址管理方式不同的原因可能是由于闪迪的设计和硬件结构不同,可能是为了提高读写速度或提高数据安全性而采用了不同的地址处理方式。
    2. 新购买的一些SD卡容量都为15923150848,这可能是因为这些SD卡生产商在设计制造时,采用了相似的硬件结构或者采用了类似的数据管理方式,导致容量相同。
    3. 为什么其中的一些SD卡无法通过审核,这可能与其质量有关,可能存在生产缺陷或者不符合相关标准,导致无法通过审核。 如果想进一步了解其中的原因,可以进一步分析SD卡的控制器芯片、存储介质、数据管理方式等方面的技术细节。以下是伪代码展示可能的验证过程:
    # 假设有两块SD卡的容量
    sd_card1_capacity = 15923150848
    sd_card2_capacity = 15927345152
    # 对两块SD卡的容量进行比较,计算根地址的差值
    address_offset = sd_card2_capacity - sd_card1_capacity
    if address_offset == 8192*512:
        print("两块SD卡的根地址差值为8192*512,需要不同的地址管理方式")
    else:
        print("两块SD卡的根地址差值与预期不符,可进一步分析原因")
    # 验证其他新购买SD卡的容量情况
    new_sd_cards = [15923150848, 15923150848, 15923150848]
    for sd_card_capacity in new_sd_cards:
        if sd_card_capacity == 15923150848:
            print("SD卡容量为15923150848,可能存在相似的硬件结构或数据管理方式")
        else:
            print("SD卡容量与预期不符,需要进一步检查")
    # 验证SD卡通过审核情况
    sd_card_passed = True  # 假设SD卡通过审核
    if sd_card_passed:
        print("SD卡通过审核")
    else:
        print("SD卡未通过审核,可能存在质量问题")
    

    通过以上的分析和代码示例,可以更好地理解为什么SD卡的地址管理方式不同,以及可能导致一些SD卡无法通过审核的原因。

    评论

报告相同问题?