【OK210试用体验】GCC交叉编译环境重新安装解决上次LED无法编译的问题 - 在线问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

【OK210试用体验】GCC交叉编译环境重新安装解决上次LED无法编译的问题

374441293 ( 楼主 )2015-8-24 23:37:27只看该作者倒序浏览
昨天我发了一个求助贴,关于编写LED驱动程序时,编译报错问题。
编译提示:/home/wangxin/arm/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-ld: main.o: No such file: No such file or directory
后来经过反复寻思都没有解决,我就干脆直接先把原来的arm-linux-gcc删除,重新安装飞凌教程安装arm-2009q3.tar.bz2.这个文件在飞凌的实用工具文件下有
安装过程按照,飞凌手册执行,具体流程如下:

添加完路径后,环境变量还没有生效,需要我们在终端里面注册一下环境变量
  1. source /etc/profile
复制代码
接着输入
  1. arm-linux-gcc -v
复制代码

就可以看到如下图的结果,输出arm-linux-gcc的版本号


接着我们开始编译LED驱动程序
  1. #define MP0_4CON (*(volatile unsigned long *)0xE0200340)
  2. #define MP0_4DAT (*(volatile unsigned long *)0xE0200344)
  3. #define GPD0CON (*(volatile unsigned long *)0xE02000A0)
  4. #define MP0_4PUD (*(volatile unsigned long *)0xE0200348)
  5. void clock_init(void);
  6. void putc(char c);
  7. void uart_init(void);
  8. void putout(char * c);
  9. int print(const char *fmt, ...);
  10. static void Delay(int count)
  11. {
  12. volatile int i, j = 0;
  13. volatile static int loop = 800000000/10000;
  14. for(;count > 0;count--)
  15. for(i=0;i < loop; i++) { j++; }
  16. }
  17. void main(void)
  18. {
  19. int i;
  20. GPD0CON &= ~(0xF << 0);//关闭蜂鸣器
  21. MP0_4CON = (MP0_4CON & ~0xFFFF0000) | 0x11110000; //设置高 4 为管脚为输出方式
  22. MP0_4PUD=(0x55<<16)&MP0_4PUD;//设置为下拉方式
  23. // clock_init();
  24. // uart_init();
  25. //MP0_4DAT |= 0xF0;
  26. for( i=4;i<8;i++)//关闭 led
  27. {
  28. MP0_4DAT |= ( 1<< i);
  29. Delay(100000);
  30. }
  31. char print[40]={'l','e','d','1',' ','i','s',' ','o','p','e','n'};
  32. char print1[40]={'l','e','d','1',' ','i','s',' ','c','l','o','s','e'};
  33. while(1)
  34. {
  35. for( i=4;i<8;i++)//循环点亮 led
  36. {
  37. print[3]= i+45;
  38. print1[3]= i+45;
  39. MP0_4DAT &= ~( 1<< i);
  40. // putout(print);
  41. Delay(300000);
  42. MP0_4DAT |= ( 1<< i);
  43. // putout(print1);
  44. Delay(300000);
  45. }

  46. }
  47. }
复制代码

然后编写C语言与汇编跳转程序
文件名称为led.s
  1. .global _start
  2. _start:
  3. bl main;
  4. halt:
  5. b halt
复制代码
接着书写makefile

下载我是通过 SecureCRT,我本来打算通过SD卡下载的,但是一直没搞清楚LED.bin放到SD卡哪个文件,所以就放弃了,若有童鞋知道可以告诉我一下!!!








1个回复

杨永胜 发表于 2015-8-27 10:02:33
  1. dd iflag=dsync oflag=dsync if=修改为你的bin文件的路径 of=/dev/sdb seek=1
复制代码

linux下执行上面的命令,试试看能不能下载。
您需要登录后才可以回帖 登录| 注册

本版积分规则


关闭

站长推荐上一条/6下一条

小黑屋|手机版|Archiver|德赢Vwin官网(湘ICP备2023018690号)

GMT+8, 2024-8-21 22:01, Processed in 0.600302 second(s), Total 61, Slave 43 queries .

Powered by德赢Vwin官网 网

© 2015bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表