搜索
bottom↓
回复: 35

AVR32 例程1 helloworld

[复制链接]

出0入0汤圆

发表于 2007-11-11 20:43:15 | 显示全部楼层 |阅读模式
AVR32是性能相当强劲的芯片,具体情况,可参考我以前发过的帖子
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=834950&bbs_page_no=1&search_mode=3&search_text=kingofkings&bbs_id=9999
或者到官网上查看
http://www.atmel.com/products/AVR32/
我的例子基于NGW100,所以一个好的工具是学习AVR32的前提……

言归正传
这个例子是最简单的hello_world你只能从中知道你的系统是运行正常的,不涉及任何底层硬件,仅仅用于熟悉一个简单的程序开发过程,你也可以在AVR32studio上找到相类似的例子,我只是表达得更加容易理解一点……

AVR32studio针对AP7系列主要开发LINUX的上层程序,不能编写驱动程序之类涉及内核的代码,如要编写需要LINUX环境(以后我会给出编写简单驱动程序的例子),简单的说,你可以在有函数支持的情况下写出在LINUX环境下的各种应用程序,但是你没有办法去操作硬件,比如打开一个IO

这是AVR32studio最新开发工具的下载地址
http://www.atmel.com/dyn/resources/prod_documents/AVR32DevelopmentTools-1.0.7.exe
安装一般没有什么困难,我一路点到底……

现在例子开始
首先,打开AVR32studio

选File->New->Managed Make AVR32 C Project 出现New Project对话框,填上项目名(这里取名hello_avr32_ourdev,呵呵~),Target选择AP7000,Project Type选择AVR32 LINUX Executable
注:这里可以选择UC3系列,Project Type类型表明了这是在LINUX环境下的程序,也可以是裸机程序。

然后选File->New->Other->C->Source File 添加源代码,取名


进入编写界面
打入代码:

#include <stdio.h>

int main( void )
        {
                printf("AVR32:hello everyone, kingofkings ourdev\n");
                return 0;
        }

然后选Project->Build ALL,编译完成,然后你在你的编译目录下可以找到你的执行文件(比如我的在文件路径Hello_avr32_ourdev\Debug\Hello_avr32_ourdev.elf),注意这里代码修改好后要先存一下,否则编译器会报错。

编译完毕

然后,你要找一块SD卡,取名Eject
把你的可执行文件拷贝进去,然后插入NGW100,用串口连接到电脑,用超级终端打开,波特率设成115200

启动NGW100

启动完毕

然后键入./media/mmcblk0p1/Hello_avr32_ourdev.elf执行刚刚编译完成的程序

程序执行正确,显示AVR32:hello everyone, kingofkings ourdev


至此本例子完成,欢迎大家提出意见,多交流!

以后会陆续给出,编译内核、驱动程序、u-boot、API的例子,希望大家喜欢。

同样更新到置顶帖,这里的帖子太容易沉……
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=813658&bbs_page_no=1&bbs_id=1000

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2007-11-11 20:50:06 | 显示全部楼层
看样子比ARM门槛低一点哦,起码寄存器没ARM那么又丑又长~~~~~

出0入0汤圆

 楼主| 发表于 2007-11-11 20:53:12 | 显示全部楼层
……这是在LINUX环境下编写的应用程序,所以不可能出现寄存器,底层硬件被OS屏蔽掉了
其实AVR32的寄存器也比较……

出0入0汤圆

发表于 2007-11-12 00:30:16 | 显示全部楼层
搂主看来你对AVR32studio,我上次做这个也是出了问题,到现在也没解决,今天终于知道为什么了,非常感谢. 有空多交流,我的QQ 290891365 最近在忙AVR32和ucos的事情,弄触摸屏驱动问题.

出0入0汤圆

发表于 2007-11-12 09:01:37 | 显示全部楼层
AVR32studio怎么好像eclips

出0入0汤圆

 楼主| 发表于 2007-11-12 18:07:25 | 显示全部楼层
【4楼】 ATmega32
AVR32studio就是以eclips为蓝本制作的

