C语言的指针操作:
①所有的变量在内存中都有一块区域;
②可以通过变量/指针操作内存;
文章插图
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 halt
Makefile源码: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】
推荐阅读
- Python3编写的CMS识别工具 内置安全检测
- led灯条用什么胶粘的结实?led灯珠用什么胶水粘?
- 教你编写你的第一个Linux 内核模块“hello_module”
- linux内核驱动第1讲:带你编写一个最简单的字符设备驱动
- C/C++编程笔记:编写完成了一个C/C++程序,如何做一个界面出来?
- C++基础入门
- 如何用PyQt编写桌面程序,创建并打开播放列表?
- Qt编写安防视频监控系统27-GPU显示
- LED防爆手电与普通照明手电筒的本质区别
- 太阳能led灯分类及优点