arm

U-boot中SPL功能和源码流程分析

我的梦境 提交于 2020-02-27 09:32:32
   在U-boot目录下,有个比较重要的目录就是SPL的,SPL到底是什么呢?为什么要用它呢?    SPL(Secondary programloader)是uboot第一阶段执行的代码。主要负责搬移uboot第二阶段的代码到 系统内存(System Ram,也叫片外内存)中运行。 SPL是由固化在芯片内部的ROM引导的。我们知道很多芯 片厂商固化的ROM支持从nandflash、SDCARD等外部介质启动。所谓启动,就是从这些外部介质中搬移一段 固定大小(4K/8K/16K等)的代码到内部RAM中运行。这里搬移的就是SPL。在最新版本的uboot中,可以看到 SPL也支持nandflash,SDCARD等多种启动方式。当SPL本身被搬移到内部RAM中运行时,它会从nandflash、 SDCARD等外部介质中搬移uboot第二阶段的代码到系统内存中。     SPL复用的是uboot里面的代码.    SPL的主要功能就是衔接系统的硬件SRAM和u-boot之间的纽带。 1.BasicArm Initialization 2.UART console initialization 3.Clocks and DPLL Locking(minimal) 4.SDRAM initialization 5.Mux(minimal) 6.Boot Device

iOS simulator on mac is running i386 architecture, not armv7?

寵の児 提交于 2020-02-27 04:31:06
问题 I've got some static libraries I've built for use on armv7 architectures. When I try to use them in a iOS project which I testrun on the iphone 5.0 simulator, I get errors telling me about undefined symbols for architecture i386 in my static libraries. So I guess this means the iphone simulator wants libraries compiled for i386? What is the point of the simulator then - why dosn't it emulate armv7 architecture as well? So the only way I can test my static libraries is to connect a physical

RISC-V学习总结之历史和现状

柔情痞子 提交于 2020-02-26 06:30:30
RISC-V学习总结之历史和现状 康乐 2020.02.26 1 RISC与RISC-V RISC发明者是美国加州大学伯克利分校教师David Patterson,RISC-V(拼做risk-five)是第五代精简指令集,也是由David Patterson指导的项目。 1.1 为什么要做RISC-V指令集? 历史上是这样的,2010年伯克利大学并行计算实验室(Par Lab) 的1位教授和2个研究生(下图这三位大佬)想要做一个项目,需要选一种计算机架构来做。当时面临的的是选择X86、ARM,还是其他指令集,不管选择哪个都或多或少有些问题,比如授权费价格高昂,不能开源,不能扩展更改等等。所以他们在2010年5月开始规划自己做一个新的、开源的指令集,就是RISC-V。 接着时间到2015年,这个指令集在学术界已经开始出名了,这时为了更好的推动这个指令集在技术和商业上的发展,3位创始人大佬做了下面两件事情。 技术方向,成立RISC-V基金会,维护指令集架构的完整性和非碎片化。 商业方向,成立SiFive公司,推动RISC-V的商业化。 1.2 硬件构建语言Chisel 除了开发RISC-V指令集,大佬们还同步开发了用于RISC-V处理器设计的Chisel语言(Constructing Hardware in a Scala Embedded Language,硬件构建语言)。

Get MSB / LSB in register

无人久伴 提交于 2020-02-25 22:36:05
问题 This might seem like a stupid question, but I cant really tell what I'm missing On ARM 7: I have a 8 digit number in register 0, say 10110111 I want to 'loop' through this and do something with the current bit until the 8 bits are up, but I'm having alot of trouble with this simple issue.. My logic is: - get MSB / LSB of number in r0 - shift it to r1 - lsl / lsr r0 But from this logic, I dont know how you would get the MSB / LSB. Could anyone help me out? Or is there a better way of looping

Why does GCC produce illegal unalign accesses for ARM Cortex-A9

北慕城南 提交于 2020-02-25 14:00:17
问题 Target: ARM Cortex-A9 GCC Version: 4.9.2 Hello everyone, I have a problem with GCC producing core that causes data aborts because of unaligned accesses. I isolated a piece of code that shows the problem. I don't know how to make GCC to handle this correctly. Help would be appreciated! struct B { char c1; char c2; char c3; char c4; }; struct A { char c; struct B b; char c2; }; int main(int argc, char** argv) { struct A a; a.c2 = 42; // Works fine a.b.c1 = 42 // Works fine, too struct B b; b =

Why does GCC produce illegal unalign accesses for ARM Cortex-A9

