C#8.0引入了一种切片阵列的便捷方法 - 参见官方C#8.0博文.
访问数组的最后一个元素的语法是
int value[] = { 10, 11, 12, 13 };
int a = value[^1]; // 13
int b = value[^2]; // 12
Run Code Online (Sandbox Code Playgroud)
我想知道为什么向后访问元素的索引从1开始而不是0?这有技术原因吗?
我的项目结构如下:
.
??? build
??? src
| ??? rbpi
| | ??? gpio.h
| ??? boot.c
| ??? boot.s
| ??? kernel.c
??? linker.ld
Run Code Online (Sandbox Code Playgroud)
这是一个简单的树莓派内核,可以让 LED 闪烁!我目前使用一个包含以下内容的简单 bat 文件来构建它:
arm-none-eabi-gcc -g -O0 -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7-a -mtune=cortex-a7 -nostartfiles -Wl,-T,linker.ld src/kernel.c src/boot.c src/boot.s -o build/kernel.elf
arm-none-eabi-objcopy build/kernel.elf -O binary build/kernel7.img
Run Code Online (Sandbox Code Playgroud)
由于我将向该项目添加更多文件,因此我必须将每个文件附加到我的“buildscript”中。
如果可能,我想使用makefile.
如果我想要以下“规则”,我的 makefile 应该是什么样子的?
*.elf和*.img文件build。*.c和*.s文件src。kernel.elf文件输出到build目录中。linker.ld。objcopy生成二进制文件。