搜索
bottom↓
回复: 626

AVR通用Bootloader

  [复制链接]

出0入0汤圆

发表于 2008-3-2 17:25:55 | 显示全部楼层 |阅读模式
(目前最新版本是v4.5)

基本介绍
========

这个程序的主要目的是为了提供一个具有通用性的 AVR Bootloader,不同型号的AVR单片机只需要修改一下几个简单的配置参数就可以直接使用了,不需要再修改主程序。因为现在网上流传的很多 Bootloader程序都是针对某个或几个特定型号的,在换用其它型号后,需要对程序进行较多的修改;而且很多Bootloader程序虽然实现了基本功能,但是存在着一些缺陷或隐患,或者使用起来不够方便,所以我写了这个程序。它是在网上流传的马潮老师的ATmega128 Bootloader程序的基础上,结合了我以前在PIC18单片机中使用Bootloader的一点经验,以及学习自AVR USB中一些使用宏定义的技巧,再经过多次优化和反复测试后得出的。

这个通用的Bootloader可以支持大部分具有自编程功能、带有Boot区和UART串口的AVR单片机(主要是Mega系列)。如果是多串口的单片机,可以任意选择使用其中的一个串口。程序支持RS232/RS485/RS422方式,如果程序稍加修改,也应当可以很容易的支持USI、SPI、I2C等接口。

整个Bootloader最大占用不到1K Word的空间。在最小情况下,占用的空间不到300 Word(具体占用空间的大小与单片机的型号、配置的参数、功能裁剪的多少以及程序的优化等级有关)。



主要特点
========
* 支持多种型号的AVR单片机
* 支持多串口的AVR单片机
* 支持RS232/RS485/RS422模式
* 支持多种通信波特率和时钟频率
* 自动计算波特率误差,如果波特率误差>2%,将给出错误提示
* 完全C语言编写,容易修改
* 代码高度优化,占用空间小
* 方便的功能裁剪,适应不同的要求
* 支持看门狗
* 支持使用LED指示升级状态
* 支持使用超级终端做为上位机下载软件
* 支持Flash写入校验
* 可以自定义用户程序区大小
* ...

更多内容请参考文件里带有的说明文档。

[4.5]
* 增加了安全升级模式

GCC源码
点击此处下载 ourdev_388493.zip(文件大小:27K) (原文件名:avrub_cn.zip)
上位机软件(Win32)
点击此处下载 ourdev_388494.zip(文件大小:341K) (原文件名:avrubd.zip)
上位机软件源码(Delphi7)
点击此处下载 ourdev_388495.zip(文件大小:139K) (原文件名:avrubd_src.zip)


[4.2]
* 增加了128/256位AES加密解密算法
* 修正了看门狗初始化的宏定义笔误
* 修正了LED初始化在某些情况下造成RS485错误的问题
* 优化了部分代码,减少了代码大小

上位机软件(Win32)
点击此处下载 ourdev_325785.zip(文件大小:341K) (原文件名:avrubd_v42.zip)

上位机软件源码(Delphi7)
点击此处下载 ourdev_325784.zip(文件大小:140K) (原文件名:avrubd_src_v42.zip)
(谢谢zxq6 小马哈帮助上传文件!)

GCC源码(中文版)
点击此处下载 ourdev_325322.zip(文件大小:26K) (原文件名:avrub_cn.zip)

GCC源码(英文版)
点击此处下载 ourdev_325323.zip(文件大小:25K) (原文件名:avrub_en.zip)

[V4.1]
* 修正了MCUSR宏定义的问题
* AVRUBD中一处缓冲区调用的错误
感谢seu gab发现并解决了这个问题

上位机软件(Win32)
点击此处下载 ourdev_285382.zip(文件大小:338K) (原文件名:avrubd.zip)
上位机软件源码(Delphi7)
点击此处下载 ourdev_285383.zip(文件大小:134K) (原文件名:avrubd_src.zip)
GCC源码(中文版)
点击此处下载 ourdev_285384.zip(文件大小:23K) (原文件名:avrub_cn.zip)
GCC源码(英文版)
点击此处下载 ourdev_285385.zip(文件大小:21K) (原文件名:avrub_en.zip)

