17172|30

2751

帖子

0

TA的资源

裸片初长成(初级)

楼主
 

LM3S811 uart0 [复制链接]

上一贴:跟着套件光盘入门LM3S811

https://bbs.eeworld.com.cn/thread-290441-1-1.html

 

刚拿到手一看,以为白色那块是LCD来的,细看一眼,原来就是一块塑料板导光板而已。之前看到带OLED Display的LM3S811,原来是另有其板。后来看了光盘里的例程,也是从带OLED Display的Kits例程里修改出来的。

 

EK-LM3S811自带了Key、LED和FT2232D虚拟出来的串口,所以说此评估板更类似于最小系统板。原理图可翻阅上贴附件:EK-LM3S811套件光盘\Hardware\WPI-EK-LM3S811_SCH_V011_0712.pdf

 

FT2232D虚拟出来的串口是已经跟LM3S811的uart0连接的,所以,基于uart0的程序都可以直接用这个Stellaris virtual serial COM port。

端口号修改可借鉴下帖:

https://bbs.eeworld.com.cn/viewthread.php?tid=237823&page=1&fromuid=194149#pid827620

 

下面说说我建立工程的步骤:

前提:把TI给的StellarisWare_for_EK-LM3S811解压出来发在一起,我这里放在G:\Documents\LM3S811。

 

1、新建一个工程,Device是Luminary Micro的LM3S811。

2、Project -> Option for Target……或者按快捷键Alt+F7。在Target标签里,Xtal输入板子对应的晶振6MHz,这个设置错了的话,可能会导致程序下载不了。

3、Output标签里,Create Hex File根据需要勾选。Select Folder for Object根据需要选择。

4、C/C++标签里,在Include Paths里添加..\;这里有解释一下为什么要添加这个点+点+斜杠。

在我们程序里,有这么一段头文件包含:

#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "driverlib/gpio.h"
#include "driverlib/uart.h"

inc/和driverlib/表示那两个是文件夹。因为使用的双引号,而不是尖括号,编译器一般会默认在工程目录下的inc和driverlib文件夹里寻找那4个.h头文件。这里是G:\Documents\LM3S811\uart0:

我们可以看到,该文件夹下面并没有inc、driverlib这两个放置hw_types.h、hw_memmap.h、gpio.h、uart.h头文件的文件夹,如果没有这个..\,编译器在工程路径下找不到需要的头文件,就会报错。但是增加了这个..\之后,表示include的路径包含了上一级目录,也就是下图的路径:

这样编译器就会在G:\Documents\LM3S811目录下找inc和driverlib文件夹,并到里面搜寻需要的hw_types.h、hw_memmap.h、gpio.h、uart.h四个头文件。找到了,就不会报错了。所以,如果你新建工程的时候看到提示没有定义undefined等错误,请先查看文件包含是否正确。

顺便说一下,如果头文件改成下面,编译器也是可以找到需要的头文件的。(注:左斜杠\和右斜杠/,在编译器MDK里作用是一样的)

#include "..\inc/hw_types.h"
#include "..\inc/hw_memmap.h"
#include "..\driverlib/gpio.h"
#include "..\driverlib/uart.h"

..\inc/表示在工程路径的上一级目录里的inc文件夹,应包含hw_types.h和hw_memmap.h。但很明显,通过修改include paths更为方便。

5、在Debug标签和Utilities标签里选择Stellaris ICDI。

 

经过以上步骤,Option基本设置完毕。

 

6、新建uart0.c并add到工程里,编译一下,会发现有好多undefined symbol,这是编译器在说那些函数没有定义到。这是因为我们用到了GPIOPinTypeGPIOInput等很多函数,虽然在.h文件有定义了,但是并没有找到函数原型。这时有两种方法可以解决。

一是我们常用的.c方法,就是跟刚刚uart0.c一样,把用到的.c源文件add进来,很明显,编译是通过的:

二是使用.lib文件的方法。

在G:\Documents\LM3S811\driverlib下面,我们可以看到,里面有个MDK工程文件driverlib.uvproj,打开后,在option里,我们可以看到,它编译产生的是Create Library。

在G:\Documents\LM3S811\driverlib\rvmdk下面,我们可以看到编译产生了driverlib.lib这个文件。而且翻遍它所有的C函数,居然都没有main函数。

其实这是常见的一种方法,就是引用库文件的方法。

库文件实际上是跟往常一样新建一个工程,在option里选择了Create Library,这种工程是不能有main函数的,编译后,MDK会把所有的函数编译封装在.lib文件里,以后我们需要用到那些C函数的时候,只需要把lib文件add到工程里,就可以直接调用。如图所示:

使用lib文件的好处是,因为lib是已经编译过的文件,所以不像使用c文件那样费事,使用c文件每次都重新编译,产生.o等很多中间文件。因而lib文件会大大减少工程编译时间。

另外,使用lib文件,不需要提供源码c文件给别人,起到了一定的保密效果。只需要把lib及函数的说明和使用方法交给用户,用户直接调用即可。

注意:.lib文件并没有包含宏定义等信息,所以,和.lib配套的.h文件是不能省掉的。

 

搞定了.h和.lib,新建自己的工程便是easy job啦。剩下开发LM3S的工作难点便是面对纷繁API函数,怎么去使用了。

 

附件: LM3S811uart0附件.rar (2.28 MB, 下载次数: 904)