前提是你 提交于 2020-02-25 13:57:11
问题 Target: ARM Cortex-A9 GCC Version: 4.9.2 Hello everyone, I have a problem with GCC producing core that causes data aborts because of unaligned accesses. I isolated a piece of code that shows the problem. I don't know how to make GCC to handle this correctly. Help would be appreciated! struct B { char c1; char c2; char c3; char c4; }; struct A { char c; struct B b; char c2; }; int main(int argc, char** argv) { struct A a; a.c2 = 42; // Works fine a.b.c1 = 42 // Works fine, too struct B b; b =

Why does GCC produce illegal unalign accesses for ARM Cortex-A9

余生颓废 提交于 2020-02-25 13:57:02
问题 Target: ARM Cortex-A9 GCC Version: 4.9.2 Hello everyone, I have a problem with GCC producing core that causes data aborts because of unaligned accesses. I isolated a piece of code that shows the problem. I don't know how to make GCC to handle this correctly. Help would be appreciated! struct B { char c1; char c2; char c3; char c4; }; struct A { char c; struct B b; char c2; }; int main(int argc, char** argv) { struct A a; a.c2 = 42; // Works fine a.b.c1 = 42 // Works fine, too struct B b; b =

TI AM570x浮点DSP C66x + ARM Cortex-A15开发板的CSI2 CAMERA接口、以太网接口

百般思念 提交于 2020-02-25 12:49:50
TL570x-EVM是一款由创龙基于SOM-TL570x核心板设计的开发板,它为用户提供了SOM-TL570x核心板的测试平台,用于快速评估SOM-TL570x核心板的整体性能。 TL570x-EVM底板采用沉金无铅工艺的4层板设计,不仅为客户提供丰富的TI AM570x开发入门教程,还协助客户进行底板的应用开发,提供长期、全面的技术支持,帮助客户以最快的速度进行产品的二次开发,实现产品的快速上市。 不仅提供丰富的Demo程序,还提供DSP+ARM多核通信开发教程,全面的技术支持,协助用户进行底板设计和调试以及DSP+ARM软件开发。 CSI2 CAMERA接口 CON13是CSI2 CAMERA接口,15pin FFC连接器,1.0mm间距,卧式下接式。该接口配合摄像头使用,接口定义如下图: 以太网接口 开发板配备了一个RGMII千兆以太网口CON15,采用了KSZ9031RNXIA网络芯片,可自适应10/100/1000M网络。两个PRU MII百兆以太网口CON16和CON17,可自适应10/100M网络。三网口均采用RJ45连接头内部已经包含了耦合线圈,因此不必另接网络变压器,使用普通的直连网线即可连接本开发板至路由器或者交换机。网络接口的接口定义如下图: 来源: CSDN 作者: Tronlong_ 链接: https://blog.csdn.net/Tronlong_

Is it possible to install SpaCy to Raspberry Pi 4 Raspbian Buster

蹲街弑〆低调 提交于 2020-02-25 03:39:28
问题 I have been stuck at installing SpaCy the entire day. sudo pip install -U spacy Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Collecting spacy Using cached https://files.pythonhosted... Installing build dependencies ... done Complete output from command python setup.py egg_info: Failed building wheel for blis ERROR: Failed to build one or more wheels Traceback (most recent call last): File "/tmp/pip-build-env-e4fo917j/lib/python3.7/site-packages/setuptools

Android深度探索(卷1):安装C/C++交叉编译环境

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-25 02:45:50
X86架构的CPU采用的是复杂指令集(Complex Instruction Set Computer,CICS),而ARM架构的CPU使用的是精简指令集(Reduced Instruction Set Computer,RISC)。由于这两种架构的CPU使用了不同的指令集,因此在X86架构上开发可运行在ARM架构上的程序就必须要使用交叉编译器。通常交叉编译器和相关工具包含的了很多可执行文件以及大量的共享库及头文件等资源。这些资源的集合称为交叉编译环境。 在Internet上可以找到集成好的交叉编译环境,Android NDK和Android源代码中也包含的交叉编译环境。当然,如果我们需要一个完全独立的交叉编译环境,可以下载集成好的交叉编译环境,也可以自己制作(比较复杂,建议读者下载集成好的交叉编译环境)。下面介绍一个CodeSourcery交叉编译环境,这个交叉编译环境直接下载安装就可以安装。 读者可通过如下的网站访问CodeSourcery下载页面。 http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/ 上面的页面并未直接提供CodeSourcery的下载链接,读者可以点击“Download the GNU/Linux Release”链接