此外Jerry Jacobs建立了一个Linux下的上位机下载软件的项目, 因为我没有使用Linux, 所以请有条件的网友试用一下并提出意见.
http://code.google.com/p/avr-ub/

[V4.0]
* 增加了128/256位PC1加密解密算法
* 修正了一个下载大文件时出错的问题

GCC源码(中文版)ourdev_271222.zip(文件大小:23K) (原文件名:avrub_cn.zip)
GCC源码(英文版)ourdev_271223.zip(文件大小:21K) (原文件名:avrub_en.zip)
上位机软件ourdev_271224.zip(文件大小:338K) (原文件名:avrubd.zip)
上位机软件源码(Delphi7)ourdev_271225.zip(文件大小:133K) (原文件名:avrubd_src.zip)


[V3.5版]
AVR通用Bootloader中文版:点击此处下载ourdev_229535.zip(文件大小:21K)
AVR通用Bootloader英文版:点击此处下载ourdev_229436.zip(文件大小:19K)
AVR通用Bootloader上位机软件:点击此处下载ourdev_229437.zip(文件大小:330K)
AVR通用Bootloader上位机软件源代码(Delphi7):点击此处下载ourdev_229438.zip(文件大小:124K)


[V3.2版]
AVR通用Bootloader中文版:点击此处下载ourdev_222855.zip(文件大小:41K)
AVR通用Bootloader英文版:点击此处下载ourdev_222856.zip(文件大小:39K)
AVR通用Bootloader上位机软件(带有中文帮助):点击此处下载ourdev_222857.zip(文件大小:477K)
AVR通用Bootloader上位机软件源代码(Delphi7):点击此处下载ourdev_222858.zip(文件大小:239K)

AVR通用Bootloader中文使用教程:点击此处打开ourdev_222859.pdf(文件大小:405K)
特别感谢网友stephon1编写此中文教程


AVR通用Bootloader英文使用教程:
http://www.scienceprog.com/testing-avr-universal-bootloader-on-atmega128/

出0入0汤圆

发表于 2008-3-2 17:37:00 | 显示全部楼层
这个不错啊   多谢分享
头像被屏蔽

出0入0汤圆

发表于 2008-3-2 18:25:59 | 显示全部楼层
谢谢。顶!

出0入0汤圆

发表于 2008-3-2 22:08:27 | 显示全部楼层
好东西啊,谢谢楼主

出0入0汤圆

发表于 2008-3-2 22:10:54 | 显示全部楼层
非常感谢,我正在找这方面的资料。

出0入0汤圆

发表于 2008-3-2 22:16:51 | 显示全部楼层
不错!

出0入0汤圆

发表于 2008-3-3 20:05:45 | 显示全部楼层
好东西!需要好好看看!

出0入50汤圆

发表于 2008-3-4 19:10:48 | 显示全部楼层
哇赛,天底下还有这么好的东东啊:)

一定要顶!感谢楼主啦!

出0入22汤圆

发表于 2008-3-4 19:18:02 | 显示全部楼层
顶,昨天刚刚测试通过了m16,在楼主帮助文件的指导下,2次通过。

出0入0汤圆

发表于 2008-3-4 19:27:54 | 显示全部楼层
计划用在产品中,谢谢楼主!

出0入0汤圆

发表于 2008-3-4 19:28:12 | 显示全部楼层
好东西

出0入0汤圆

发表于 2008-3-13 08:27:43 | 显示全部楼层
下了3.5,顶一下

出0入0汤圆

发表于 2008-3-13 09:39:29 | 显示全部楼层
顶!m32中已使用

顺便问问,大家Boot 锁定位是怎么编程的?
我一般是BLB1模式3(0.0),BLB0模式4(0.1)。

出0入0汤圆

发表于 2008-3-14 10:45:25 | 显示全部楼层
我需要1280 2560的啊

出0入0汤圆

发表于 2008-3-14 11:14:00 | 显示全部楼层
顶啊

出0入8汤圆

发表于 2008-3-14 15:09:40 | 显示全部楼层
好东西,留个记号!!

出0入0汤圆

发表于 2008-3-14 16:05:14 | 显示全部楼层
好东西,谢谢分享!

出0入0汤圆

发表于 2008-3-19 17:09:25 | 显示全部楼层
记号,谢谢分享

出0入0汤圆