出0入0汤圆

发表于 2007-11-12 18:15:20 | 显示全部楼层
ATmel干脆把avr_studio也弄成eclips好了。

TO 楼上
makefile 需要自己写,还是自动生成?

出0入0汤圆

发表于 2007-11-12 18:18:36 | 显示全部楼层
可以用eclipse写avr的,有avr的插件的,也是自动生成makefile的。

出0入0汤圆

 楼主| 发表于 2007-11-12 18:20:01 | 显示全部楼层
【6楼】 ATmega32
全部自动完成和AVR STUDIO一样

出0入0汤圆

发表于 2007-11-12 18:24:36 | 显示全部楼层
To 楼上
能不能给个eclips入门实例(AVR或者ARM,特别是怎么生成makefile)。

以前想用eclips,不知道怎么生成makefile,自己写makefile太麻烦了,只好转用IAR了。

出0入0汤圆

发表于 2007-11-12 19:29:26 | 显示全部楼层
配置eclipse其实也挺麻烦的,工程里的目录是直接对应到实际的目录的,而cdt的设置是全局的,不是保存于某个工程中的。
要能比较顺手要花很多时间的。

出0入70汤圆

发表于 2007-11-12 19:52:49 | 显示全部楼层
楼主的教程写的很好。

linux下的话,随便用个记事本或者vi什么的写个hello.c

#include <stdio.h>
int main( void )
{
    printf("Hello, cruel world.\n");
    return 0;
}


然后编译
avr32linuxgcc -o hello hello.c

拷到板子上或者利用SD卡
就可以运行了

我想更新u-boot,但是没有mkii,有别的办法但担心出了意外恢复不会来,有什么高招?

出0入0汤圆

 楼主| 发表于 2007-11-12 20:21:46 | 显示全部楼层
PaulDE
现在还没有其它办法,只能用MK2,不过如果你对存储器的烧写很清楚的话,可以自己做个简易的烧写器,进行烧写。
其实U-BOOT不用太急着更新,内核倒是需要更新的,有些新的API必须要新内核支持,而内核更新一般不需要更新U-BOOT

出0入70汤圆

发表于 2007-11-12 22:36:26 | 显示全部楼层
我一直试图用buildroot更新rootfs,成功编译出且放到了SD卡里面,但用SD卡启动时到载入rootfs时总挂掉。这个问题老早就在avrfreaks论坛上有讨论,但我没有找到具体的解决办法,只有等待版本更新,可是现在已经rc7了我还是被同样的问题困扰。郁闷!
有老外的说法是:
Booting system from SD card wont work until you enable debug mode for MMC driver in the kernel. This gives lots of debug messages in the logs, but it’s the only way it works. Some people reported SD card to be working, but it seems it is dependent by card’s manufacturer.
我重新修改和编译内核后还是有同样的问题,无奈啊!
论坛上也有人说是uboot版本问题,故有更新uboot一念。

buildroot生成的rootfs太大,只能放到SD卡里面,这也是一郁闷。
[root@localhost avr32]# ls buildroot-rc7/binaries/atngw100/ -l
总计 32932
-rw-r--r-- 1 root root  1149439 11-03 10:38 linux-kernel-2.6.22.10-avr32
-rw-r--r-- 1 root root        0 11-03 10:39 rootfs.avr32_nofpu.jffs2
-rw-r--r-- 1 root root  7340032 11-03 10:39 rootfs.avr32_nofpu.jffs2-root
-rw-r--r-- 1 root root  6834432 11-03 10:39 rootfs.avr32_nofpu.jffs2-usr
-rw-r--r-- 1 root root 18216960 11-03 10:44 rootfs.avr32_nofpu.tar
-rwxr-xr-x 1 root root    91708 11-02 23:39 u-boot.bin

出0入0汤圆

 楼主| 发表于 2007-11-13 14:01:30 | 显示全部楼层
