搜索
bottom↓
楼主: shaoziyang

AVR通用Bootloader

  [复制链接]

出0入0汤圆

发表于 2010-1-27 09:00:51 | 显示全部楼层
找不到更好的词语来顶这个帖子。酷 字在这个帖子面前也会变的黯然失色

出0入0汤圆

发表于 2010-2-1 09:20:21 | 显示全部楼层
请问下,我用M644下载了这个BL,下载完程序后显示升级成功,能够执行用户程序,通过串口看调试信息,发现程序不停复位,反复显示"等待接收密码","超时".请问这是什么原因? 是不是熔丝位还有需要设置的地方?

出0入0汤圆

发表于 2010-2-3 23:55:27 | 显示全部楼层
谢谢,学习了

出0入0汤圆

发表于 2010-2-8 11:53:50 | 显示全部楼层
顶顶!

出0入0汤圆

发表于 2010-2-8 14:07:39 | 显示全部楼层
make

出0入0汤圆

发表于 2010-2-12 13:25:16 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-2-12 14:41:53 | 显示全部楼层
想学,记号下

出0入0汤圆

发表于 2010-2-12 15:28:51 | 显示全部楼层
谢谢。顶一把!

出0入0汤圆

发表于 2010-2-12 21:11:18 | 显示全部楼层
入门中。。。mark之

出0入0汤圆

发表于 2010-2-14 19:40:40 | 显示全部楼层
谢谢!

出0入0汤圆

发表于 2010-2-23 09:24:19 | 显示全部楼层
xiexie

出0入0汤圆

发表于 2010-2-25 16:07:25 | 显示全部楼层
先顶,后下,再学!

出0入0汤圆

发表于 2010-2-25 17:38:32 | 显示全部楼层
MARK一下先

出0入0汤圆

发表于 2010-3-15 17:13:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-17 15:57:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-17 17:35:56 | 显示全部楼层
mark以后学习

出0入0汤圆

发表于 2010-3-19 15:52:26 | 显示全部楼层
根据楼主的资料,在ATMEGA644上应用成功,谢谢!!

出0入0汤圆

发表于 2010-3-20 16:45:57 | 显示全部楼层
好的  谢谢

出0入0汤圆

发表于 2010-3-20 18:19:59 | 显示全部楼层
回复【楼主位】shaoziyang
-----------------------------------------------------------------------

dddddddddddd

出0入0汤圆

发表于 2010-3-23 22:54:36 | 显示全部楼层
上位机软件加载ATMEGA32 HEX时出现如图错误,不知什么原因,希望楼主帮忙看下!

ERROR (原文件名:1.JPG)

出0入0汤圆

发表于 2010-3-24 00:49:37 | 显示全部楼层
芯片选择是不是有问题啊

出0入0汤圆

发表于 2010-3-24 00:50:16 | 显示全部楼层
代码量>8K了

出0入0汤圆

发表于 2010-3-25 10:25:29 | 显示全部楼层
我使用的是ATMEGA32的片子有32k flash,代码量应该没有问题吧!

出0入0汤圆

发表于 2010-3-25 12:38:32 | 显示全部楼层
搞定,原来是FLASH容量需要选择!

出0入0汤圆

发表于 2010-4-15 22:10:36 | 显示全部楼层
嘿好,黑强大!!

出0入85汤圆

发表于 2010-4-15 22:53:25 | 显示全部楼层
很强大!

出0入0汤圆

发表于 2010-4-15 23:12:43 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-4-18 10:46:42 | 显示全部楼层
不错

出0入0汤圆

发表于 2010-4-20 20:16:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-23 00:32:38 | 显示全部楼层
好贴

出0入0汤圆

发表于 2010-4-23 11:43:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-6 17:21:01 | 显示全部楼层
MARK

出0入50汤圆

发表于 2010-5-6 20:45:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-7 16:47:39 | 显示全部楼层
请问各位高手!我使用ATMega128单片机做在线升级出现如下问题:

在应用区读取应用区程序我使用如下函数是可以
unsigned char read_flash(long address)//从flash中读取一字节
{
  asm("mov r30,r16");
  asm("mov r31,r17");
  asm("out 0x3b,r18\n")         //zsy add it
  asm("lpm r16,z");
  //asm("elpm r16,z+");          //zsy add it
  //asm("ret");
}
擦出使用如下:
#if RUN_MODE==AP_MODE
#pragma abs_address:0XFC00   //绝对地址定位到boot区
#endif
//擦除(code=0x03)和写入(code=0x05)一个Flash页
void boot_page_ew(long p_address,char m_code)
{
    asm("mov r30,r16\n"
        "mov r31,r17\n"
        "out 0x3b,r18\n");         //将页地址放入Z寄存器和RAMPZ的Bit0中
    SPMCSR = m_code;                //寄存器SPMCSR中为操作码
    asm("spm ");                    //对指定Flash页进行操作 //(Z)<-R1:R0
}         
//填充Flash缓冲页中的一个字
void boot_page_fill(unsigned int address,int dat)
{
    asm("mov r30,r16\n"
        "mov r31,r17\n"             //Z寄存器中为填冲页内地址
        "mov r0,r18\n"
        "mov r1,r19\n");            //R0R1中为一个指令字
    SPMCSR = 0x01;
    asm("spm ");  //(Z)<-R1:R0
}
//等待一个Flash页的写完成
void wait_page_rw_ok(void)
{
      while(SPMCSR & 0x40)
     {
         while(SPMCSR & 0x01);
         SPMCSR = 0x11;
         asm("spm\n");         //(Z)<-R1:R0
     }
}
//更新一个Flash页的完整处理
void write_one_page(char *dat)
{
    unsigned int i;
    boot_page_ew(address,0x03);                    //擦除一个Flash页
    wait_page_rw_ok();                            //等待擦除完成
    for(i=0;i<SPM_PAGESIZE;i+=2)                //将数据填入Flash缓冲页中
    {
        boot_page_fill(i, dat+(dat[i+1]<<8));
    }
    boot_page_ew(address,0x05);                    //将缓冲页数据写入一个Flash页
    wait_page_rw_ok();                            //等待写入完成
}
#if RUN_MODE==AP_MODE
#pragma end_abs_address  //结束绝对地址定位
#endif
如果我要在应用程序运行时,擦写应用区的高64K怎么办啊!

出0入0汤圆

发表于 2010-5-7 17:11:03 | 显示全部楼层
你们多是咋boot进行操作的吧!

出0入0汤圆

发表于 2010-5-7 17:51:07 | 显示全部楼层
mark!!!

出0入0汤圆

发表于 2010-5-24 21:51:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-25 15:34:33 | 显示全部楼层
确实是个好东西啊,我使用过程中有一个不好的地方就是,如果使用RS485这种半双工的方式进行升级,那么每次联机时间将不固定,有的时候长有的时候短,建议楼主不要使用定时器进行操作,因为在半双工方式下,这种定时器的操作时不能同步的,很容易发生碰撞,我修改了一下,使用下面这种形式更加可靠,每次都可以在第一时间联机成功,我试过PC机软件上的基本时间间隔,从100MS--500MS都是一样的结果,感觉非常的爽,楼主不防试试,因为我把V4.5版本的有些注释直接拿掉了,所以在此不贴出全部代码,以下代码供大家参考。
//*********************************************
//串口启动Bootloader模式
  connect_timer_cnt=0;
  cl = 0;
  while((cl < CONNECTCNT))
  {
    wdt_reset();
    if(++connect_timer_cnt>0x4ffff) quit();//退出bootloader
    if(DataInCom())             //接收到连接密码
    {
      if(ReadCom() == ConnectKey[cl])  //比较密码
        cl++;
      else
        cl = 0;
    }
  }
  WriteCom(XMODEM_RWC) ;    //发送 "C"
//************************
//安全模式下,在EEPROM中设置标志位
#if SafeMode
  eeprom_write_byte((uint8_t *)FlagAddr, 0x1);
#endif
  connect_timer_cnt = 0;
  while(!DataInCom());{wdt_reset();if(++connect_timer_cnt>0x2ffff) quit();}
  if(ReadCom() != XMODEM_SOH)quit();
  wdt_reset();
  TCCR1B = 0;                   //关闭定时器1
  //开始接受数据

出0入0汤圆

发表于 2010-6-1 21:37:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-3 10:46:45 | 显示全部楼层
正在学这个,一头雾水。  多谢

出0入0汤圆

发表于 2010-6-3 11:10:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-8 15:13:16 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-8 16:55:42 | 显示全部楼层
Mark

出0入0汤圆

发表于 2010-6-10 12:05:49 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-6-10 13:14:15 | 显示全部楼层
回复【楼主位】shaoziyang
-----------------------------------------------------------------------

dddddddd

出0入0汤圆

发表于 2010-6-10 13:16:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-10 15:49:35 | 显示全部楼层
回复【楼主位】shaoziyang
-----------------------------------------------------------------------

ddddddddddd

出0入0汤圆

发表于 2010-6-15 10:53:14 | 显示全部楼层
好东西

出0入0汤圆

发表于 2010-6-25 15:07:18 | 显示全部楼层
确实不错,好像一写程序就把EEPROM也擦掉了啊

出0入0汤圆

发表于 2010-7-7 22:42:02 | 显示全部楼层
不错

出0入0汤圆

发表于 2010-7-20 12:20:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-20 12:58:52 | 显示全部楼层
这个世界还是有强人!

出0入0汤圆

发表于 2010-7-30 09:14:04 | 显示全部楼层
-----------------------------------------------------------------------

邵老师,你好,刚刚开始涉及这一块,有点不是很明白,下载了4.2版的BOOTLOADER程序,运用在ATMAGE128但是在AVR中编译成功的,设置也按说明上设置好了,BOOT起始地址设置为0XF000。但是模拟仿真的时候为什么跳不到MAIN程序路口。显示立即执行。停止后跳到Disassembler的0X7104的地址,在Disassembler中点复位就跳到0XF000路口。为什么。要是设置成AT168;AT32程序片就可以的仿真正常

出0入0汤圆

发表于 2010-7-30 10:11:33 | 显示全部楼层
好东西,mark.

出0入0汤圆

发表于 2010-7-30 10:25:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-30 11:18:47 | 显示全部楼层
问题解决了。是我的WINAVR的版本太低了,装了高版本就OK了

出0入0汤圆

发表于 2010-8-9 01:15:15 | 显示全部楼层
不顶不行啦,mark

出0入0汤圆

发表于 2010-8-12 19:38:58 | 显示全部楼层
早就想学习这个了,谢谢

出0入0汤圆

发表于 2010-8-17 16:07:33 | 显示全部楼层
要顶。

出0入0汤圆

发表于 2010-8-17 17:36:55 | 显示全部楼层
mark

出0入59汤圆

发表于 2010-8-17 18:22:44 | 显示全部楼层

出0入0汤圆

发表于 2010-8-17 19:22:31 | 显示全部楼层
记号!!

出0入0汤圆

发表于 2010-8-20 18:02:51 | 显示全部楼层
要是应用程序里面有用到eeprom,这个eep文件怎么用bootloader  下进去?

出0入0汤圆

发表于 2010-8-20 19:56:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-20 20:36:34 | 显示全部楼层
mark

出0入4汤圆

发表于 2010-9-2 11:01:33 | 显示全部楼层
可以改装一下,网络式的BOOTLOADER不知道现实否,485总线上的设备一站式升级

出0入0汤圆

发表于 2010-9-5 16:46:21 | 显示全部楼层
了解了解,学习学习

出0入0汤圆

发表于 2010-9-5 18:35:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-8 09:44:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-29 14:04:38 | 显示全部楼层
这个支不支持把自己的bootload程序写入?

出0入0汤圆

发表于 2010-10-31 20:24:41 | 显示全部楼层
MARK!~

出0入0汤圆

发表于 2010-10-31 20:46:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-31 21:45:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-31 21:48:14 | 显示全部楼层
AVR通用Bootloader

出0入0汤圆

发表于 2010-11-2 16:03:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-3 16:18:02 | 显示全部楼层
这个要好好的学习下了

出0入0汤圆

发表于 2010-11-3 17:41:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-3 20:02:13 | 显示全部楼层
好东西呀,mark.

出0入0汤圆

发表于 2010-11-14 20:07:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-14 20:56:50 | 显示全部楼层
好东西,MARK一下!

出0入0汤圆

发表于 2010-11-28 00:53:52 | 显示全部楼层
好东西,收藏

出0入0汤圆

发表于 2010-11-28 11:33:27 | 显示全部楼层
好东西
MARK

出0入0汤圆

发表于 2010-11-28 11:35:49 | 显示全部楼层
cool

出0入0汤圆

发表于 2010-11-28 12:12:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-4 12:09:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-6 18:00:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-7 21:10:13 | 显示全部楼层
谢谢分享,

出0入8汤圆

发表于 2010-12-9 23:59:21 | 显示全部楼层
做个记号 学习中

出0入0汤圆

发表于 2010-12-10 12:49:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-10 18:14:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-14 14:23:06 | 显示全部楼层
这样的好东西,肯定要顶起~

出0入0汤圆

发表于 2011-2-21 10:17:18 | 显示全部楼层
我用的是4.5版本的,芯片是64,可以下载,下载后运行时感觉程序运行的很慢,差不多像死机3秒然后运行一次程序,一直这样循环下去,求帮忙,

出0入0汤圆

发表于 2011-2-21 10:26:36 | 显示全部楼层
支持开源,Mark

出0入0汤圆

发表于 2011-2-21 10:47:48 | 显示全部楼层
好东西

出0入0汤圆

发表于 2011-2-24 16:37:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-26 23:53:47 | 显示全部楼层
谢谢楼主

出0入0汤圆

发表于 2011-3-3 23:14:50 | 显示全部楼层
找了好久了,终于找到了。

出0入0汤圆

发表于 2011-3-14 17:44:44 | 显示全部楼层
因为我的联机密码太简单,所以出问题了。。。

(原文件名:联机密码设置.JPG)

产品已经出去有半年多了,最近才发现这个问题。

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4610594&bbs_page_no=1&bbs_id=9999

出0入0汤圆

发表于 2011-3-14 19:57:38 | 显示全部楼层
mark

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-20 22:27

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

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