发表于 2008-3-19 23:14:21 | 显示全部楼层
非常好,正在找,准备用到我们的一个产品中.谢谢楼主.

出0入0汤圆

发表于 2008-3-20 10:03:45 | 显示全部楼层
一直跟进中....,谢了

出0入0汤圆

发表于 2008-3-20 10:16:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-3-20 11:45:04 | 显示全部楼层
太好,谢谢!

出0入0汤圆

发表于 2008-3-25 08:35:37 | 显示全部楼层
太好了,谢谢。

出0入0汤圆

发表于 2008-3-26 23:48:26 | 显示全部楼层
算然已经工作了,但在bootloader方面了解的并不多,謝謝shaoziyang ,只从有了网络我就认为网上的东西只是索取,付出与否并不重要,但在我发现了ouravr以后,这种观点渐渐有了改变,到现在,我感觉自己已经成为了我们网站的一个成员,就好像是一家人一样,只要是在电脑旁我都会每天浏览我们的论坛,无论是业界高手还是稚嫩的新手,能在这样一方空间相互交流,单单这种做法就是一种享受!在每天的工作之后,轻松的浏览我们的网页,似乎这都成了习惯!谢谢站长,也谢谢shaoziyang ,我代表喜欢我们这个家园的所有主人说声:我爱你Ouravr!

出0入0汤圆

 楼主| 发表于 2008-3-28 10:16:14 | 显示全部楼层
谢谢hmqxj的支持。在技术飞速更新的时代,保守只会使自己固步自封,交流才会使大家一起提高。

出0入0汤圆

发表于 2008-4-18 11:51:12 | 显示全部楼层
好东东,顶一下!!

出0入0汤圆

发表于 2008-4-18 12:42:28 | 显示全部楼层
谢谢

出0入0汤圆

发表于 2008-4-26 11:55:57 | 显示全部楼层
好用,谢谢!

出0入0汤圆

发表于 2008-4-26 12:30:10 | 显示全部楼层
留着了

出0入0汤圆

发表于 2008-4-26 12:31:40 | 显示全部楼层
顶,收藏了

出0入0汤圆

发表于 2008-4-29 13:52:36 | 显示全部楼层
谢谢楼主

出0入0汤圆

发表于 2008-4-29 14:16:57 | 显示全部楼层
留个记号

出0入0汤圆

发表于 2008-4-29 14:31:11 | 显示全部楼层
收藏,谢谢!

出0入0汤圆

发表于 2008-4-30 09:27:54 | 显示全部楼层
好好研究一下

出0入0汤圆

发表于 2008-5-8 23:18:22 | 显示全部楼层
好东西,又更新了,顶

出0入0汤圆

发表于 2008-5-8 23:40:25 | 显示全部楼层
谢谢

出0入0汤圆

发表于 2008-5-9 01:02:22 | 显示全部楼层
都下载下来了。谢谢!

出0入0汤圆

发表于 2008-5-9 17:13:30 | 显示全部楼层
顶啊!
希望能有更多人来用

出0入0汤圆

发表于 2008-5-12 17:53:55 | 显示全部楼层
正好用上,谢谢lz

出0入0汤圆

发表于 2008-5-20 18:00:06 | 显示全部楼层
楼主牛B!多谢了。。

出0入0汤圆

发表于 2008-5-24 21:51:17 | 显示全部楼层
不错
收藏了
谢谢楼主!!!

出75入0汤圆

发表于 2008-6-5 19:25:46 | 显示全部楼层
站位,

出0入0汤圆

发表于 2008-6-13 14:54:12 | 显示全部楼层
good

出0入0汤圆

发表于 2008-6-13 21:29:22 | 显示全部楼层
谢谢,学习

出0入0汤圆

发表于 2008-6-13 23:06:02 | 显示全部楼层
顶一个,呵呵

出0入0汤圆

发表于 2008-6-14 00:19:37 | 显示全部楼层
顶一个!

出0入0汤圆

发表于 2008-6-14 16:30:56 | 显示全部楼层
标记

出0入0汤圆

发表于 2008-6-15 11:44:06 | 显示全部楼层
太好了,很方便,谢谢LZ

出0入0汤圆

发表于 2008-6-15 20:42:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-6-19 15:33:52 | 显示全部楼层
4.1 版本放在哪里呢  ???

出0入0汤圆

