Chinaunix首页 | 论坛 | 博客
  • 博客访问: 857448
  • 博文数量: 213
  • 博客积分: 5048
  • 博客等级: 大校
  • 技术积分: 1883
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-14 10:14
文章分类

全部博文(213)

文章存档

2011年(4)

2010年(55)

2009年(47)

2008年(107)

我的朋友

分类: 嵌入式

2009-11-08 10:46:56

There are three options for programming an MSP430 flash device. All options
support in-system programming:
 Program via JTAG
 Program via the Bootstrap Loader
 Program via a custom solution
三种装载程序方便。
为了使用uart装载代码,又不想学习BSL,所以在我的msp430中都是使用自己编写的bootload。
bootload的主用就是通过uart把app代码装载到正确位置,真正有用代码是app代码。
我的bootload主要分为下面五部分:
1.汇编startup
2.msp430芯片初始化
3.等待uart按键,操作主要通过xmodem装载
4.一切芯片寄存器还原到bootload运行前
5.跳转到app代码起始地址。

汇编startup,这部分的主要工作:
初始化sp,把所有的中断地址指向ram中。bootload和app运行前先把中断拷贝到这部分ram中。这部分由于是startup程序,所以是汇编。

msp430芯片初始化,boot_init程序主要工作:
开看门狗(从此要注意喂狗)
把中断程序地址到拷贝到设置ram中
初始化系统时钟
初始化led指示灯
初始化计时器,flash,uart。
使能中断

等待按键,主要是等待u键,等待2s,按下就会调用xmodem协议,准备接收app代码。
xmodem可以参考http://blog.chinaunix.net/u2/66435/showart_2089201.html

还原寄存器,这是使得bootload和app独立。把app的中断向量表拷贝到ram中。

跳转到app的起始地址App_Startup()。
主要使用下面两个宏:
#define App_Reset   (*(volatile unsigned short *)0x03FE)
#define App_Startup (*(void (*)(void))App_Reset)
阅读(2318) | 评论(6) | 转发(0) |
0

上一篇:xmodem

下一篇:CRC

给主人留下些什么吧!~~

chinaunix网友2009-12-23 10:55:53

對啊,我是第一次做bootloader,所以真不知道從哪著手,感謝您的幫忙,我先好好k一下這份文件好了。^^

chinaunix网友2009-12-23 10:11:06

謝謝您提供的這個網站,內容講的很詳細。 那如果想找別人寫的430 bootloader的code,那裡可以下載得到呢? 用google找了很久,都只有找到TI的BSL相關文件,但就是沒有較完整的code。

chinaunix网友2009-12-23 09:15:37

控制nand flash這段的程序,平常有在接觸,所以比較沒問題。目前是不清楚自己寫bootloader要從何開始,可以參考什麼文件或code嗎?

chinaunix网友2009-12-22 18:27:39

對,我是透過GPIO連結nand flash。打算在原本的程式裡面加上一段程序,透過這個程序可以做韌體更新。請問我可以從哪裡開始呢,可以參考哪些文件呢?謝謝您。

chinaunix网友2009-12-22 14:18:23

您好,我是使用F149,如果想編寫自己的bootloader,要更新的firmware檔案是存在外部的nand flash中,可以做得到嗎?謝謝。