建立linux下avr单片机开发环境

发布者:星光小狐狸最新更新时间:2020-03-31 来源: eefocus关键字:linux  avr单片机  开发环境 手机看文章 扫描二维码
随时随地手机看文章

有一块ATmega128开发板,自从用了ubuntu后就开始吃灰了。其实linux进行avr单片机开发还是很方便的,就跟嵌入式一样,只是将编译器由arm-linux-gcc改为avr-gcc.


主要参考:apt-blog.net/developing_avr_under_linux


环境:ubuntu13.04


一、安装avrdude


sudo apt-get install avrdude


这样USBasp就被linux所支持了。


二、安装编译器:


sudo apt-get install gcc-avr binutils-avr avr-libc


这样就可以了,开始linux下avr之旅吧


编译程序命令:


avr-gcc -mmcu=atmega128 -Wall -Os -o led.o led.c


-mmcu即avr型号。


转化为hex


avr-objcopy -j .text -j .data -O ihex led.o led.hex


.data主要用于存放数据;


三、烧写程序:


sudo avrdude -p m128 -c usbasp -e -U flash:w:led.hex


m128即我的atmega128


linux下程序开发比较好的思想是写Makefile


放个例子:


引自:omegav.no/wiki/index.php/AVR_on_linux#Makefile_example          


###################################

# Makefile, for AVR Programming

 

PROJECT = 

# Target name:

TARGET = 

 

# Target type

MCU = atmega128

PROGRAMMER = usbasp

F_CPU = 16000000UL

 

SRC = 

OBJ = $(SRC:.c=.o)

 

# Compiler / Linker flags:

CFLAGS = -mmcu=$(MCU) -Wall -Os -std=gnu99 -D F_CPU=$(F_CPU) -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums

LDFLAGS = -mmcu=$(MCU) -Wl,-Map=$(TARGET).map

###################################

# Makerules:

 

.PHONY: compile flash clean

 

compile:$(TARGET).hex $(TARGET).eep $(TARGET).lss

 

flash: compile

avrdude -c $(PROGRAMMER) -P usb -p $(MCU) -U flash:w:$(TARGET).hex

# sleep 2

# avrdude -c $(PROGRAMMER) -P usb -p $(MCU) -U eeprom:w:$(TARGET).eep

 

clean:

rm -f $(OBJ) $(TARGET).*

 

###################################

# Psudorules:

 

%.eep: %.hex

avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex $< $@

 

%.hex: %.elf

avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $< $@

 

%.lss: %.elf

avr-objdump -h -S $< > $@

 

%.elf: $(OBJ)

avr-gcc $^ $(LDFLAGS) -o $@

 

%.o : %.c

avr-gcc $(CFLAGS) -c $< -o $@

关键字:linux  avr单片机  开发环境 引用地址:建立linux下avr单片机开发环境

上一篇:AVR mkii 被atmel studio 升级后无法用在AVRDUDESS的解决方法
下一篇:linux 下 avr开发环境的搭建

推荐阅读最新更新时间:2024-11-04 07:41