发表于 2008-6-20 09:41:18 | 显示全部楼层
好东东,不要沉下去

出0入0汤圆

发表于 2008-6-23 09:28:59 | 显示全部楼层
正好要用,谢谢lz

出0入0汤圆

发表于 2008-6-23 12:09:34 | 显示全部楼层
顶一下

出0入0汤圆

发表于 2008-6-28 23:20:52 | 显示全部楼层
不错,下了备用,谢谢

出0入0汤圆

发表于 2008-7-15 12:19:59 | 显示全部楼层
顶!

出0入0汤圆

发表于 2008-7-25 09:45:46 | 显示全部楼层

出0入0汤圆

发表于 2008-7-27 16:47:36 | 显示全部楼层
问下

//Bootloader触发模式  0:串口  1:电平
#define LEVELMODE          0

#define LEVELPORT          D
#define LEVELPIN           PD7
//触发电平 1:高  0:低
#define PINLEVEL           0



//这个是干嘛的 ?  看了几个版本 都不一样啊  

#define LEVELPORT          D
#define LEVELPIN           PD7
//触发电平 1:高  0:低
#define PINLEVEL           0

出0入0汤圆

发表于 2008-7-27 19:01:03 | 显示全部楼层
OK了

出0入0汤圆

发表于 2008-7-27 19:43:39 | 显示全部楼层
带AES256bit的编译后占多大ROM?

出0入0汤圆

发表于 2008-7-27 21:08:17 | 显示全部楼层
留个记号!!

出0入0汤圆

发表于 2008-7-27 21:38:26 | 显示全部楼层
反映一个问题:当使用4.2版的上位机软件AVRUBD时发现一个问题,当需下载的程序量很小时会报Floating point divison by zero!错误。而下比较的程序时却没有这个问题,我使用的是MEGA128,RS485方式。

出0入0汤圆

 楼主| 发表于 2008-7-28 09:07:16 | 显示全部楼层
To 58楼,编译后的大小与芯片的型号、编译器的版本有关。但是肯定在4KB之内。使用AES时,winavr20071221编译器编译的代码比winavr20080610小200多字节。如果希望AES编译后小于2KB,需要去掉中断向量表。

To 60楼,这个问题我在仔细检查一下,最好可以提供一个参考的文件。

出0入0汤圆

发表于 2008-7-31 17:43:07 | 显示全部楼层
发现上位机源代码4.2版的在DELPHI里面加载后缺东西啊。

(原文件名:tt1.jpg)
请教如何在DELPHI7里面能成功编译那个源代码?

出0入0汤圆

发表于 2008-8-1 11:00:40 | 显示全部楼层
留个记号

出0入0汤圆

发表于 2008-8-1 16:27:17 | 显示全部楼层
今天在M128上的小程序已经通过,感谢感谢
但是大的程序还没通过
我有一个问题想请教一下:
假如我用bootloader下栽程序正在运行,怎么样才能用bootloader更新程序?
需要在我的应用程序里加什么语句吗?

出0入0汤圆

发表于 2008-8-1 16:53:21 | 显示全部楼层
LS
我用在M8力也通过了,非常不错
我的思路是:自动更新时  在我的程序里如果收到联机密码(联机密码需要复杂点) 马上就自动进入死循环(开启看门狗 1s钟定时),然后看门狗溢出复位,进入bootloader(还没试验过,正在改程序,还不知道看门狗复位会不会进入bootloader),
然后bootloader程序收到联机密码 就可以自动升级咯

出0入0汤圆

 楼主| 发表于 2008-8-1 20:37:20 | 显示全部楼层
To 62 楼:TGauge是标准的Delphi控件,在Sample组下面,对应的控件文件是dclsmp70.bpl。可能你安装的是简化版,完整版中包含有这个文件。

To 64楼:65楼的思路是正确的,我一般也是这么做的。使能BOOTRST熔丝位后,单片机复位时就会先进入Bootloader。在avrubd中有一个选项,就是在发送联机密码前先发送复位命令,就是干这个用的。也可以不等待看门狗复位,直接跳转到Bootloader程序。比如:

(*((void(*)(void))BootStart))();

上面BootStart就是Bootloader程序的入口地址,比如0x3800.

出0入0汤圆

