c++ hello world程序编写_编写C程序控制LED

C语言的指针操作:

①所有的变量在内存中都有一块区域;

②可以通过变量/指针操作内存;

9b363925ed71aada27a382e41aded25c.png

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.c    arm-linux-gcc -c -o start.o start.S    arm-linux-ld -Ttext 0 start.o led.o -o led.elf    arm-linux-objcopy -O binary -S led.elf led.bin    arm-linux-objdump -D led.elf > led.disclean:    rm *.bin *.o *.elf *.dis

最后将上面三个文件放入Ubuntu主机编译,然后烧写到开发板即可。

「新品首发」STM32MP157开发板火爆预售!首批仅300套

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值