这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【炫Q键盘】avr-gcc编译环境配置

共14条 1/2 1 2 跳转至

【炫Q键盘】avr-gcc编译环境配置

专家
2015-05-20 11:56:02     打赏

准备开始学习一下代码,自然要有一个开发环境,kai大推荐avr-gcc所以就要学习一下啦,

代码的位置

https://github.com/kairyu/tmk_keyboard_custom
https://github.com/tmk/tmk_keyboard

下边两个是kai大认为应该重点学习的

https://github.com/kairyu/tmk_keyboard_custom/blob/master/doc/build.md

https://github.com/kairyu/tmk_keyboard_custom/blob/master/doc/keymap.md

好吧,现配置avr-gcc环境,参考了

http://blog.chinaunix.net/uid-28492690-id-4088906.html


GNU tools
        sudo apt-get install gcc-avr   //这是avr的交叉编译器
        sudo apt-get install avr-libc    //这是编译要用的库
        sudo apt-get install gdb-avr   //gdb反向调试工具反汇编有木有

Programer
        sudo apt-get install avrdude  //avr烧录工具


主要是一些包的安装,文中提到的《avr-gcc使用手册》已经不在了,可以去文库里看,还没时间看


http://wenku.baidu.com/view/eeb52f245901020207409c79.html


【炫Q键盘】总索引,以后从这里找就可以了【总索引】




专家
2015-05-20 11:59:03     打赏
2楼

安装完avr-gcc后可以通过avr-gcc -v检查一下

应该差不多了,下午试着做helloworld


专家
2015-05-20 13:20:40     打赏
3楼

找了一小段代码,称为blink.c吧

#include <avr/io.h> 
int main(void) 
{ 
  unsigned char i, j, k,led=0; 
  DDRB=0xff; 
  while (1) 
  { 
    if(led) 
      PORTB|=0X01; 
    else 
      PORTB&=0XFE; 
    led=!led; 
    //延时
    for(i=0; i<255; i++)     
      for(j=0; j<255;j++) 
        k++; 
  } 
}

 

编译一下

avr-gcc  -mmcu=atmega32u4  -c  blink.c

 

生成了blink.o文件,怎么做成.hex呢?继续找

avr-gcc  -mmcu=atmega32u4  -o blink.elf blink.o 

 

生成blink.elf,注意:这里要用小o源文是大O通不过

avr-objcopy  -j .text  -j .data  -O ihex blink.elf blink.hex 

 

至此生成了blink.hex也就是我们用来烧写的文件。

原文:gcc把不同类型的数据分到不同的段落,相关程序存储器的段有.text和.data,我们用选项-j指定了要提取的段。选项-O用来指定输出格式,这里我们指定为ihex(intel HEX file)。


专家
2015-05-20 13:23:09     打赏
4楼

可以看到生成的HEX文件,怎么写到芯片里呢?我也不知道,慢慢来

这是小文件的编译方法,大一点儿的项目一般都通过makefile的办法编译,比如我们的键盘项目,慢慢学吧



专家
2015-05-20 13:40:08     打赏
5楼

写makefile很容易出现如下错误,要注意的是前面是tab分割符,不能用空格

makefile:2: *** 遗漏分隔符 。 停止。



专家
2015-05-20 21:34:44     打赏
6楼
这个得抽时间来学习一下  

专家
2015-05-21 09:10:02     打赏
7楼
代码里自带了,makefile文件,直接编译即可通过,暂时不分析makefile文件的结构了,层层引用,看得头大,还是先分析关键代码吧:按键扫描、配列匹配、键值输出

高工
2015-05-21 09:44:17     打赏
8楼
好文,mark一下认真学习

专家
2015-08-22 15:24:45     打赏
9楼
目前的固件就是这么编译的

工程师
2015-08-22 16:29:44     打赏
10楼
。。。。不明觉厉

共14条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]