175891641 发表于 2010-1-27 09:00:51

找不到更好的词语来顶这个帖子。酷 字在这个帖子面前也会变的黯然失色

belial 发表于 2010-2-1 09:20:21

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

jinpoiu 发表于 2010-2-3 23:55:27

谢谢,学习了

miminzhang 发表于 2010-2-8 11:53:50

顶顶!

sky1234567 发表于 2010-2-8 14:07:39

make

jiangping_hbhm 发表于 2010-2-12 13:25:16

mark

yark 发表于 2010-2-12 14:41:53

想学,记号下

bkkman 发表于 2010-2-12 15:28:51

谢谢。顶一把!

dubu 发表于 2010-2-12 21:11:18

入门中。。。mark之

luld 发表于 2010-2-14 19:40:40

谢谢!

hexixiaomao 发表于 2010-2-23 09:24:19

xiexie

xslff 发表于 2010-2-25 16:07:25

先顶,后下,再学!

crose0106 发表于 2010-2-25 17:38:32

MARK一下先

relotus 发表于 2010-3-15 17:13:50

mark

liitom 发表于 2010-3-17 15:57:50

mark

jielove2003 发表于 2010-3-17 17:35:56

mark以后学习

liuyongqiao 发表于 2010-3-19 15:52:26

根据楼主的资料,在ATMEGA644上应用成功,谢谢!!

liyfmc 发表于 2010-3-20 16:45:57

好的谢谢

hongyancl 发表于 2010-3-20 18:19:59

回复【楼主位】shaoziyang
-----------------------------------------------------------------------

dddddddddddd

ITOP 发表于 2010-3-23 22:54:36

上位机软件加载ATMEGA32 HEX时出现如图错误,不知什么原因,希望楼主帮忙看下!
http://cache.amobbs.com/bbs_upload782111/files_27/ourdev_540559.JPG
ERROR (原文件名:1.JPG)

ppsen 发表于 2010-3-24 00:49:37

芯片选择是不是有问题啊

ppsen 发表于 2010-3-24 00:50:16

代码量>8K了

ITOP 发表于 2010-3-25 10:25:29

我使用的是ATMEGA32的片子有32k flash,代码量应该没有问题吧!

ITOP 发表于 2010-3-25 12:38:32

搞定,原来是FLASH容量需要选择!

smartzou 发表于 2010-4-15 22:10:36

嘿好,黑强大!!

bluefeel 发表于 2010-4-15 22:53:25

很强大!

809314596 发表于 2010-4-15 23:12:43

MARK

hanhuliang 发表于 2010-4-18 10:46:42

不错

sangreal 发表于 2010-4-20 20:16:40

mark

cqfeiyu 发表于 2010-4-23 00:32:38

好贴

Spunky 发表于 2010-4-23 11:43:33

mark

catzl7 发表于 2010-5-6 17:21:01

MARK

span42 发表于 2010-5-6 20:45:31

mark

zsyjacky 发表于 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<<8));
    }
    boot_page_ew(address,0x05);                  //将缓冲页数据写入一个Flash页
    wait_page_rw_ok();                            //等待写入完成
}
#if RUN_MODE==AP_MODE
#pragma end_abs_address//结束绝对地址定位
#endif
如果我要在应用程序运行时,擦写应用区的高64K怎么办啊!

zsyjacky 发表于 2010-5-7 17:11:03

你们多是咋boot进行操作的吧!

jj.deng 发表于 2010-5-7 17:51:07

mark!!!

xuejianhua1986 发表于 2010-5-24 21:51:27

mark

gaoqiru 发表于 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++;
      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
//开始接受数据

liuhongyu 发表于 2010-6-1 21:37:27

mark

tjpu__224 发表于 2010-6-3 10:46:45

正在学这个,一头雾水。多谢

fy024 发表于 2010-6-3 11:10:18

mark

xrhpcb 发表于 2010-6-8 15:13:16

mark

huntermax110 发表于 2010-6-8 16:55:42

Mark

zztbb868 发表于 2010-6-10 12:05:49

记号

hongyancl 发表于 2010-6-10 13:14:15

回复【楼主位】shaoziyang
-----------------------------------------------------------------------

dddddddd

zgcumt 发表于 2010-6-10 13:16:59

mark

hongyancl 发表于 2010-6-10 15:49:35

回复【楼主位】shaoziyang
-----------------------------------------------------------------------

ddddddddddd

luojiyin 发表于 2010-6-15 10:53:14

好东西

gaoqiru 发表于 2010-6-25 15:07:18

确实不错,好像一写程序就把EEPROM也擦掉了啊

lijie1116 发表于 2010-7-7 22:42:02

不错

angle11 发表于 2010-7-20 12:20:46

mark

sunmy 发表于 2010-7-20 12:58:52

这个世界还是有强人!

sabrinax 发表于 2010-7-30 09:14:04

-----------------------------------------------------------------------

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

xjmlfm1 发表于 2010-7-30 10:11:33

好东西,mark.

diyer_zhou 发表于 2010-7-30 10:25:13

mark

sabrinax 发表于 2010-7-30 11:18:47

问题解决了。是我的WINAVR的版本太低了,装了高版本就OK了

asusy 发表于 2010-8-9 01:15:15

不顶不行啦,mark

zyw19987 发表于 2010-8-12 19:38:58

早就想学习这个了,谢谢

lbhj310 发表于 2010-8-17 16:07:33

要顶。

zhouting928 发表于 2010-8-17 17:36:55

mark

sonna 发表于 2010-8-17 18:22:44

lv998127 发表于 2010-8-17 19:22:31

记号!!

liuzhen526 发表于 2010-8-20 18:02:51

要是应用程序里面有用到eeprom,这个eep文件怎么用bootloader下进去?

ljt8015 发表于 2010-8-20 19:56:40

mark

heyking 发表于 2010-8-20 20:36:34

mark

electricit 发表于 2010-9-2 11:01:33

可以改装一下,网络式的BOOTLOADER不知道现实否,485总线上的设备一站式升级

kanhai2222 发表于 2010-9-5 16:46:21

了解了解,学习学习

fshunj 发表于 2010-9-5 18:35:41

mark

relotus 发表于 2010-9-8 09:44:04

mark

hetiger 发表于 2010-10-29 14:04:38

这个支不支持把自己的bootload程序写入?

ljt8015 发表于 2010-10-31 20:24:41

MARK!~

likeavr 发表于 2010-10-31 20:46:20

mark

jielove2003 发表于 2010-10-31 21:45:36

mark

huilai 发表于 2010-10-31 21:48:14

AVR通用Bootloader

chjf 发表于 2010-11-2 16:03:05

mark

danielzhuang 发表于 2010-11-3 16:18:02

这个要好好的学习下了

285676818 发表于 2010-11-3 17:41:40

mark

jiaweijing 发表于 2010-11-3 20:02:13

好东西呀,mark.

pursuer99 发表于 2010-11-14 20:07:47

mark

58180698 发表于 2010-11-14 20:56:50

好东西,MARK一下!

gtzhangzr 发表于 2010-11-28 00:53:52

好东西,收藏

yinglively 发表于 2010-11-28 11:33:27

好东西
MARK

wenfeiexe 发表于 2010-11-28 11:35:49

cool

avrwoo 发表于 2010-11-28 12:12:49

mark

abcrazy 发表于 2010-12-4 12:09:45

mark

lanbin 发表于 2010-12-6 18:00:48

mark

wuhuijie 发表于 2010-12-7 21:10:13

谢谢分享,

haiyu 发表于 2010-12-9 23:59:21

做个记号 学习中

avr-job 发表于 2010-12-10 12:49:24

mark

wpnx 发表于 2010-12-10 18:14:32

mark

superwolf.sc 发表于 2011-1-14 14:23:06

这样的好东西,肯定要顶起~

winet 发表于 2011-2-21 10:17:18

我用的是4.5版本的,芯片是64,可以下载,下载后运行时感觉程序运行的很慢,差不多像死机3秒然后运行一次程序,一直这样循环下去,求帮忙,

gtzhangzr 发表于 2011-2-21 10:26:36

支持开源,Mark

rafd 发表于 2011-2-21 10:47:48

好东西

tick 发表于 2011-2-24 16:37:34

mark

huangrui 发表于 2011-2-26 23:53:47

谢谢楼主

haolaishi 发表于 2011-3-3 23:14:50

找了好久了,终于找到了。

liuyongqiao 发表于 2011-3-14 17:44:44

因为我的联机密码太简单,所以出问题了。。。
http://cache.amobbs.com/bbs_upload782111/files_37/ourdev_622429JH41R2.JPG
(原文件名:联机密码设置.JPG)

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

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

yywin 发表于 2011-3-14 19:57:38

mark

muzheyun 发表于 2011-3-15 16:09:09

mark
页: 1 2 [3] 4 5 6 7
查看完整版本: AVR通用Bootloader