编写C程序控制LED

C语言的指针操作:
①所有的变量在内存中都有一块区域;
②可以通过变量/指针操作内存;

编写C程序控制LED

文章插图
 
TYPE *p = val1;
*p = val2;
把val2写入地址val1的内存中,写入sizeof(TYPE)字节;
TYPE *p = addr;
*p = val;
把val写入地址addrd的内存,,写入sizeof(TYPE)字节;
a. 我们写出了main函数, 谁来调用它?
b. main函数中变量保存在内存中, 这个内存地址是多少?
答: 我们还需要写一个汇编代码, 给main函数设置内存, 调用main函数
led.c源码:
int main(){unsigned int *pGPFCON = (unsigned int *)0x56000050;unsigned int *pGPFDAT = (unsigned int *)0x56000054;/*配置GPF4为输出引脚*/*pGPFCON = 0x100;/*配置GPF4输出0*/*pGPFDAT = 0;return 0;}start.S源码:
.text.global _start_start:/*设置内存:sp栈*/ldr sp,=4096 /*nand启动*///ldr sp, =0x40000000 /*nor启动*//*调用main*/bl mainhalt:b haltMakefile源码:
all:arm-linux-gcc -c -o led.o led.carm-linux-gcc -c -o start.o start.Sarm-linux-ld -Ttext 0 start.o led.o -o led.elfarm-linux-objcopy -O binary -S led.elf led.binarm-linux-objdump -D led.elf > led.disclean:rm *.bin *.o *.elf *.dis最后将上面三个文件放入Ubuntu主机编译,然后烧写到开发板即可 。
 

【编写C程序控制LED】


    推荐阅读