light的学习笔记 https://passport2.21ic.com/?415405 [收藏] [复制] [RSS]

日志

初试ST的ARM芯片STR712F

已有 2768 次阅读2006-1-31 16:54 |个人分类:学习ARM|系统分类:ARM



基本装备:带USBJTAG电缆的IAR J-Link仿真器,IAR EWARM安装文件和DK-STR712F for ST STR712F评估板。


----------------------------------------------------------------------



--------------------------------------------------------------------------------------------------- 



---------------------------------------------------------------------


评估板上的芯片是STR712FR2T6,通过datasheet了解到它具有多达272K256+16K)字节的FLASH程序存储器,擦写寿命不低于十万次(足够玩上一阵子了),数据保存不少于20年。还有64K字节的RAM。另外片上还集成了众多资源。TQFP64封装。


 


我第一时间就把datasheet里的STR712F Package Pin out图打印出来。先从名字去了解712F的各个脚。


 


注意到DK板上的32个多功能双向I/O大都被引了出来,分别连接到八个座子上,扫眼过去分别标着ADCCop/CompI2C0I2C1HDLCSPI0SPI1Smartcard,还有三个DB9:一个CAN和两个UART


 


JTAG接口为20脚。


 


除此之外,板子上还有RS232电平转换器,CAN收发器,两级稳压将可能的外接电源稳压至5V3.3V工作电压(STR712F芯片内置1.8V稳压器)。可以用跳线选择由外接电源(9V/300mA)或者由仿真器(若仿真器能够向外馈电)向目标板供电。


 


STR712F的主时钟由一个四脚的16MHz有源晶振提供,实时时钟由32768Hz的晶振提供。


 


待目标板上的电源指示灯点亮后,我开始安装软件。


 


ARM开发软件是我到IAR的网站下载的—Embedded Workbench for ARMEWARM),它分好几个版本。我选择的是Kickstart edition(我老老实实地填IAR网站上的表,不久就收到一个麦××公司李小姐的电子邮件,不过我没回复,呵呵)。现在万利的主页已经提供了一个32KEWARM公开下载,不用填表了。


 


软件安装完毕,我马上冲到软件的安装目录东翻翻西翻翻,找到…\arm\src\example\ST目录,打开STR71x子目录,从readme.txt文件知道这些example都是STMicroelectronics针对STR71x微控制器写给IAR EWARM环境的。如GettingStarted下的Led_Dimmer项目是有关ADCI/O使用的例子等等。我心想,头一个要试的就是你了—GettingStarted


 


IARJ-Link黑乎乎的(好象KeilULink是灰灰的),一头是USB的方口,另一头则是JTAG的扁口。拿在手上很轻,适合带着到处溜达。花了不到五分钟的时间,我给J-Link安装了USB驱动。


 


双击…\arm\src\example\ST\STR71x\Led_Dimmer.eww文件启动EWARM环境。EW集成开发环境长着一副大众化的Windows应用软件脸,上边为菜单和快捷图标,左边为Workspace栏,右边为源程序窗口。浏览了一下Led_Dimmer项目的main.c文件,知道它主要演示AD转换和I/O。不及多想,我选择Project菜单下的Rebuild All,这时EWARM IDE的下边出现了一个Build窗口。



3 860 bytes of CODE  memory


 2 330 bytes of DATA  memory


    12 bytes of CONST memory


 


Errors: none


Warnings: none


 


 


Total number of errors: 0


Total number of warnings: 0


 


嗯,程序没什么语法错误,那就仿真looklook


选择Project菜单下的Debug,几个窗口接连刷过(传说中的刷屏?)。EWARM IDE的右边出现了Disassembly窗口,下边则在Build旁边多了一个Debug Log页。



J-Link firmware: V1.20 (J-Link compiled Jul 25 2005 17:16:33 -- Update --)


JTAG speed is initially set to: 4000 kHz


Resetting Target using RESET pin


Initial reset was performed


J-Link found 1 JTAG device. ARM core Id: 3F0F0F0F(ARM7)


Device at TAP0 selected


**** Warning: Chip has already been halted.


 


Auto JTAG speed: 2666 kHz


4545 bytes downloaded (10.32 Kbytes/sec)


Loaded debugee: D:\Program Files\IAR Systems\Embedded Workbench 4.0 Kickstart\arm\config\flashloader\ST\FlashSTR71xF.d79


Target reset


Program exit reached.


3872 bytes downloaded into FLASH (1.96 Kbytes/sec)


Loaded debugee: D:\Program Files\IAR Systems\Embedded Workbench 4.0 Kickstart\arm\src\examples\ST\STR71x\GettingStarted\


Debug\Exe\Led_Dimmer.d79


Target reset


Driver does not support code coverage.


 


源程序窗口中文件main.c有一个箭头停留在int main(void)行,Disassembly窗口也有一个箭头停留在标号main下的第一条指令STR  LR, [SP, #-4]。选择Debug菜单下的Go


这时,目标板上接在P1.8 I/O上的发光二极管被点亮了,程序跑起来了!


-----------------------------------------------------------------------



-----------------------------------------------------------------------


我伸手去按目标板上的BUTTON。奇怪了,发光二极管有时闪烁,有时则稍稍变暗。是有点纳闷,不过看到板子在眨眼睛,我已经乐开了。


 


我回过头来看源程序,掰了手指头算一下,而后把if (!GPIO_BitRead(GPIO1,9))语句中的感叹号去掉。重新编译连接调试运行。还好,这次每当我按下板上的BUTTON按钮,发光二极管都闪烁了。


 


可是当我动手去转电位器时,二极管的亮度没有任何变化。又怎么了(我为什么说又)?


这次,我观察了一下电位器。哦,旁边有两个跳线位。翻出一个跳线接到CH0位置,再次转动电位器,发光二极管的亮度终于跟着变化了。


 


到这里为止,我第一次体验了EWARM + J-LINK + DK-STR712F,也是第一次感受ARM


路过

鸡蛋

鲜花

握手

雷人

发表评论 评论 (1 个评论)

回复 风儿 2008-7-25 09:36
我有一问题要请JJ啊,带USB接口的JTAG在哪里买得到啊?