迪文屏幕T5L平台学习笔记零:KEIL环境搭建

最近公司有使用迪文一款基于新开发的T5L ASIC芯片开发的温控器产品,产品型号为TC041C系列,此产品为4.1寸屏幕,分辨率为720*720,显示图片极其清晰,精致。  T5L ASIC为迪文针对AIOT应用设计的低功耗、高性价比、GUI和应用高度整合的单芯片双核ASIC IC。

       关于迪文T5L ASIC的资料可以在迪文官网进行下载,链接:资料下载

        由于T5L ASIC采用标准8051架构和指令集,所以对于我们使用T5L ASIC来开发是一件美好的事情,终于可以不用再理会迪文OS开发而使用的汇编指令集了。下面我们来介绍下怎么怎么搭建T5L ASIC的Keil C51开发环境和Keil工程模板的建立,其中还有还是很多需要大家注意的地方。

        首先下载迪文T5L的开发包,其中有开发文档《迪文 T5L ASIC应用开发指南》,驱动程序,使用汇编写的SFR头文件和8051的Demo等资料。所以,我们先得自己编写C语言的头文件,这样大家会说,这不太麻烦了,还得自己编写头文件。不过别怕,为了玩转T5L ASIC,我已经给大家重新写好啦,大家可以尽情下载使用吧。下载地址:GitHub - prefectcj/dwin-T5L: dwin

        好了,闲话不多说,现在我们来介绍怎么搭建迪文T5L ASIC的Keil开发环境。
        1.安装Keil C51开发环境

       相信大家对于安装Keil C51开发环境早已经不陌生了,我就不多介绍啦,不会的童靴可以自己百度或者参考MDK5安装破解以及安装stm32与C51支持包(附安装包)_ TEER的博客-CSDN博客_keil5c51安装包

        2.安装AGDI驱动,使Keil支持T5L芯片和HME05仿真器
        打开开发包:迪文T5L ASIC开发\驱动程序\KEIL AGDI T5,安装agdi_installation_dwin.exe,安装目录和Keil安装目录一致。

         

        安装完AGDI驱动后,将迪文T5L对应的.INC或者.h头文件COPY到Keil\C51\INC\DWIN目录下。为了方便避免使用汇编来写,我们将迪文提供的汇编头文件和.H头文件一起放进对应文件夹。

        我编写的头文件大家如有发现问题,请多包涵,可以自己修改哦~
        3.建立Keil工程
        相信这一步对大家来讲都是小菜一碟,我也来稍微介绍说下需要注意的地方,1是选择CPU的时候必须选择DWIN Device里面的T5,还有一个就是弹出是否复制8051启动代码增加到工程中,大家选择“是”。
        以前使用8051不加启动文件的小伙伴们可能会有点疑惑,这里我先卖个关子,后再在说,为什么必须要增加启动文件。

        4.初始化CPU
        使用T5L ASIC和使用8051芯片有一点不一样的地方就是,必须对部分特殊寄存器进行初始化,这里我们可以在迪文提供的文档中找到。具体有什么寄存器需要单独初始化呢,我给大家截图放在下面啦,就是下面图片中的那8个特殊寄存器需要在进入main函数中就初始化哦~    

 

        5.Hex to Bin
        由于迪文现在给的下载软件只支持下载bin文件程序,而Keil C51不支持直接生成bin文件,Keil5中自带工具也只是支持ARM的程序后生成bin文件。说起来Keil C51就是这么惨,还需要自己下载工具,并制作启动文件,来生成bin文件。不过大家也不用急,下面我就交大家生成bin文件的方法,大家学会了其实也很简单。
        Keil C51可以生成bin文件的常用小工具有srec_cat.exe和hex2bin.exe,方法都大同小异,下面我以使用srec_cat.exe为例给大家介绍下怎么生成bin文件。
        新建一个obj文件,将srec_cat.exe放置在obj文件中,新建一个.txt文件,里面下入下面代码:
            cd obj
            srec_cat.exe *****.hex -Intel -o *****.bin -Binary 
            echo.
            *****代表生成的HEX文件的名称。
        然后将.txt文件更改为1.bat文件,可以直接修改后缀就可以啦,有部分童鞋可能由于系统原因,修改后缀后,还是txt格式,这样的话就需要自己百度一下怎么修改后缀名更改文件格式啦,这里我就不放链接了。
        再打开Keil,打开“Options for Target ‘Target 1’”,将Keil生成HEX文件的目标移到此obj文件夹下。在选择”User”目录下,在”Run #1”上打勾,并写入”.\obj\1.bat”。再次编译此工程,就会生成需要的Bin文件。    

        6.修改启动文件
        到此,我们随便新建一个小工程,比如控制IO口P1.0。具体下载方法为打开目录:迪文T5L ASIC开发\驱动程序中的OS 8051代码烧录工具.exe,选择需要下载的bin文件和对应的串口,点击下载。很快的我们编译好的工程文件就下载到迪文温控器中了。
        但是,我们测试却发现了一个问题,我们使用迪文OS内核控制的IO口没有按照我们程序中执行对应的功能。这是为什么呢,可能细心的小伙伴们在看《迪文 T5L ASIC应用开发指南.pdf》时有发现,迪文T5L代码空间中对0x00F8和0x00FA有要求,其中0x00F8必须为0xFFFF,才允许JTAT接口进行仿真调试,其它值JTAG都被禁止。同时0x00FA开始的6个字节必须为“DWINT5”,否者OS 8051停止运行。    

         为了能用JTAG进行仿真调试以及OS 8051不停止运行,对此部分地址的值进行初始化。这时我们可以通过修改启动文件对0x00F8和0x00FA地址数据进行初始化,大家可以将启动文件删除,将下面代码COPY到启动文件中,就可以了,当然感兴趣的小伙伴们可以看下启动文件中的代码具体有什么作用,或者在此基础上进行修改启动文件。
                CSEG    AT  0F8H
                DB  0FFH,0FFH
                DB  'DWINT5'
                EXTRN CODE (?C_START)
                LJMP    ?C_START
                END
          修改完启动文件后,重新编译,将bin程序下载到迪文温控器中,IO口就有按照我们想要的方法来执行了,到这里,我们的关于怎么搭建迪文T5L ASIC的温控器Keil C51开发环境和新建Keil工程模板就到这里了。为了方便大家,我也新建了一个工程模板,供大家参考,一样在上面的分析连接中啦。
          感兴趣并有一定基础的小伙伴可以加群637787562深入探讨。