发表于 2008-8-2 10:56:24 | 显示全部楼层
感谢楼主,BOOTLOADER,调试过了
请教,假如联机密码修了,在单片机程序怎样修改联机密码?

出0入0汤圆

发表于 2008-8-2 16:54:40 | 显示全部楼层
to 【66楼】 shaoziyang
您好!
问一下 BOOTLOADER 上位机软件编译问题 我所有的组件都装好了,打开也没有提示哪个组件找不到
编译也成功了 但是运行的时候 出现如下错误提示:

注:程序代码没有任何更改


(原文件名:ERROR1.JPG)


(原文件名:ERROR2.JPG)

经过设置断点跟踪,发现主界面的创建出现问题,好像式 mmoHEX这个控件创建出了问题
但是组件TsnyMemo 安装应该是没有问题的,应为我从新创建一个应用程序 ,放上此控件,编译和运行式正常的

出现上面的错误提示后 点击确定,然后强制再次接着运行,又出现如下错误提示,然后自动关闭了

(原文件名:ERROR3.jpg)


(原文件名:ERROR4.jpg)

出0入0汤圆

发表于 2008-8-2 17:02:01 | 显示全部楼层
不从DELPHI7运行,而直接打开编译出来的执行文件,也会出现最后一个错误提示。
后来发现,自己编译的程序有1.18M 而 邵老师那里下载来的程序文件却只有349KB.

出0入0汤圆

 楼主| 发表于 2008-8-2 20:28:24 | 显示全部楼层
To 【67楼】 lcqqcl,计算机的联机密码必须是和单片机中一致的。一般是先确定单片机程序的参数,然后再设置计算机的通信参数。反过来当然也行,但是参数必须是对应一致的,不如就会产生错误。


不知道是不是HEX控件版本的问题。不同版本的控件有时因为缺少一些属性造成问题。下面是我使用的HEX控件,已经在Delphi7中编译。

我编译的文件也有1M多,为了减少下载的时间,用upx进行了压缩,所以看起来比较小。

HexEdit控件ourdev_366813.zip(文件大小:93K) (原文件名:HexEdit.zip)

出0入0汤圆

发表于 2008-8-3 14:57:38 | 显示全部楼层
根据错误提示 右问题的是名字为   memohex控件 它是属于TsnyMemo   而不是 HexEdit
按提示所说是可能memohex的 rightedge 属性不存在;我下载的是http://synedit.sourceforge.net上的最新版本SynEdit-2_0_6.zip  Mirror

出0入0汤圆

发表于 2008-8-3 15:14:32 | 显示全部楼层
在家里电脑上已编译通过 可以运行了 发图庆贺 以下是运行效果图

(原文件名:未命名.JPG)


一样控件 就是不知道为什么 在公司的电脑上编译后运行就是出错

出0入0汤圆

 楼主| 发表于 2008-8-3 21:17:20 | 显示全部楼层
需要将原有控件完全删除后,再次安装才能成功。否则可能还是旧文件,造成编译失败。

出0入0汤圆

发表于 2008-8-6 09:38:07 | 显示全部楼层
请问搂主有关AES 的问题,我有试用你的软件,发现同样的 明文数据块 经过你的程序加密后出来不同的 密文数据块,而这个特点非常有利于MCU 中未使用数据空间的填充数据 或 相同数据块 的隐蔽操作,但我很是困惑,因为我的程序只调用MCU 厂家写的标准AES 程序(我拿来与AES 规格资料上的程序对比过,发现是程序写法功能是一样的),其执行结果是:同样的 明文数据块 经过你的程序加密后而是出来相同的 密文数据块,而你的程序中使用了PC1, AES 两种加解密算法,是否你的程序结果是两种加密算法的结合出来的,而单独使用AES 算法就是出我的程序的结果。AES 算法的资料也找了一些来看,但还未理解到上述问题的原因,还望楼主指教!
另外如果真是PC1 算法加入的贡献,请问哪里有这个算法的介绍吗?我现在只找到了其代码,而像AES 那样的算法说明文件没有找到。
心里在想,AES 的算法这么高深,如果真是同样的 明文数据块 出 同样的密文,那不是相当于一个复杂化了的 XOR 运算了。
看到资料上有个 密钥调度表 的概念,是否在加解密过程中,每个数据块使用的密钥是按一定的顺序性取得 扩展密钥中的一部分,而解密就利用逆序 取得密钥?

