Chinaunix首页 | 论坛 | 博客
  • 博客访问: 418660
  • 博文数量: 121
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1393
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-11 12:17
个人简介

www.vibexie.com vibexie@qq.com

文章分类

全部博文(121)

文章存档

2015年(55)

2014年(66)

我的朋友

分类: 嵌入式

2014-11-23 20:59:31

test.zip
目的:我们编写一个小程序,从内存0x32000000地址开始,将后面的100个直接设为C字符;

我们将test.c编译成test.bin后;
下载到内存的0x33000000地址上,然后
OpenJTAG> go 33000000
这就是运行33000000地址上的程序了;运行完后我们查看内存中0x32000000的值
OpenJTAG> md 32000000
32000000: 43434343 43434343 43434343 43434343    CCCCCCCCCCCCCCCC
32000010: 43434343 43434343 43434343 43434343    CCCCCCCCCCCCCCCC
32000020: 43434343 43434343 43434343 43434343    CCCCCCCCCCCCCCCC
32000030: 43434343 43434343 43434343 43434343    CCCCCCCCCCCCCCCC
32000040: 43434343 43434343 43434343 43434343    CCCCCCCCCCCCCCCC
32000050: 43434343 43434343 43434343 43434343    CCCCCCCCCCCCCCCC
32000060: 43434343 cc33cc33 dc37cc73 cc33cc77    CCCC3.3.s.7.w.3.
32000070: cc33cc33 cc33cc33 ce33cc33 cc33cc33    3.3.3.3.3.3.3.3.
32000080: cc33cc33 cc33cc33 cc33c437 cc33cc33    3.3.3.3.7.3.3.3.
32000090: cc3bcc33 dc33cc33 cc338c33 cc33cc33    3.;.3.3.3.3.3.3.
320000a0: cc334d33 cc33cc33 ccb3cc32 cc33cc33    3M3.3.3.2...3.3.
320000b0: cc33cc37 ce33cc33 cc33cc33 cc37cc37    7.3.3.3.3.3.7.7.
320000c0: cc33cc33 cc33cc33 cc33cc33 cc33cc33    3.3.3.3.3.3.3.3.
320000d0: cc33cc3b cc33cc13 cc33c833 cc33cc13    ;.3...3.3.3...3.
320000e0: ec33cc33 cc33cc33 cc33cc33 cc33cc33    3.3.3.3.3.3.3.3.
320000f0: cc33cc33 cc33cc33 cc33cc33 cc33cc33    3.3.3.3.3.3.3.3.
这样就说明,test.bin成功从内存0X32000000处写入了100个C字符。

test.c

  1. #define addr (*(volatile unsigned char*)0x32000000)
  2. int main()
  3. {
  4.   int i;
  5.   for(i=0;i<100;i++)
  6.   {
  7.       *((&addr)+i)='C';
  8.   }
  9.   return 0;
  10. }

Makefile

  1. test.bin:test.c
  2.     arm-linux-gcc -c test.c -o test.o
  3.     arm-linux-ld -Ttext 0x33000000 test.o -o test_elf
  4.     arm-linux-objcopy -L elf32-littlearm -O binary test_elf test.bin /*-L elf32-littlearm 是指定大小端,这里是小端,objcopy主要是为                                                                        了去除文件elf格式信息   去头后文件不包含格式信息   段信息等内容    只是由机器指令的二进制编码构成*/
  5. clean:
  6.     rm -f test.o test_elf test.bin
阅读(2124) | 评论(0) | 转发(0) |
0

上一篇:FLCK、HCLK和PCLK的关系

下一篇:ARM中断

给主人留下些什么吧!~~