————————————————
版权声明:本文为CSDN博主「一点儿人工智能」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dwin_dt5pub/article/details/89194316

《--------------------------------------------------------------------------------------------------------------------------》

1、T5L迪文屏资源介绍
我们这里所谓的T5L迪文屏,它其实是一个泛指,它包括了T5L1(低分辨率)和T5L2(高分辨率)两个版本,T5L1芯片和T5L2芯片的开发方式是一模一样的,内部资源也基本差不多,最重要的区别就是T5L2芯片能够驱动更高分辨率的液晶屏,T5L芯片是一个双核的处理器,一个为OS核,用来放我们用户的业务逻辑代码的,此核其实就是一个成熟稳定的51单片机,主频可以高达250MHZ,而且外设资源比传统的51单片机要丰富很多,另外一个核是GUI核,里面跑了一个DGUS II系统,用于专门负责GUI图形界面构建和渲染,内置2D硬件加速,可以使我们的图形界面刷新和切换极其的流畅,俩个核之间分工合作,使我们的业务逻辑代码和GUI图形界面之间进行分离,实现了”高内聚低耦合”的编程思想,当我们在代码中需要更新图形界面时,我们的OS核是可以和GUI核之间进行通信的,这是通过”DGUS变量存储器”来进行实现的,更为详细的内容,我们在后面的章节中会讲到。
2、T5L迪文屏的开发方式
T5L迪文屏的开发方式是多样的,开发方式可以分为”TA指令集开发”和”DGUS开发”,其中TA指令开发,见名知义就是根据预定义好的指令集来开发,跟串口屏的开发方式差不多,这里不过多介绍,我们主要是来介绍”DGUS开发”, DGUS 是 DWIN Graphic Utilized Software 的缩写,在”DGUS开发”的下面,根据OS核存放的代码不同,又可以分为”DWIN OS开发”和”C51开发”,这倆种开发方式是互斥的,只能选择其中一种,具体区别如下:
DWIN OS开发: 分为虚拟机层和DWIN OS层,虚拟机层的内核固件(T5L_OS*.bin)是由迪文官方提供的,而DWIN OS层的代码才是我们用户自己编写的,DWIN OS层是基于虚拟机层而运行的,所以必须得先下载好虚拟机层的内核固件后再来下载DWIN OS的程序,DWIN OS的程序可以采用C语言或者汇编语言编写,当采用C语言编写时,就得用迪文官方提供的DWIN C Compiler软件来编译项目,当采用汇编语言编写,就得用迪文官方提供的OSBuild软件来编译项目
C51开发: 这就是我们传统的51单片机开发方式,采用C语言编写,使用Keil集成开发工具,使用DownLoadFor8051工具进行代码下载,C51开发方式是所有开发方式中效率和自定义能力最高的,所以本视频教程讲授的就是C51开发方式。
3、和市面上其他的GUI开发方式对比
(1) 使用emwin,touchGFX,littleVGL等第三方GUI库来开发
这种开发方式,一般都是选型一个高性能的微处理器,因为太低端的处理器带不起来,然后移植市面上已有的GUI库,如emwin,touchGFX,littleVGL等,而这些GUI库中有些是收费的,有些是免费的,有些GUI库精炼效率高,有些GUI库臃肿效率低,而且如果你是想要实现一个超炫酷,超流畅的GUI界面的话,那么它对你的硬件就具有一定的要求了,可能要求你的处理器具有GPU模块,还可能要求你的处理器外挂SDRAM等等,此开发方式难度大,但是自定义能力是最高的,大神们一般喜欢这种开发方式,因为没难度的事,他们一般不干滴哈哈!
 
