查看: 1453|回复: 0

[其他] 每天解决一个问题13天 :KL26Z存储器大端与小端

[复制链接]
  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16701
    最后登录
    1970-1-1
    发表于 2015-9-6 11:42:42 | 显示全部楼层 |阅读模式
    最近在学习YL-KL26Z的ADC16与DMA实现,突然想到KL26Z是大端还是小端存储模式呢?


    =======================================================


    一、问题描述:
    ADC16的结果寄存器是32位的,而只用了16位。
    ADC16的结果寄存器如下图:
    1021.jpg
    1020.jpg
    地址为:0x4003B000、0x4003B001、0x4003B002、0x4003B003四个地址,那16位数据存储在那些地方?


    二、解决办法:
    1、先来了解存储器的大端小端问题:
    端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big Endian和Little Endian也几乎引起一场战争。
    2、举个例子吧,
    32bit宽的数0x12345678在Little-endian模式以及Big-endian模式)CPU内存中的存放方式(假设从地址0x1000开始存放)为:
    1022.jpg
    3、那KL26Z到底使用了大端还是小端模式呢?
    还是写个程序来看看吧!
    1024.jpg
    其输出结果是:
    1023.jpg




    三、感想与收获:
    1、通过上面的结果可以看出,KL26Z的数据存储时,低位在低字节,属于小端存储模式。
    2、通过自己的实验来验证,印象更深刻些

    我知道答案 目前已有0人回答
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 19:08 , Processed in 0.085030 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表