[原创] 关于9B96的一点心得

yang_swust   2011-11-1 14:34 楼主
最近在写LM3S9B96的驱动,虽然是TI最新的cortex-m3内核的ARM,老实说这片子是我用过的最难用的一片ARM。
   首先根据TI提供的资料显示,刚出厂的芯片就存在BUG,芯片的FLASH只能从0x1000开始,在编程软件中的下载配置里要进行修改,后来发现编译完成后的脚本文件也要修改,解决程序下不进去问题就浪费了我一天多的时间。
   其次,JTAG端口与锁相环的问题。相信用过LM3S的人都应该清楚这一系列的ARM的JTAG端口是可以作为普通端口使用的。看似有好处,但其实还不如不要有这一功能,因为在JTAG端口被作为普通端口后如果不加入防JTAG失效的程序,那芯片就无法正常下载程序了。
   还要就是库的问题,才用的时候起来看似佷方便,其实影藏这很大的隐患,由于LM3S9B96是刚出的芯片,在编译软件中的驱动库(.lib)中有的引脚还没有定义,所以直接引用就会出问题,最后还是要老老实实的在.C文件中添加。
   还有要说说端口的问题了,这是最大的问题。和其他编程芯片不同,这片子的端口要先使能,然后定义方向,在而如果是输出还要定义输出方式,最后通过相应的读写函数进行操作,以上过程缺一补可,否则虽然程序编译可以通过但在链接时会引起堆栈的溢出。这种问题很隐蔽,芯片资料中几乎没有提到过,刚开始的时候犯错的话着实浪费了不少时间。
   最后,就是芯片会莫名其妙的被锁,比如开内部锁相环或者用Jlink的SW下载方式时,这两样新手最好不要尝试,特别是后者,否则将会很麻烦。
To make something special, you just believe it's special!

回复评论 (3)

好好学习吧
点赞  2011-11-1 15:21
如果你是在前年说这些话,我觉得还是有点依据的.

1. LM3S9B96 C1版本由于存在BUG,所以在复位地址放了1段补丁,用户的代码只能从0x1000开始。但是C1只是工程样片,不是量产的芯片。现在C5的量产版本是不存在这个问题的,用户可以从0X0000开始编写代码。

2. LM3S在考虑加密的时候,是采用的封锁JTAG口来实现的,这个其实也是有原因的。
   我们虽然使用JTAG的时间比较多,但实际上ARM在推出CORTEX-M系列时,也增加了一个SWD的调试模式。相对JTAG的4个脚,SWD只需要2个脚就能工作。多出来的管脚我们仍然可以作为普通的GPIO口使用。目前的LM3S是JTAG和SWD并存的方式,相信总会一天芯片厂家只会保留一种调试模式。
   在这样的背景下,相信在代码中加入几行代码防止出错或死锁,应该是大多数人都能接受的。

3. LM3S9B96并不是刚出来的芯片,TI最新的驱动库6075版本已经包含LM3S9B96的所有寄存器。估计是楼主没能即使更新软件库造成的,而且该软件库已经发布了近2年时间了。当一个新生事物在不断成长的时候,你还在用老的眼光和老工具去使用它,这就不是人家的错了。

4. 关于端口问题,我可以负责任的说几乎大多数的MCU对端口的处理都会有输出方向和输出模式的设置。
<例如PIC 有TRISx的寄存器来配置管脚方向,C8051F有PxMDOUT寄存器来控制端口是开漏还是推挽输出,NXP有GPIOnDIR来设置端口方向,ST的M3芯片也是这样的>,  不同的用户在使用芯片时的用途不一样,他们到底是用于输入还是输出,我们都需要进行配置。如果是输出,我们是用推挽输出还是开漏输出是不一样的,这个在绝大多数的单片机中都是这样设置的。
LM3S和其他MCU不同点只在于有个端口使能的设置,端口的驱动能力也是可以由用户自己设置的,是8mA驱动还是2mA驱动,都可以由用户自己设置。这样的设计也是出于系统功耗资源利用考虑的。试想一下,现在的MCU管脚越来越多,主频越来越高,很多应用场合我们都用不到所有的管脚,
如果我们不去管它,它就会在哪里悄悄的消耗功耗。这个在8位-16位的时代也许并不明显,但现在的M3动不动就是50M,80M的应用,管脚也相对较多,动不动就是64,80,100Pin,144Pin. 如果我们不把这些小细节都做好,就不可能设计出优秀和出色的产品。楼主在使用M3的时候,不要用8位和16位的思维来看32位,毕竟32位给我们带来了更高的速度,更强大的功能,以前8位机不能做的事,或者需要一大堆外设才能完成的功能,现在我们只需要一颗芯片就解决了。这难道不是进步吗? 如果外接环境都变化了,进步了,我们还是在用8位16位的思路去思考,用老的观念去看问题那是不恰当的。
点赞  2011-11-1 18:00

标题

虽然我还是大白菜,但是就楼主关于端口使用的问题我同意楼上这位发神的说法,这样的用法从16位单片机就有了吧
点赞  2011-11-2 01:21
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复