×
单片机 > 单片机程序设计 > 详情

44b0从裸片到电路板调试制作三步走

发布时间:2020-08-26 发布时间:
|
首先,我想说的是,我一直都是在玩儿LPC系列的ARM,近期由于项目需要用了一块S3C44B0,用的我那个憋屈啊!也许是习惯了ZLG系列操作的傻瓜性所以刚接触44B0的确是懵了(怎么这么麻烦),bootloader(俗称BIOS),和引导程序、应用程序要分开下载,这些在ZLG里面全部一步到位(打开JTAG,直接Debugger就Ok了),而网上的资料写的虽然停详细可是太不简洁了,看了半天也不明所以,所以前前后后花了我将近一个月的时间才吧44b0的板子调通。这里我想把我从买到44B0芯片到焊接调试成功的整个过程写下来希望能帮助一些朋友,共分三步:
   1、芯片焊接及初始化
   2、程序仿真调试
   3、程序下载
一、芯片焊接及初始化:
       焊接我就不罗嗦了,初始化这步至关重要。刚焊接好后,上电如果能检测到ARM7内核,说明电源正常。但此时你如果检测Flash的话你是检测不到的,当初我自己就是纳闷,怎么检测不到flash呢?因为在用LPC的时候应该是都检测正常的。奇怪了吧!
       于是,我就怀疑是我Flash的焊接出问题了,我又重新焊接一次flash以及44B0,然后仔细的一个一个脚的测发现没什么问题,于是,我再次上电,可还是检测不到Flash。这我就懵了,搞了1天多还是没有效果。这时,我也只好告诉自己一定要静下心来,不要急躁,好好的研究一下44B0的数据手册和Bootloader。
       再经过几番的仔细研究后我才知道,44B0裸片焊接好后要进行初始化,亦即烧写bootloader,通俗点讲就是相当于装驱动包括flash、网卡等。初始化,很多都是采用FLUTED软件进行的,我也是用的这个软件,可是就这个软件用的也是一波三折,本来按照软件说明书里那样进行操作,可是一运行老是错误:get ID regester ...id code error ( 0x00000000)should be 0x1f0f0f0f。我在网上搜了一下,发现很多人都遇到过类似的错误,找来找去也没有人给个解决的法子,我也就只能自己摸索了,好在老天不负我,原来用这套软件首先要去掉软件的只读属性,然后打开它之前首先要打开H-JTAG连接好内核,这样bootloader才能顺利下载进去。总之裸片首先要初始化,步骤:
Ø         FLUTED软件拷贝到相应目录下面,确认批处理文件的路径是否正确;
Ø         开H-JTAG连接内核,开FLUTED的批处理文件待下载bootloader下载完毕。
二、仿真调试:
    不论是SDT还是ADS网上说明也很多了我就不罗嗦了。
三、程序下载:
    程序下载方式有网口、串口、USB、并口等,其中我介绍一种串口下载,因为除了并口下载其他的在设计板子的时候都太占地方了。
       串口下载步骤:
1、  启动超级终端;
2、  打开板子电源,这时超级终端会有如下图显示:
      
 
3、在倒计时到0之前按任意键,进入编辑状态,输入:
loadb 0x0C008000 (不是这个地址也无所谓,只要RAM最高块不用就可以)。
点发送文件,选择 kermit 方式发送要调试的BIN文件,界面如下:

 
发送完后会显示起始地址, 再运行 go 0x0c008000 (起始地址)就可以了。
4、上面程序只是在SDRAM中运行,所以需要把它拷贝到FLASH中,在第2步操作完成后,依次输入一下命令:
        S3C44B0 #protect off 0x0050000 0x1fffff   -关FLASH写保护
        S3C44B0 #erase 0x0050000 0x007ffff -擦除FLASH
        S3C44B0 #cp 0x0c008000 0x0050000 $(文件长度)
        S3C44B0 #setenv bootcmd cp 0x50000 0x 0c008000\;go 0x0c008000(设置启动顺讯)
这指出cp命令中第一个是RAM起始地址(0x0c008000)也是用户程序下载的地址,第二个是FLASH烧写的起始地址(0x0050000),最后是程序的长度。(长度单位是16进制的32位字,乘以 4 就可以得到16进制的字节数)。
5、完成第4步后,紧接着保存以上操作:
saveenv
6、关掉电源,再次重启,就可以看到自己的程序了正常运行了。
关键字:44b0  裸片  电路板  调试制作

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法