搜索
bottom↓
回复: 124

LPC2148像往U盘拷贝文件一样更新用户程序(包含源代码)

[复制链接]

出0入0汤圆

发表于 2009-4-7 23:05:19 | 显示全部楼层 |阅读模式
在网上爬行了很久才找到一个介绍USBMEM_BOOTLOADER的且有源代码的论坛,用KEIL 编译后结果不能运行,后来才找到问题的根源:
//usbhw.c
void USB_Init (void) {
  PINSEL1 &= ~0xC000C000;
//PINSEL1 |=  0x40004000;  //这是原来的程序
  PINSEL1 |=  0x80004000;     /* Select USB Link, VBUS */

原来得改一下才能用到我的板子上面。

另外,原来的程序是在复位时检测P0.15是否为低来判断是进入用户程序,还是USB IAP程序,我针对我的板子改了一下,我用了两个按钮来控制它,当按下P0.21的按钮时运行用户程序,当按下P0.22的按钮时则运行USB IAP程序:

首先要在sbl_config.h中做一下修改:

#define USER_START_SECTOR 2   //用户程序起始扇区
#define MAX_USER_SECTOR 26    //最大扇区    LPC2146是 14,LPC2148是26

#define ISP_ENTRY_GPIO_REG 0xE0028000                  /* Port */
#define ISP_ENTRY_PIN21            21          /* User Code Pin  */ //这里原来是 15
#define ISP_ENTRY_PIN22            22          /* USB IAP Pin  */  //这个是增加的

然后把sbl_iap.c里面的相关内容修改一下:

void check_isp_entry_pin(void)
{
while(1)
  {
    if(!( (*(volatile unsigned *)ISP_ENTRY_GPIO_REG) & (0x1<<ISP_ENTRY_PIN21)) )
        {
            execute_user_code(); break;
        }
        if(!( (*(volatile unsigned *)ISP_ENTRY_GPIO_REG) & (0x1<<ISP_ENTRY_PIN22)) )
        {
         break;   // Enter ISP mode
        }
  }
}

现在就可以来实验一下了:

usbmem程序的设置 (原文件名:USBMEM_1.JPG)
boot程序按照这个设置编译程序,要输出HEX文件,然后试用ISP工具将其下载到LPC2148中。
现在按一下复位按钮,按K1(P0.21)没有反应,因为现在还没有用户程序;按一下K2(P0.22),指示灯亮了,此时电脑会显示发现了新硬件:

电脑中出现了一个可移动磁盘 (原文件名:USBMEM_2.JPG)
打开这个磁盘,会发现里面有一个文件是492K,

得把这个文件删除掉才能拷贝入你自己的程序 (原文件名:USBMEM_3.JPG)
然后再编译用户程序,要把起始位置修改为0x2000;同时要输出BIN文件:(在user  run  写入fromelf --bin .\Flash\Blinky.axf -o .\Flash\Blinky.bin)把得到的BIN文件拷贝入空白的磁盘:

拷入用户程序 (原文件名:USBMEM_4.JPG)
按一下复位键,再按一下K1,就开始运行流水灯程序了。

点击此处下载 ourdev_433856.rar(文件大小:428K)USB IAP 程序 (原文件名:usbmem_bootloader.rar)

点击此处下载 ourdev_433857.rar(文件大小:134K)用户程序示例 (原文件名:User Code Sample Blinky.rar)

出0入0汤圆

发表于 2009-4-7 23:11:27 | 显示全部楼层
酷,,在系统编程IAP,mark

出0入0汤圆

发表于 2009-4-7 23:15:41 | 显示全部楼层
支持一下啊!!

出0入0汤圆

发表于 2009-4-8 00:00:45 | 显示全部楼层
原理说下呀,一直对iap半截

出0入22汤圆

发表于 2009-4-8 00:04:00 | 显示全部楼层
高级玩意,

出0入0汤圆

发表于 2009-4-8 00:16:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-4-8 00:31:08 | 显示全部楼层
这个太牛了吧....我的LPC2148马上拿出来试下....

出0入0汤圆

发表于 2009-4-8 01:12:07 | 显示全部楼层
高深

出0入0汤圆

 楼主| 发表于 2009-4-8 08:58:42 | 显示全部楼层
说实话,其实我也是刚刚才开始学习使用LPC2148的,这是从网上找的程序,我也只是做了一些小的改动,下图是我的开发板的图片,刚从淘宝买了一个周。觉得这个程序不错,就发上来大家看看。

(原文件名:lpc2148.JPG)
另外,我正在考虑用SD做程序存储器,思路是用读卡器将用户代码拷贝到SD卡里面,然后把SD卡插到目标板上,利用按键控制从中选择程序,下载到LPC2148中。这有点像是离线编程器。实际就是SD_IAP。不知道有没有有这方面经验的,也来说说看。

出0入0汤圆

发表于 2009-4-8 09:01:50 | 显示全部楼层
xuexi

出0入0汤圆

发表于 2009-4-8 09:06:23 | 显示全部楼层
我也正在学LPC2148..我用的也是这块板啊......

出0入0汤圆

 楼主| 发表于 2009-4-8 09:14:36 | 显示全部楼层
呵呵,好啊,那可以直接使用了。等会我再上传一个使用SD卡当U盘的例子,看看有没有使速度更快的办法。

出0入0汤圆

发表于 2009-4-8 09:15:07 | 显示全部楼层
我用的这也是这块板.....哈哈...

出0入0汤圆

发表于 2009-4-8 09:20:29 | 显示全部楼层
这个比较牛

出0入0汤圆

发表于 2009-4-8 09:24:55 | 显示全部楼层
楼主可是高手啊,

出0入0汤圆

发表于 2009-4-8 09:56:35 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2009-4-8 10:15:48 | 显示全部楼层
老孟说我是高手,可不敢当。对于ARM7来说,我也是地地道道的菜鸟,呵呵。

出0入0汤圆

发表于 2009-4-8 11:06:02 | 显示全部楼层
赞一个!
在顶一个!
o(∩_∩)o...哈哈
不错!

出0入0汤圆

发表于 2009-4-8 12:27:40 | 显示全部楼层
不错,学习一下。

出0入0汤圆

发表于 2009-4-8 12:41:32 | 显示全部楼层
非常不错的东西。
我正好手上的就是这个LPC2148的,哈哈。

害我多买了一个U*LIN-K,血出多了~

出0入0汤圆

发表于 2009-4-8 12:44:36 | 显示全部楼层
我想问一下,为什么编译的流水灯的BIN文件复制到I盘下的时候不见有固件了啊(第二图)?

还有,HEX文件可以直接下载运行吗?

出0入0汤圆

发表于 2009-4-8 18:22:13 | 显示全部楼层
支持一下

出0入0汤圆

 楼主| 发表于 2009-4-8 18:56:25 | 显示全部楼层
我想问一下,为什么编译的流水灯的BIN文件复制到I盘下的时候不见有固件了啊(第二图)?

  这个程序就是这样设计的,只要你的USB接口重新连接一次,你拷贝进去的文件就看不到了,但是只要你不重新往里拷贝程序,原来的程序还在。

还有,HEX文件可以直接下载运行吗?

不行,必须转换生成BIN文件。

出0入0汤圆

发表于 2009-4-8 19:15:16 | 显示全部楼层
我也买了这块板子~~

出0入0汤圆

发表于 2009-4-8 19:17:57 | 显示全部楼层
好资料,正好学习中,谢谢!

出0入0汤圆

发表于 2009-4-8 19:28:50 | 显示全部楼层
好东西啊~~mark

出0入0汤圆

发表于 2009-4-9 13:10:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-4-9 16:06:31 | 显示全部楼层
我晕。。HEX文件太大了后变成BIN就有问题好像。。。

出0入0汤圆

发表于 2009-4-9 16:48:18 | 显示全部楼层
我写了个很小的程序。。。用这个正常工作。。然后试我自己的大程序。。。BIN文件大约17K,,操作是一样的。就不行了。。。囧。。。

出0入0汤圆

发表于 2009-4-9 23:16:31 | 显示全部楼层
支持

出0入0汤圆

发表于 2009-4-9 23:26:52 | 显示全部楼层
恩, 方便的更新办法

出0入0汤圆

发表于 2009-4-10 09:38:31 | 显示全部楼层
不错

出0入0汤圆

发表于 2009-4-11 00:51:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-4-12 23:52:26 | 显示全部楼层
晕啊 我的是2138 不支持USB

出0入0汤圆

发表于 2009-4-29 10:18:39 | 显示全部楼层
试了一下确实非常方便,所以想顶上来!!!
不知道有没有DX有兴趣把这个项目移植到其他带USB带IAP的ARM7上去?比如STM32或者AT91SAM7S64?

出0入0汤圆

发表于 2009-4-29 10:32:15 | 显示全部楼层
好啊,路过

出0入0汤圆

发表于 2009-4-29 10:40:52 | 显示全部楼层
不错的东东,还没有学ARM ,支持一下

出0入0汤圆

发表于 2009-4-29 14:02:00 | 显示全部楼层
传说中的记号

出0入0汤圆

发表于 2009-4-29 15:03:44 | 显示全部楼层
感兴趣的DX们一起加加油啊,把这个项目移植到不同的带USB和IAP的ARM7上去!让开发变得更简单方便。STM32?AT91SAM7S64?。。。

出0入0汤圆

发表于 2009-5-31 22:25:36 | 显示全部楼层
记下来学习学习

出0入0汤圆

发表于 2009-6-1 15:10:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-6-1 16:23:50 | 显示全部楼层
厉害

出0入0汤圆

发表于 2009-6-1 16:40:52 | 显示全部楼层
好东西,

出0入0汤圆

发表于 2009-6-1 20:26:31 | 显示全部楼层
呵呵,公司下一步需要就是做这方面的工作

出0入0汤圆

发表于 2009-9-29 10:31:56 | 显示全部楼层
这个值得顶一下,标记

出0入0汤圆

发表于 2009-9-29 10:37:40 | 显示全部楼层
记号

出0入46汤圆

发表于 2009-9-29 10:56:06 | 显示全部楼层
不错,要是能改成2410的就更好了!

出0入4汤圆

发表于 2009-9-29 11:12:21 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-9-29 11:53:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-9-29 12:25:23 | 显示全部楼层
可惜了,我的芯片不是啊!

出0入0汤圆

发表于 2009-9-29 13:45:55 | 显示全部楼层
问下楼主,虚拟成U盘,电脑上要装驱动程序么??
谢!

出0入0汤圆

发表于 2009-9-29 23:01:12 | 显示全部楼层
牛b玩意啊

出0入0汤圆

发表于 2009-10-1 17:50:49 | 显示全部楼层
学习

出0入0汤圆

发表于 2009-10-2 10:12:59 | 显示全部楼层
和 usb mass storage的原理一样

出0入0汤圆

发表于 2010-3-8 23:07:27 | 显示全部楼层
赞一个!

出0入0汤圆

发表于 2010-3-12 09:06:55 | 显示全部楼层
这个用起来很酷啊,下载研究一下!

出0入0汤圆

发表于 2010-3-12 09:22:53 | 显示全部楼层
mark 下

出0入0汤圆

发表于 2010-3-28 23:37:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-2 16:58:37 | 显示全部楼层
看看这个东东

出0入0汤圆

发表于 2010-4-8 08:35:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-8 09:55:14 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-8 09:55:59 | 显示全部楼层
哈哈,学习学习~ 谢谢

出0入0汤圆

发表于 2010-4-8 10:05:16 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-8 11:13:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-8 12:03:32 | 显示全部楼层
晚上我也试试

出0入0汤圆

发表于 2010-4-24 21:15:04 | 显示全部楼层
人过留名。

出0入0汤圆

发表于 2010-4-24 21:37:56 | 显示全部楼层
mark下 备用 呵呵

出0入0汤圆

发表于 2010-4-25 10:07:22 | 显示全部楼层
很酷啊。。呵呵下载程序方便多了。

出0入0汤圆

发表于 2010-4-25 11:56:49 | 显示全部楼层
这个方法值得研究,mp3的拷贝升级文件到flash然后按特定键可以升级程序是不是这个原理

出0入0汤圆

发表于 2010-4-26 08:48:18 | 显示全部楼层
很好!

出0入4汤圆

发表于 2010-4-26 11:02:44 | 显示全部楼层
顶,希望更多的朋友研究这个

出0入0汤圆

发表于 2010-4-26 11:34:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-26 11:48:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-26 12:02:06 | 显示全部楼层
学习

出0入0汤圆

发表于 2010-5-2 21:46:49 | 显示全部楼层
记号~~

出0入0汤圆

发表于 2010-5-5 11:44:51 | 显示全部楼层
很强大!

出0入0汤圆

发表于 2010-5-5 11:52:25 | 显示全部楼层
学习了

出0入0汤圆

发表于 2010-5-12 12:26:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-10 12:28:56 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-10 14:38:13 | 显示全部楼层
此物貌似是NXP官网上御用的secondary USB bootloader
只要是带USB的好像都可以下到对应的bootloader,LPC17XX系列也有哈哈,有空试试

出0入0汤圆

发表于 2010-9-20 22:03:15 | 显示全部楼层
mark 学习了

出0入0汤圆

发表于 2010-9-20 22:27:12 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-9-21 08:06:43 | 显示全部楼层
頂,頂,頂!

出0入0汤圆

发表于 2010-9-21 09:24:21 | 显示全部楼层
mark!!

出0入0汤圆

发表于 2010-9-22 22:42:07 | 显示全部楼层
好方法

出0入264汤圆

发表于 2010-9-30 18:46:07 | 显示全部楼层
谢谢。

出0入0汤圆

发表于 2010-11-22 18:22:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-22 19:41:35 | 显示全部楼层
学习

出0入0汤圆

发表于 2010-11-22 22:12:42 | 显示全部楼层
学习

出0入0汤圆

发表于 2010-11-22 22:29:34 | 显示全部楼层
mark!

出0入0汤圆

发表于 2010-11-22 23:03:47 | 显示全部楼层
楼主高人,谢谢!!!

出0入0汤圆

发表于 2010-11-24 23:30:35 | 显示全部楼层
我也看看。

出0入0汤圆

发表于 2010-11-25 09:36:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-29 06:09:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-29 09:01:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-3 16:42:26 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-17 16:50:13 | 显示全部楼层
mark...

出0入0汤圆

发表于 2011-3-18 16:31:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-8 16:03:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-8 16:24:42 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 08:57

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表