uart0的MDK完整工程文件(含针对此板验证可行的Jtag防锁死程序)

FT2232配置软件MProg3.0_Setup.exe

FT2232中文资料.pdf

最新回复

学习了!  详情 回复 发表于 2016-10-25 23:26

赞赏

1

查看全部赞赏

 
点赞 关注(1)

回复
举报

2751

帖子

0

TA的资源

裸片初长成(初级)

沙发
 

手把手教你TI M3驱动库编程

原帖由 David_Lee 于 2011-5-11 16:12 发表 上一贴:跟着套件光盘入门LM3S811 https://bbs.eeworld.com.cn/thread-290441-1-1.html   刚拿到手一看,以为白色那块是LCD来的,细看一眼,原来就是一块塑料板导光板而已。之前看到带OLED Display的LM3S811, ...

 

修正:补图,可能因为用的是同一个图,上面的给系统忽略掉了。

我们可以看到,该文件夹下面并没有inc、driverlib这两个放置hw_types.h、hw_memmap.h、gpio.h、uart.h头文件的文件夹,如果没有这个..\,编译器在工程路径下找不到需要的头文件,就会报错。但是增加了这个..\之后,表示include的路径包含了上一级目录,也就是下图的路径:

 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

板凳
 

手把手教你TI M3驱动库编程.pdf (738.93 KB, 下载次数: 735)

赞赏

1

查看全部赞赏

 
 
 

回复

283

帖子

0

TA的资源

纯净的硅(初级)

4
 
谢谢分享
 
 
 

回复

7172

帖子

195

TA的资源

五彩晶圆(高级)

5
 
大卫 在么
 
 
 

回复

2113

帖子

0

TA的资源

裸片初长成(初级)

6
 
楼主,请教一下,在第一楼层中讲到:
3、Output标签里,Create Hex File根据需要勾选。Select Folder for Object根据需要选择。

这里要选择什么?
 
 
 

回复

2113

帖子

0

TA的资源

裸片初长成(初级)

7
 
我在网上查的:
编译生成 的文件都有作用的,不可能将其全部删除,但是可以设置其生成的目录。
方法如下:
在勾选生成Hex的相同页面中( Output 标签页 Create HEX File)上方有一个“Select Folder for Object...”按钮,点击后设置到一个新的文件夹下(例如 当前工程文件夹\Debug)
在与 Output 标签页同个弹出窗口的另一个标签页Listing 标签页中同样有“Select Folder for Object...”按钮,点击后设置到一个新的文件夹下(例如 当前工程文件夹\Debug)

这样设置以后你那些所谓的垃圾文件就都放在一个你不使用 的文件夹下了,不会影响你查看源代码。


现在明白了
谢谢 啊
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

8
 

原帖由 heningbo 于 2011-5-15 12:51 发表 我在网上查的:编译生成 的文件都有作用的,不可能将其全部删除,但是可以设置其生成的目录。方法如下:在勾选生成Hex的相同页面中( Output 标签页 Create HEX File)上方有一个“Select Folder for Object.. ...

 

bingo

还有一个是在option -> user -> run user programs after build/rebuild里添加fromelf --bin --output uart0.bin uart0.axf这样的语句,生成bin文件。因为有些isp下载工具那些,不支持hex的,得用bin文件。

 

至于那灯六个RGB灯会亮,是因为GPIO默认设置的问题,我的也会亮,O(∩_∩)O~。

bin.jpg (77.97 KB, 下载次数: 8)

bin.jpg
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(高级)

9
 

回复 4楼 David_Lee 的帖子

感谢楼主。痛哭流涕啊
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(高级)

10
 

回复 8楼 David_Lee 的帖子

求unit1啊
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(高级)

11
 
原帖由 heningbo 于 2011-5-15 11:26 发表
楼主,请教一下,在第一楼层中讲到:
3、Output标签里,Create Hex File根据需要勾选。Select Folder for Object根据需要选择。

这里要选择什么?

在这里你可以选择你的输出文件放置的文件夹 例如 .o .hex
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(高级)

12
 
原帖由 David_Lee 于 2011-5-15 13:41 发表

 
bingo

还有一个是在option -> user -> run user programs after build/rebuild里添加fromelf --bin --output uart0.bin uart0.axf这样的语句,生成bin文件。因为有些isp下载工具那些,不支持hex的,得用 ...

这个学习了。 生成bin~~
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

13
 

请教

David Lee
我想要你的QQ号,有问题向你请教,要不你加我吧,297182261
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

14
 

原帖由 changhuawang 于 2011-10-8 23:01 发表 David Lee 我想要你的QQ号,有问题向你请教,要不你加我吧,297182261

 

已添加好友

 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

15
 
辛苦了!
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

16
 
很好啊
 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

17
 
请问LZ如何烧写程序啊?菜鸟求具体操作
 
 
 

回复

131

帖子

0

TA的资源

一粒金砂(中级)

18
 
恩  很好的811心得,感谢楼主
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

19
 

zz

请问  uart0.sct是什么文件啊,我建的工程里怎么没有啊?
 
 
 

回复

2734

帖子

0

TA的资源

裸片初长成(初级)

20
 
我当时玩LM3S811的时候也是最初做的uart,很好玩,还上传了一个我自己做的步骤,还有我的学习心得呢,跟楼主的差不多,呵呵
 
个人签名我爱电子!
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表