查看: 3516|回复: 2

【香蕉派程序开发】5110屏幕显示当前系统信息(3) - 运行效果

[复制链接]
  • TA的每日心情
    奋斗
    2022-9-16 05:52
  • 签到天数: 1368 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2014-9-14 09:18:07 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 tjcfeng 于 2014-9-14 09:25 编辑

        既然是使用5110的屏幕来显示,就要对各个引脚进行IO操作。这里最重要的不是操作方法,而是确定寄存器在用户程序中的虚拟地址。

        A20手册中给定的GPIO的基地址为0x01C20800,而PageSize为4096,所以在用户态中的地址就是整页的位置+偏移量:
        GPIO:= ($01C20800 and $FFFFF000) div PageSize;
        Offset:= ($01C20800 and $00000FFF);
        那么用户态中的地址为:
        MEM_GPIO:= fpMmap(nil, PAGE_SIZE, PROT_READ or PROT_WRITE, MAP_SHARED, FMEM, MEM_GPIO);

        其他各个配置寄存器的地址就是 GPIO + Offset + 各个寄存器的偏移量。

        程序源代码附后,先看下运行的效果图吧

    IMG_0204.JPG
    系统中的界面

    IMG_0203 (1).JPG
    屏幕上的界面,右边空白是为磁盘空间信息预留的地方,有兴趣的自己加上吧,饼图更好看。

    IMG_0205.JPG
    整体效果

        这个程序其实包括了两个显示方式,可以根据自己的需要来选择从哪里显示。

      工程代码(有个小bug没来得及改,就是显示新数据时应该先清除原先显示的数据):
        http://pan.baidu.com/s/1eQrdoJo

      Lazarus另一点优势就是“一次编写,到处编译”,什么Windows、Linux、IOS、WinCE、ArmLinux、Android。。。。通吃,并且是原生代码(可不像java之类的虚拟机呀),而且继承了Delphi的即拷即用,不用安装一大堆的运行库。
        这个压缩包中已经包括了可以执行文件,直接运行就可以看到效果。由于包括了调试信息,这个文件比较大,可以在终端中执行一下strip SysInfo,去掉这些调试信息,体积可减少10倍。


    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-4-18 08:38
  • 签到天数: 110 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-9-14 19:24:37 | 显示全部楼层
    好贴必须顶
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-6-24 16:41
  • 签到天数: 709 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-9-15 09:34:10 | 显示全部楼层
        这个蛮好的啊
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-11-15 20:08 , Processed in 0.143667 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.