哥们儿本来时写单片机来着,后来又看见我的板子了,搜索了一下以前爷没有写过,就扔下单片机的文章写这个了。
我以前写过一篇特别水的文章
都2022年了,又说这个板子可能某种程度确实是不太明智,但是买也买了,不玩又不行。
板载芯片:
- Intel Quark SoC X1000处理器,400MHz主频,基于32位兼容Pentium指令集架构;
- 美光256MB DDR3内存,8MB SPI Flash W25Q64FVSSIG;
- 12位 SAR ADC AD7298BCPZ,美信TTL/RS232电平转换IC MAX3232;
- TI 电源管理芯片TPS652510,DDR3电源稳压器 TPS51200,5v/3V电平转换IC TS5A23159;
- 赛普拉斯IO扩展IC CY8C9540A,以太网收发器DP83848I;
板载接口:
- 10/100Mbps以太网接口,RTC板载3V电池接口
- Mini-PCIe接口,符合PCIe2.0规范,最高可支持扩展32GB的micro-SD接口
- 1个USB2.0 HOST接口,1个USB2.0 CLIENT接口
- 两个UART接口(1个音频孔接口UART、1个排针式)
- 1个JTAG接口,1个8MB Flash ISP接口,5V DC电源接口
- 1个RESET按键,一个REBOOT按键
- RESET:复位运行的Ardunio 程序
- REBOOT:重启Quark X1000,即重启Linux系统
芯片的主频是400MHZ,比较不错了
内存的限制,MMU应该是有的,可以跑系统
IO的端口
在产品定位上,Intel 将 Quark 定位于面向物联网、可穿戴设备的 x86 处理器,他的内部代号为 Clanton。
相比 Atom 系列处理器,Quark 差不多是 Atom 1/5 的尺寸,功耗也只有 Atom 的1/10 (2.2W)。
这估计也是叫做 Quark(夸克)的原因。
当然,作为减小尺寸、功耗、降低成本($5)的代价,Quark 的性能也弱很多。
它比较像是改良了制程,但阉割了 MMX 指令集的奔腾 I 代处理器.
从支持的指令集看,Quark 并不像其他 Atom 芯片那样支持 x64、MMX、SSE 等高级的指令集,但包含了浮点指令集(x87)。
虽然 Intel 的官方参数中提到 Quark 的指令集是与奔腾兼容的,但很明显,由于缺少了 MMX 指令这个作为奔腾处理器的重要标志,实际上很多可以在奔腾 I CPU上运行的程序在 Quark 上可能是不能运行的。这点算是一个遗憾,缺少 MMX、SSE 这类 SIMD 的指令集加速,使得 Quark 在处理多媒体、图像运算、计算机视觉等算法上可能会表现的较差。
因此现在的程序只要不带有 MMX、SSE 指令,理论上是可以在 Quark 上运行的很好的。在功耗方面,Quark 将 max TDP 控制在 2.2W。对于采用 3.3V 供电而言,也就是最大需要提供 660mA 的电流。这样的功耗相比其他 x86 CPU 而言已经小了很多,但是我们对比同样主频等级的其他构架的处理器,如 ARM、MIPS 构架的一些处理器,就会发现 Quark 的功耗还是相对偏高的。如果要将 Quark 作为低功耗应用,Intel 为此还需要做更多的功课。
Galileo 上对外的 GPIO/PWM/ADC 接口并不是直接从 Quark 芯片中直接提供的,而是采用了额外的芯片来实现,Quark CPU 与这些接口芯片再使用 SPI/I2C 进行连接。
位于 Intel Gaileo 主板上有块 8MByte 大小的 SPI Flash,其中保存了 Galileo 启动中的固件程序。
Galileo 采用了 UEFI,这块 Flash 芯片中包含了 UEFI 的固件程序用于 Galileo 初始化引导、以及一个小型的 Linux 操作系统,用于运行用户通过 Arduino IDE 开发的程序并和 PC 完成互联。
为了方便用户 hack,Intel Galileo 也很友善的将这块 Flash 芯片的 SPI 接口引出,用户可以不需要拆下 Flash 芯片,直接使用编程器对 Flash 芯片内的固件程序做修改和备份。
如果我要是Intel的员工就好了,说不准可以看
为英特尔® Galileo Maker Board 安装 x86 交叉编译器工具链
主板支持包 (BSP) 包含适用于英特尔® Galileo 主板和英特尔® Galileo Gen 2 主板的 1.1.1 版
自己编译怎么弄?
1.准备你的板子
代码语言:javascript复制2. 下载最新的 Galileo 运行时(用户指南的第 3 部分)
代码语言:javascript复制 git clone https://github.com/01org/Galileo-Runtime.git
cd Galileo-Runtime
代码语言:javascript复制3. 构建 Linux 内核(用户指南第 6 部分)
代码语言:javascript复制 cd meta-clanton
./setup.sh
source poky/oe-init-build-env yocto_build
bitbake image-spi-galileo
代码语言:javascript复制4. 构建 EDKII(用户指南的第 4 部分)
4.1。准备构建环境(用户指南的第 4.2.1 部分)
代码语言:javascript复制 cd Quark_EDKII
./svn_setup.py
svn update
代码语言:javascript复制4.2. 构建 EDKII(用户指南的第 4.4 部分)
代码语言:javascript复制 export GCCVERSION=$(gcc -dumpversion | cut -c 3)
./quarkbuild.sh -r32 GCC4${GCCVERSION} QuarkPlatform
代码语言:javascript复制4.3。为 SPI 闪存工具创建符号链接
代码语言:javascript复制 export GCCVERSION=$(gcc -dumpversion | cut -c 3)
ln -s RELEASE_GCC4${GCCVERSION} Build/QuarkPlatform/RELEASE_GCC
代码语言:javascript复制5. 创建闪存映像 (SPI)
代码语言:javascript复制 cd sysimage/sysimage.CP-8M-release
../../spi-flash-tools/Makefile
代码语言:javascript复制6. 恭喜!
代码语言:javascript复制 Flash-missingPDAT.cap
代码语言:javascript复制是您可以闪存到 Galileo 的固件。
也有一份参考的文档
关于串口:
耳机接口, 从上至下, 分别是 左声道, 右声道, 地。
/ /
/-- /--
|棕| |紫|
|红| |绿|
|黑| |黑|
耳机左声道(紫色)
耳机右声道(绿色)
耳机地 (蓝色)
注意: Intel Galileo的UART输出是RS232电平, 不能接TTL/USB接在电脑上. 否则会乱码.毕竟电平不兼容.
--------------------------
九针串口接法
耳机左声道接 ---> 九针串口的2 input RxD
右声道接 ---> 九针串口的3 output Txd
地接 ---> 九针串口的5 ground
九针串口的4 output DSR 与 6 input DSR连接
九针串口的7 output RTS 与 8 input RTS连接
Arduino和芯片的映射情况
Arduino可以直接控制
代码语言:javascript复制C:UsersyunswjAppDataLocalArduino15packages
其实每次都是编译成Linux下的一个应用而已
因为偷懒的缘故,还有很多东西没有写,下篇文章继续。
代码语言:javascript复制https://github.com/SeanXP/Intel-Galileo
各种文档
代码语言:javascript复制https://github.com/intel/Galileo-Runtime
运行内核