【13楼】 PaulDE
要么,你把你编译好的文件上传一下,我帮你在我的NGW100上试一下看看是不是你编译的问题,我可以更新U-BOOT,如果不是,那你就只能找个MK2来更新了,另外最好把你的.config文件也上传一下,我看一下是不是有什么问题,如果可以的话……

出0入0汤圆

发表于 2008-3-15 22:03:14 | 显示全部楼层
期待编译内核的帖子~

出0入0汤圆

 楼主| 发表于 2008-3-16 12:19:58 | 显示全部楼层
【15楼】 ldqmoon  
呵,因为现在工作转到AVR32 UC3上了,有关AP7的工作要等下一个阶段了,其实AT网站上有详细的使用说明,在AT挪威AVR32技术网站上也有最新版本的已编译内核文件和buildroot源代码,相关的文档也有详细的说明
这是网址
http://www.atmel.no/buildroot/buildroot-doc.html
如果实在需要的话,我找时间写一下帖子吧……

出0入0汤圆

发表于 2008-6-25 16:41:26 | 显示全部楼层
一看界面,觉得很熟悉,原来是eclips,以前用LEON2时的编译器就是eclips界面,GCC编译器

出0入0汤圆

发表于 2008-7-2 17:48:35 | 显示全部楼层
我按照例程进行了 一切都好 最后怎么没有在液晶屏上有显示 我的板子是EVK1100 用的仿真器是JTAGICE mkii 望高手指教

出0入0汤圆

 楼主| 发表于 2008-7-2 18:47:12 | 显示全部楼层
【19楼】 jinni2003
……我的例子是基于NGW100的啊 EVK1100当然不行啊

出0入0汤圆

发表于 2008-7-23 11:51:27 | 显示全部楼层
能否将hello.elf的文件上传上来!

我按照同样的方法,显示显示

/media/mmcblk0p1 # ls
hello.elf
/media/mmcblk0p1 # hello.elf
-sh: hello.elf: not found
/media/mmcblk0p1

sd用的1G,256M都试过,文件格式为FAT16,FAT32都试过,为什么不行呢?

出0入0汤圆

 楼主| 发表于 2008-7-23 12:03:57 | 显示全部楼层
【21楼】 chinabn GonBoy
……你的命令行有问题……
在目录下的文件要这么操作……
./hello.elf

出0入0汤圆

发表于 2008-7-23 14:13:07 | 显示全部楼层
谢谢! 成功!

出0入0汤圆

发表于 2008-7-23 14:18:42 | 显示全部楼层
市面上AVR32的书籍,还没有见到!

火腿,写书吧! 哈哈! 我买!

出0入0汤圆

 楼主| 发表于 2008-7-23 16:16:05 | 显示全部楼层
呵呵,谢谢支持,一切皆有可能~~

出0入0汤圆

发表于 2009-6-15 19:28:28 | 显示全部楼层
为什么最新版本的AVR32Studio-2.1.2-Setup.exe
新建项目的时候没有 Linux可执行程序 的选项?
也就是第二个图的project type中的"avr32 linux executable"

出235入235汤圆

发表于 2010-3-4 17:30:04 | 显示全部楼层
mark!

出0入0汤圆

发表于 2013-3-22 10:38:55 | 显示全部楼层
顶楼主,mark!

出0入0汤圆

发表于 2013-3-29 08:38:32 | 显示全部楼层

出0入0汤圆

发表于 2013-4-2 02:24:31 | 显示全部楼层
我想请教下,AVR32加密了有无办法破解,也就是现在说的解密。

出0入0汤圆

发表于 2013-5-29 19:56:47 | 显示全部楼层
表示很佩服LZ

出0入0汤圆

发表于 2013-6-10 23:39:05 | 显示全部楼层
呵呵,谢谢支持

出0入0汤圆

发表于 2013-11-25 17:56:37 | 显示全部楼层
进来看高手

出0入0汤圆

发表于 2014-4-21 22:58:50 | 显示全部楼层
学习学习,虽然没有使用过avr,但是迟早也可能碰到。

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-3-29 09:51

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

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