虽然理解每一个(或许不是),但看起来我远远不了解两者之间的实际差异.
根据我的理解,BSP是一个驱动程序和配置设置包,允许内核映像启动板(并且是其中的一部分).单个设备驱动程序在特定组件(HW)上运行,一侧与核心内核连接,另一侧与设备本身连接.
看看Linux内核,我不清楚BSP角色的起源和设备驱动程序角色的结束位置.具体来说,我习惯于每个图像每个板看到一个BSP,但是,通用Linux内核可以加载到具有相同图像的任何架构系列(很明显,对于不同的系列,有不同的图像:x86,amd64,arm, etc ...),其中特定的板和外围设备驱动程序是从initrd按需加载的.
常见的Linux内核发行版是否有BSP?或者BSP是否与特殊案例板相关?
这种行为在其他内核上是否相似?VxWorks的?
最后一个,合并不同的BSP/s以生成适合不同电路板的单个图像是很常见的吗?
我刚刚开始了解内核的工作原理和内部结构,首先,我正在尝试构建内核并启动它。
我使用 qemu 作为 x86 架构的模拟器。
我正在关注这篇文章(虽然是针对手臂的):http : //www.kaizou.org/2016/09/boot-minimal-linux-qemu/
我使用以下命令构建了内核:
cd kernel_4.9
make x86_64-defconfig
make -j8
Run Code Online (Sandbox Code Playgroud)
这给了我 bzImage。现在我开发了一个initramfshello world 作为可执行文件的虚拟对象。这是init.c:
#include <stdio.h>
void main()
{
printf("Tiny init - Hello World...\n");
while(1);
}
Run Code Online (Sandbox Code Playgroud)
打包 initramfs
gcc -static init.c -o init
chmod +x init
echo init | cpio -o --format=newc > initramfs
Run Code Online (Sandbox Code Playgroud)
现在运行 qemu :
qemu-system-x86_64 -kernel ~/data/linux/arch/x86/boot/bzImage -append 'console=ttyS0' -serial stdio -initrd ~/data/linux/arch/x86/boot/initramfs
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
[ 1.158556] Write protecting the kernel text: 8528k
[ 1.158842] Write protecting …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个ARM处理器版本的Android BSP来为我的一个实验板移植它.我在哪里可以下载这个?
我最初试图按照这个算法在 C# 中创建一个简单的 roguelike 地牢。但我想我只是太愚蠢了,因为我的结果总是一团糟。
然后我切换到我自己的算法,它产生了不太好但半可识别的地牢结果。
有没有人有任何以 BSP 方式执行此操作的示例,如链接文章中所述?最好不要被一堆游戏细节/库调用所困扰,因为(再次)我很愚蠢。
(如果你特别受虐并且希望我发布我拥有的代码,我可以,但我认为这对于一个 SO 问题来说太过分了。)
据我了解,BSP(板级支持包)包含引导加载程序,内核和设备驱动程序,可帮助操作系统在HW上工作.但我很困惑,因为操作系统还包含一个内核.那么OS中的内核和BSP中的内核有什么区别?
我试图使用以下代码将文本写入本地文件:
data: fname(60), text type string value 'la la la'.
fname = 'myfile.txt'.
OPEN DATASET fname FOR OUTPUT IN TEXT MODE encoding default.
TRANSFER text TO fname.
CLOSE DATASET fname.
write 'done'.
Run Code Online (Sandbox Code Playgroud)
程序运行正常,执行后出现"完成".但是我在PC上找不到文本文件"myfile.txt"(它不在SAP工作目录中).
附加信息 我使用FM GUI_DOWNLOAD得到了这个,但是我必须使用OPEN DATASET,TRANSFER方法,因为我在后台程序中写这个(由BSP使用SUBMIT调用).
我习惯了JAVA,因此无法在ABAP中编写此代码。
我用两个参数调用一个方法。它应该返回一个数字,所以我可以保存它。
我想要的是..
int result = generate_num(40,5);
int generate_num(int thisNum, int newDigit){
return thisNum * 10 + newDigit;
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经在ABAP中进行了尝试。
//声明的方法
methods GENERATE_NUM
importing
!thisNum type I
!NEWDIGIT type DIGIT_NUMBER_VALUE.
Run Code Online (Sandbox Code Playgroud)
//调用方法
CALL METHOD me->Generate_NUM
EXPORTING
thisNUm = 40
newDigit = 5.
Run Code Online (Sandbox Code Playgroud)
//方法本身
METHOD GENERATE_NUM.
DATA: newNum type i.
If thisnum < 0.
newNum = thisnum * 10 - newdigit.
Else.
newNum = thisnum * 10 + newdigit.
ENDIF.
RETURNING VALUE(newNum).
ENDMETHOD.
Run Code Online (Sandbox Code Playgroud)
但是我迷上了这段代码,不知道如何返回值以及如何将其保存在另一个变量中。
有没有人有一个他们可以分享或了解的在ThreeJS中使用BSP树的例子?我正在寻找创建一个地形splatting示例,并希望使用BSP(或可能是八叉树??)来帮助加快渲染速度.
非常感谢
我正在尝试理解 yocto 术语。我知道recipe是bitbake工具用来获取源代码、配置、编译和生成包(软件组件)的一组指令。
元数据是配置文件 ( .conf )、食谱 ( .bb 和 .bbappend ) 、类 ( .bbclass ) 和包含 ( .inc ) 的集合。
我不明白的是“层”这个词。术语“层”和“元数据”是相同的还是不同的
例如: meta-fsl-arm :这是层还是元数据。
Kd算法从创建根BSP节点开始,通过对基元数组(三角形,球体......)进行分区,以创建用于创建其两个子树的两个新数组(左和右基元).
通过将给定的基元数组分成两个数组来计算左和右基元.通过取每个三角形的间隔的中点(投影到给定轴(x,y或z)上)的中值来计算分割平面位置.
例如,具有x坐标的三角形:1,2,3具有中点1 =(3-1)/ 2(沿着x轴)具有x坐标的三角形:2,3,8具有中点3 = (8-2)/ 2(沿x轴)具有x坐标的三角形:4,3,8具有中点2.5 =(8-3)/ 2(沿x轴)包含这些的原始数组三个三角形由平面划分,平行于x = 2.5(中位数)平行于yz平面.生成的左基元数组包含三个三角形,生成的右基元数组包含三个三角形.
具有左和右基元的两个结果阵列用于构造Kd节点的左子树和右子树(基元仅存储在叶节点处).
对于左子树:
If (the left primitives are empty) then the left subtree points to NULL
else if (the number of left primitives is smaller than the minimal number || the depth == 1) then the left subtree is a leaf node
else the left subtree is another tree.
create the left subtree with the left primitives along the axis (++axis % 3) with --depth as depth and the …Run Code Online (Sandbox Code Playgroud) 感谢您的时间和支持
我打算使用swupdate进行更新.所以,我需要创建一个额外的分区,我需要在其中存储恢复分区.
poky/meta/classes/image-live.bbclass
Run Code Online (Sandbox Code Playgroud)
是创建分区并闪烁根文件系统的类.我已经更新了上面的文件以创建另一个分区并存储swupdate根文件系统.
如何在我自己的BSP层中覆盖此类,我不想触及poky源代码..
一些背景:我正在研究具有微控制器目标的嵌入式系统。我在这里的目的是澄清可用于代码存储库名称的术语。我专注于该文章中的低级命名,它对我来说代表面向目标的代码(而不是面向应用程序的高级代码)。
我在网络和论坛上循环,似乎没有人明确定义这些术语之间的区别:HAL、BSP 与驱动程序。
根据我的说法,我的所有三个术语在理论上都是等效的,但人们似乎会区分 HAL 是为 MCU 驱动程序(例如 UART、GPIO 等)保留的,而 BSP 是为外部外设驱动程序(例如加速度计)保留的、EEPROM、...)。
有人可以帮我澄清一下吗?此外,您能否提及您的答案是基于您的个人意见,还是基于社区/公司/标准/其他内容的推理/基本原理?
感谢您的时间,
我目前正在使用 Yocto 创建替代 BSP 来替换现有的 BSP。我是 Yocto 的新手,我需要知道如何向 Yocto 添加 libusb 支持以在连接时检测蓝牙适配器。
问候, 帕万