ARMLinux s3c2440 之UART分析一
在分析ARM-Linux s3c2440中UART的时有必要先了解 s3c2440A中串口的硬件知识。也就是本文---- 硬件篇: S3c2440A串口提供三个独立的异步串行通信I/O端口(asynchronousserial I/O ports)。每一个串口均可以以普通中断方式或者DMA方式进行数据收发,采用系统时钟时,最大速率为115.2kbps.如果采用外部时钟(UEXTCLK),UART速度可以更快。每个串口包含有2个64-byte的FIFO缓存区用来发送或传输数据。 S3c2440A 串口具有可编程波特率,红外(IR)收发数据,1或者2 位的停止位(stop),5/6/7/8 位数据宽度和奇偶校验功能(parity c
[单片机]
ARMLinux s3c2440 之UART分析一
基于PWM功能的AVR单片机定时计数器设计要点
一、定时/计数器PWM设计要点 根据PWM((脉宽调制(PWM:(Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的模式))的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点: 1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。 2.快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。此时计数器仅工作在单程正向计数方式,计数器的上限值决定PWM的频率,而比较匹配寄存器的值决
[单片机]
linux-2.6.38到tiny6410的移植手册(连载3)__ LCD&触摸屏
这次lcd和触摸屏智能一起移植了,至于原因明天在开一贴详细说明, http://www.arm9home.net/read.php?tid-14273.html 主要是一线触摸的原因,它劫持了lcd的背光控制,这个花了我三天时间呀才发现, 友善真是的。。。。 先弄lcd屏吧 vi arch/arm/plat-samsung/include/plat/map-base.h 第39行 增加 #define S3C_VA_LCD S3C_ADDR(0x01100000) /* LCD */ 从友善的源码中将arch/arm/mach-s3c64xx/include/mach/regs-lcd.h拷贝过来 从友善的源码中将drive
[单片机]
<font color='red'>linux</font>-2.6.38到tiny6410的移植手册(连载3)__ LCD&触摸屏
linux操作系统交叉编译环境的建立方法
    基于linux操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主PC机所构成。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成(所以称为交叉编译)。双方之间一般通过串口,并口或以太网接口建立连接关系。     但在此我建议构建如下的交叉编译环境,适合个人或研发小组使用:单独拿出一台PC机(PII以上即可,就用以前淘汰的旧机器就可以),在该PC上安装桌面的Linux操作系统(如Red Hat Linux 8.0及以上),可以采用默认的安装选项(注意要包含ftp服务),这台PC作为Linux服务器,除管理员以外,一般不直接让其他人去操作。
[嵌入式]
Wind River商用级Linux飞向太空
(2007年7月13日讯) 全球领先的设备软件优化(DSO)厂商风河系统公司(Wind River)日前宣布,Honeywell Aerospace公司将风河Linux产品用于开发美国国家航空和宇宙航行局(NASA)New Millennium Program Space Technology 8(ST8)可靠多处理器(Dependable Multiprocessor)项目。Honeywell Aerospace是NASA ST8 Dependable Multiprocessor项目的主要外包商,这是该公司首次购买采用Linux平台用于太空任务项目开发。Wind River Platform for Network Equip
[焦点新闻]
基于ATMEGA16的智能控制器的开发研制
1 、引言 随着科学技术的飞速发展和人们生活水平的提高,普通仪表已显过时,不能满足现代生活的需求。现代仪表已日趋数字化、网络化和智能化。微电子技术的发展和工业过程对测控方面要求的加强,使智能仪表的应用更广、成本更低。AVR单片机具有低成本、低功耗、高速度的特点。本控制器主要针对浙大中控的 AE2000B过程控制实验装置设计的,对其水箱的液位、电热锅炉的温度进行控制、显示。 2 、智能仪表的研制开发 智能仪表是以单片机为核心的仪表,其设计要点大致有两点,即模块化设计和模块的连接。 2 、1 模块化设计 依据仪表的功能、精度要求等,自上而下按仪表功能层次把硬件和软件分成若干个模块,分别进行设计与调试,然后把它们连接起来
[单片机]
基于ATMEGA16的智能控制器的开发研制
面向嵌入式视频处理平台的Linux移植
   0引言   嵌入式系统开发已经进入32位时代,在当前数字信息技术和网络技术高速发展的后PC时代,嵌入式系统已经广泛地渗透到科学研究、工程设计、军事技术等各个方面。   嵌入式系统通常由硬件和软件两个大部分组成。其硬件部分的核心部件就是各类嵌入式微处理器,并配置存储器、I/O设备、通信模块等必要的外设。目前市场上主流销售的32位嵌入式处理器有MOTOROLA、MIPS、ARM等系列,其中ARM以其体积小、成本低、功耗低、性能高等特点成为嵌入式系统设计的首选。   软件部分一般由嵌入式操作系统和应用软件组成。嵌入式操作系统是一种支持嵌入式应用的操作系统软件,它负责全部软硬件资源的分配和调度、控制协调等活动。从20世纪
[嵌入式]
linux内核中S3C6410 timer相关代码理解
本文描述基于mini6410平台的time.c中的相关代码,主要描述下对部分代码的理解。 先贴上代码: 1 /* we use the shifted arithmetic to work out the ratio of timer ticks 2 * to usecs, as often the peripheral clock is not a nice even multiple 3 * of 1MHz. 4 * 5 * shift of 14 and 15 are too low for the 12MHz, 16 seems to be ok 6 * for the current HZ value
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved