[原创] 说说实习两天的进展,同时求救求指导

辛昕   2011-3-18 10:25 楼主

     今天实习第三天了。

     前两天,我们对着STM32,一个全新的东西,我和同事阿彬都束手无策。

     我们两人从最开始摸索怎么使用IDE开始。

     由于他以前做过2410的,所以他用ADS。我则是弄430的时候,接触过IAR,所以我一开始打算用IAR EWARM。

可是就在第一天,我发现我用不动它。

     它有个地方很麻烦,就是如果加了什么头文件,需要在OPTION里一个选项里把该文件的链接输入进去。由于一开始我们都不会写,要用到头文件,而那个stm32f10x.h又内包了好多别的头文件。导致我们要把整个固件库加进去。

     很痛苦,于是我果断放弃,换用了ADS,因为虽然在ADS也要全加上,但起码它的操作简单很多。

 

     第一天好像就这样,阿彬则好像开始在看例程了。

 

     第二天,因为晚上借了本书,车上一直在看,加上回来后看了个贴,明白了,STM32跟51不同,不能老想着找寄存器。于是我们开始研究固件库。

    由于在C的方面,我自学的时候,学的比较浅,只到函数,不会结构体不会预处理。所以整个早上我就是对着固件库恶补这些内容。

    这个时侯阿彬的进展快得多,他参照我们找到的一个例程已经把程序编译过去了。我则到那天下午3点多才看懂。

    然后,阿彬那边遇到一个很麻烦的问题。

    就是程序烧写。开始是因为一些什么存储器地址没设对。后来这个搞定了,可是,怪事发生了。

 

    我们可以通过ADS直接烧,也可以把BIN文件放到JTAG,我们用的叫JLINK,上面写着 SEGGER 的牌子来着。直接通过那个JLINK FLASH软件烧。

奇怪的是,烧完后,在仿真窗口里,我们看到程序,我估计是反汇编窗口,都是空的。

 0x8000000 *****DATA ABORD ****

统统都这样。

而且,板上的LED也没反应。

 

后来老板把他以前写的一个汇编的BIN文件搞来,直接烧进去却有反应。

 

我们怀疑过LED对应的位置,可是我们试过把整个GPIOB都写高,也不行,后来仔细看了看那个板子,对应这个48脚的封装,那幅图应该是对的。

然后,我们又把JLINK拿走了,直接跑程序,嘿嘿,这回反汇编窗口里却可以看见代码,而且就是从0X8000000开始的,之前的都是 UNDEFINE.....

 

所以,一时半会也没啥办法了。

不知道到底是怎么回事。老板说今天拿个以前做的汇编的来试试。

我则怀疑是从ADS到那个仿真器之间少了点什么。比如什么设置,比如什么程序之类的......

 

今天的话,估计我还得恶补一下一些东西。昨天因为那个存储器地址,我和阿彬一头雾水,靠老板才搞定。所以,我想,今天我先放下编程,得好好看存储器什么的一些东西。

 

希望各位玩过的大侠指导指导。实习都三天了,还是没折腾好这个,压力很大啊~~

强者为尊,弱者,死无葬身之地

回复评论 (4)

三天时间学一个新的MCU确实太急了,不必那么有压力,总有个适应的过程
点赞  2011-3-18 12:38
有JLINK和IAR何不直接仿真呢?

你们遇到的问题出现在STM32的启动过程上,一般启动过程会在启动文件里面完成。而为什么你们写的程序没反应而老板的有,个人猜测是他的汇编里面包含了启动过程。

楼主这样做STM32开发显得有点“非主流”,ADS连ARM都已经放弃了,IAR EWARM是不太适合新手入门,但是Keil uVision4还是很容易上手的。
STM32的工程结构是“启动文件 + 库函数 + 应用程序”
启动文件在固件库里面已经提供了,直接添加引用就可以了。
对于底层寄存器的操作也有库函数调用,因此开发人员在这个基础上进行应用程序开发就可以了。
这个对于现在的单片机级别开发来说,是一种趋势:叫“封装”。
点赞  2011-3-19 10:33
加油吧.我是大三学生.接触STM32 用的MDK+ulink.还不是ulink2.....也是三四天才基本上手
点赞  2011-3-19 22:44

回复 板凳 losingamong 的帖子

额,具体点说的话,我该怎么做呢?
那些固件库太复杂了,我看了一个上午才看了几页
强者为尊,弱者,死无葬身之地
点赞  2011-3-21 14:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复