(1) 使用串口屏来开发
这种开发方式简单,对硬件也没过高的要求,但需要你外置一个微处理器通过串口来和串口屏进行通信,是一种指令集的开发方式,不同厂家的串口屏,指令集也会不同,因为通过串口通信,速度慢,对于界面有大量数据更新的项目,那么此开发方式就显得有心无力了
 
(2) 使用T5L迪文屏C51开发
这也是本视频教程所讲授的开发方式,此方式可以说是GUI开发中的一股清流,开发简单,对硬件要求低,不需要外置一个微处理器,因为所需要的硬件模块都被T5L芯片给封装在里面了,所以对于我们来说,这种方式的硬件成本应该是最低的,这种方式可以实现炫酷,流畅的GUI界面,自定义能力也高,要说美中不足的话,那就是如果把T5L内部的OS核(也就是8051核)换成一个32位的微处理器就更好了,外设资源将会更加强悍,可用的IO引脚数也会更多,那面对大型项目就一点也不慌了,我相信迪文官方也正在朝着这个方向努力着!
4、开发环境搭建
(1)安装Keil集成开发工具
(2)安装DGUS Tool界面设计工具
(3)安装DownLoadFor8051下载工具
(4)安装AGDI驱动
(5)安装串口驱动
5、创建C51项目工程模板
详见文档具体步骤。

也可以这样理解:
T5L51*.BIN 就是8051直接运行的代码,没有DWIN OS平台了。

DWIN OS程序是在T5L DWIN  OS虚拟机上运行的代码。

(T5L51*.BIN一旦下载到T5L芯片里,就会把T5L_OS内核和DWINOS汇编的程序都冲掉,要恢复用汇编的OS程序的话,先要下载T5L的OS内核程序如T5L_OS_DGUS2_V1*.BIN,然后再下载DWINOS*.BIN)
注:T5L_OS_DGUS2_V1*.BIN迪文的os内核CPU也负责UART2~UART5的通讯。

T5L中断入口地址的在KEIL_C 中用中断号描述的方法

根据T5L ASIC应用开发指南
keil C中描述  中断用以下格式:
void 中断类型(void)    interrupt    中断序号xx
{
    EA=0;
   //中断函数代码
    EA=1;
}

xx=  (入口地址-3)/8
例如下图中uart5   R 的入口地址是 0x6b  =107
107-3=104;
104/8=13

即xx=13

代码可以如下构建
void UART5_RX(void)    interrupt    13
    {
      EA=0;
   //中断函数代码
      EA=1;
  }

​​​​​​​ 

 

  • 3
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值