我在弄清楚如何在 shell 脚本中迭代空格分隔的单词/字符时遇到了一些麻烦。例如,我想迭代一个变量,该变量包含字母表中由空格分隔的字符。
注意:即使字母表变量包含空格分隔的字符串而不是字符,结果也应该相同,即“aa bb cc ...”而不是“abc ..”
我已经尝试了很多提供的替代方法: How to split a line into words in bash in a or more space?
示例:
local alphabet="a b c d e f g h i j k l m n o p q r s t u v w x y z"
local index="0"
for character in $alphabet; do
index=$((++index))
echo "$index. $character"
# Possibility to do some more stuff
done
Run Code Online (Sandbox Code Playgroud)
预期/期望输出:
1. a
2. b
3. c
and …Run Code Online (Sandbox Code Playgroud) 我试图让本教程按预期工作但没有成功(在bl主要指令之后出现故障).根据教程命令
(qemu) xp /1dw 0xa0000018
Run Code Online (Sandbox Code Playgroud)
应该导致打印33(但我得到0x00而不是)
a0000018: 33
Run Code Online (Sandbox Code Playgroud)
这是主调用后寄存器的内容(参见startup.s)
(qemu) info registers
R00=a000001c R01=a000001c R02=00000006 R03=00000000
R04=00000000 R05=00000005 R06=00000006 R07=00000007
R08=00000008 R09=00000009 R10=00000000 R11=a3fffffc
R12=00000000 R13=00000000 R14=0000003c R15=00000004
PSR=800001db N--- A und32
FPSCR: 00000000
Run Code Online (Sandbox Code Playgroud)
我有以下文件
main.c
startup.s
lscript.ld
Makefile
Run Code Online (Sandbox Code Playgroud)
我正在使用以下工具链
arm-2013.11-24-arm-none-eabi-i686-pc-linux-gnu
Run Code Online (Sandbox Code Playgroud)
Makefile:
SRCS := main.c startup.s
LINKER_NAME := lscript.ld
ELF_NAME := program.elf
BIN_NAME := program.bin
FLASH_NAME := flash.bin
CC := arm-none-eabi
CFLAGS := -nostdlib
OBJFLAGS ?= -DS
QEMUFLAGS := -M connex -pflash $(FLASH_NAME) -nographic -serial …Run Code Online (Sandbox Code Playgroud) 我想研究一些设备驱动程序的源文件,这些驱动程序是在raspberry pi(raspian),beaglebone(debian)或我的笔记本电脑(ubuntu)上安装和加载的.
我的目标是通过研究一些实际工作的驱动程序的源文件来学习如何正确实现我自己的模块.
我对与实际硬件(USB,I2C,SPI,UART等)通信的驱动程序特别感兴趣.
有人能告诉我如何找到这些来源吗?它们是否在某些特定文件夹中可用,例如/ usr/src/****或者我是否必须从特定内核版本下载所有内核源文件?
我们非常感谢所有建议,意见和建议.
ps我读过"Linux内核开发第3版"但请告诉我你是否知道关于这个主题的任何其他免费/开源书籍.
最好的问候Henrik
kernel linux-device-driver linux-kernel raspberry-pi beagleboneblack
arm ×1
bare-metal ×1
embedded ×1
iteration ×1
kernel ×1
linux-kernel ×1
qemu ×1
raspberry-pi ×1
shell ×1
zsh ×1