出0入0汤圆

发表于 2008-8-6 10:05:27 | 显示全部楼层
谢谢楼主,收藏下!

出0入0汤圆

发表于 2008-8-8 13:53:51 | 显示全部楼层
留个脚印

出0入0汤圆

发表于 2008-8-16 01:58:07 | 显示全部楼层

出0入0汤圆

发表于 2008-8-26 19:40:01 | 显示全部楼层
MARK

出0入0汤圆

发表于 2008-9-3 08:53:01 | 显示全部楼层
请问:bootloader下载到Boot Flash中的大小,最大为1K吗?如果超出1K怎么办?

出0入0汤圆

 楼主| 发表于 2008-9-5 22:49:13 | 显示全部楼层
Boot区的大小与单片机型号有关,Mega8有2K,Mega128有8K。同时在熔丝位中,可以选择4种不同大小的Boot区。

出0入0汤圆

发表于 2008-9-9 10:18:40 | 显示全部楼层
好东西啊,谢谢楼主

出0入0汤圆

发表于 2008-9-9 19:50:43 | 显示全部楼层
我怎么不行啊,晕死。
下面是我的操作步骤:
1、在AVR STUDION 新建工程,添加bootldr.c、bootldr.h、bootcfg.h三个文件到项目中。
2、打开AVRUBD,选择M8,点推荐,点创建。
3、在AVR STUDIO 窗口下,编译文件,用SLISP烧写程序。
然后就观察到,led闪烁。
4、AVRUBD载入HEX文件(选择一个简单的HEX文件,控制LED闪烁)。
在窗口看到;发送联机密码:64
  发送10次后,联机失败。
是哪里有问题啊。搞很久了,是我哪里设置不对吗?

出0入0汤圆

发表于 2008-9-10 08:01:54 | 显示全部楼层

出0入0汤圆

发表于 2008-12-5 16:19:31 | 显示全部楼层
好资料,下载研究研究后发现有个疑问:对于ATmega48的bootloader应该怎么处理?

出0入0汤圆

 楼主| 发表于 2008-12-9 08:44:32 | 显示全部楼层
ATmega48没有专门的boot区,不能直接使用avrub。

出0入0汤圆

发表于 2008-12-9 09:08:35 | 显示全部楼层
得好好看看

出0入0汤圆

发表于 2008-12-20 13:31:20 | 显示全部楼层
能否将CPort, SynEdit传上来,谢谢!



本贴被 Joyce 编辑过,最后修改时间:2008-12-20,16:58:50.

出0入0汤圆

发表于 2008-12-21 17:10:45 | 显示全部楼层
已经将delphi写的上位机改成用VC写的,应用在我的LED点阵屏控制卡上了,非常好有,严重感谢楼主,另外程序中用到的CRC16的校验法很好,不但起到校验作用还起到检验通信是否正常,谢谢!

出0入0汤圆

发表于 2008-12-21 19:16:04 | 显示全部楼层
好东西……

出0入0汤圆

发表于 2008-12-21 22:21:29 | 显示全部楼层
试一试

出0入0汤圆

发表于 2008-12-30 16:15:24 | 显示全部楼层
请问显示这个错误是怎么回事啊??

 (原文件名:New Bitmap Image.JPG) 

出0入0汤圆

 楼主| 发表于 2008-12-31 21:28:05 | 显示全部楼层
你选择的单片机型号是Mega8,但是没有PORTA。默认LED使用了PA4,这是Mega169的设置,你需要修改一下。

出0入0汤圆

发表于 2009-1-13 17:54:35 | 显示全部楼层
好东西正想学.

出0入0汤圆

发表于 2009-2-21 22:13:31 | 显示全部楼层
没有问题的,问题是你没有认真看源代码,看懂源代码就会解决问题,那来这么多问题啊!问题都是来源于自身!

出0入0汤圆

发表于 2009-2-22 12:17:59 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-3-3 14:37:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-3-3 15:55:51 | 显示全部楼层
支持一个,以后用得着,哈哈

出0入0汤圆

发表于 2009-3-3 16:48:32 | 显示全部楼层
mark!

出0入0汤圆

发表于 2009-3-3 17:29:46 | 显示全部楼层
这个要顶了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-6-26 00:10

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

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