arm

Cross compile from linux to ARM-ELF (ARM926EJ-S/MT7108)

血红的双手。 提交于 2020-02-11 07:54:20
问题 I have installed all cross compile packages on my ubuntu system so far but am having a problem and need some help. Processor : ARM926EJ-S rev 5 (v5l) BogoMIPS : 184.72 Features : swp half thumb fastmult edsp java CPU implementer : 0x41 CPU architecture: 5TEJ CPU variant : 0x0 CPU part : 0x926 CPU revision : 5 Cache type : write-back Cache clean : cp15 c7 ops Cache lockdown : format C Cache format : Harvard I size : 32768 I assoc : 4 I line length : 32 I sets : 256 D size : 32768 D assoc : 4 D

Cross compile from linux to ARM-ELF (ARM926EJ-S/MT7108)

巧了我就是萌 提交于 2020-02-11 07:53:04
问题 I have installed all cross compile packages on my ubuntu system so far but am having a problem and need some help. Processor : ARM926EJ-S rev 5 (v5l) BogoMIPS : 184.72 Features : swp half thumb fastmult edsp java CPU implementer : 0x41 CPU architecture: 5TEJ CPU variant : 0x0 CPU part : 0x926 CPU revision : 5 Cache type : write-back Cache clean : cp15 c7 ops Cache lockdown : format C Cache format : Harvard I size : 32768 I assoc : 4 I line length : 32 I sets : 256 D size : 32768 D assoc : 4 D

痞子衡嵌入式:ARM Cortex-M内核那些事(3.3)- 为AI,ML而生(M55)

雨燕双飞 提交于 2020-02-11 00:54:36
  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是 ARM Cortex-M55 。   鼠年春节,大家都在时刻关心 2019nCoV 疫情发展,没太多心思搞技术,就在这个时候,ARM 不声不响搞了个大新闻,如果你登录 ARM developer 网站,会发现 Cortex-M 家族多了一个新成员:Cortex-M55   这个 Cortex-M55 到底是什么来头?之前可是一点消息都没有啊!这个命名看起来像是 Cortex-M33/M35P 的大哥,但说不定也可能是 Cortex-M7 的大哥,反正自从 Cortex-M23 出来也是搞不懂 ARM 什么命名套路了,为了解开心头疑惑,让我们去一探究竟,直接打开Cortex-M55的模块框图:   模块框图乍一看似乎没什么新意,内核架构是 ARMv8.1-M mainline,看名字像是 ARMv8-M mainline 的小升级(流水线从 3 级变 4 级了,性能应该有点提升,查一下跑分确实从 4.02 CoreMark/MHz 提升到了 4.2 CoreMark/MHz),另外看到 TrustZone 在压阵,那基本就是 Cortex-M33 的大哥没得跑了。咱们再去查查 Cortex-M55 具体特性:   看到这基本才知道 Cortex-M55 是什么来头,Cortex-M55 中引入了 I/D-TCM

'pthread_getspecific@@GLIBC_2.4'

守給你的承諾、 提交于 2020-02-10 15:08:12
/opt/GSRD/gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-20121123_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: AsyncTCPClient.o: undefined reference to symbol 'pthread_getspecific@@GLIBC_2.4' Makefile:526: recipe for target 'sick_safetyscanners_base-cpp' failed /opt/GSRD/gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-20121123_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: note: 'pthread_getspecific@@GLIBC_2.4' is defined in DSO /opt/GSRD/gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-20121123_linux/bin/../arm-linux-gnueabihf

ARM 裸机程序学习 01 - 点亮LED

一曲冷凌霜 提交于 2020-02-10 02:47:26
开始研究ARM了,从最基础最简单的,点亮LED灯开始。   //嗯,最简单的应该是直接把LED灯接在电源上吧…… 主要学习一下汇编代码的结构,ARM GPIO口的控制。 硬件环境: s3c2440处理器 GPB5、GPB6、GPB8、GPB10口各接一个发光二极管, 发光二级管正极接电源,负极接GPB口。(即低电平导通并发光) Code Warrior 编译 汇编代码: 1 AREA LEDSAMPLE,CODE,READONLY 2 ENTRY 3 START 4 LDR R3, =0x56000010 5 LDR R4, =0x00DDD7FC 6 STR R4, [R3] 7 8 LDR R1, =0x56000014 9 MOV R2, #0X0 10 STR R2, [R1] 11 12 B START 13 END 注解及笔记: 01 指示一个代码段或者数据段; LEDSAMPLE:段名;CODE:表示这是一个代码段;READONLY:表示只读 02 入口 03 标号,用于跳转指令。 另外 标号需要顶格写,也就是说,其他的代码不可以顶格写 04 LDR伪指令(不同于ARM指令LDR),将一个值(立即数0x56000010)存入寄存器R3 0x56000010为GPB的控制寄存器地址,即GPBCON 而ARM装载指令LDR用法一般为: LDR R1, [R2]

ADD or SUB with only two operands in ARM

∥☆過路亽.° 提交于 2020-02-05 08:31:27
问题 I am learning ARM Assembly Language. I'v read ADD should have 3 operands. However, I'v seen many cases in reality there are only two. such as: STR R1, [SP,#0x20+var_1C] LDR R1, =(a_lua - 0x1DE4E6) MOVS R0, R4 ; haystack ADD R1, PC BLX strstr CMP R0, #0 BNE loc_1DE4FA Can any one help me with the meaning of ADD with two operands? Many thanks! 回答1: Given the information in the comments that this really is ARM code, not 16-bit Thumb, then the answer is that your reference material predates UAL.

引擎技术中骨骼动画的蒙皮设计与实现

半城伤御伤魂 提交于 2020-02-03 22:46:54
自己研究的主要是ogre引擎,最近由于在做SBS的蒙皮研究,所以系统的学习了一下骨骼动画的实现源码.由于GEEgine(具体参考《3D游戏引擎设计与实现》)是仿照OGRE的骨骼动画实现的,所以我先以这个为切入点。 首先说明骨骼动画的思想:大致就是在骨骼和mesh之间建立一种关联,这种关联诱使在骨骼运动的时候mesh也做运动,在这里我们暂且不考虑IK.通过系统的研究源码和参考论文。个人感觉很多概念性东西在和具体实现起来时总会有或多或少的‘冲突’,从而总让人感觉有点置身于云里雾里。如果不弄明白之间的联系,很难对蒙皮做出进一步的改正。我这里谈谈自己的心得体会:第一:可以换种思维方式,把骨骼和顶点之间看成是相对的关系;第二,要能够区分全局坐标系和局部坐标系;第三,适当的应用逆向思维. 进入主题:以线性蒙皮为例,在任何文献中你都能看到形似的公式(以D3D为例,OPENGL是右手坐标右乘,类同):V ‘ = V * B的逆矩阵 * A。要看透这个公式,最好自己先去推导一下二维坐标系中一个点用局部坐标顶点和世界坐标顶点两种表示方式的转换。我来讲讲我的理解.由于骨骼动画都是初始空间,就是分配权重的时候骨骼和mesh所在的那个空间,我们要建立骨骼和mesh的关系,要做两步操作: 1,分配权重,有很多种方法,可以自己写程序实现,也可以用Maya帮你完成这一步,具体smooth算法可以参考Jason

STM32 分析启动代码

折月煮酒 提交于 2020-02-03 11:02:25
0x08000000 0408 DCW 0x0408 0x08000002 2000 DCW 0x2000 0x08000004 0059 DCW 0x0059 0x08000006 0800 DCW 0x0800 0x08000008 00AF DCW 0x00AF 0x0800000A 0800 DCW 0x0800 0x0800000C 00A7 DCW 0x00A7 0x0800000E 0800 DCW 0x0800 0x08000010 00AB DCW 0x00AB 0x08000012 0800 DCW 0x0800 0x08000014 00A1 DCW 0x00A1 0x08000016 0800 DCW 0x0800 0x08000018 00C9 DCW 0x00C9 0x0800001A 0800 DCW 0x0800 0x0800001C 0000 DCW 0x0000 0x0800001E 0000 DCW 0x0000 0x08000020 0000 DCW 0x0000 0x08000022 0000 DCW 0x0000 0x08000024 0000 DCW 0x0000 0x08000026 0000 DCW 0x0000 0x08000028 0000 DCW 0x0000 0x0800002A 0000 DCW 0x0000

DSP处理器和ARM处理器的区别以及各自应用在那些领域

眉间皱痕 提交于 2020-02-03 06:39:35
  由于工作经常接触到各种多核的处理器,如TI的达芬奇系列芯片拥有1个DSP核3个ARM核。那么DSP处理器和ARM处理器各自有什么区别,各自适合那些领域? DSP:digital signal processor数字信号处理器,也指digital signal process数字信号处理,有自己指令集。DSP处理器的特点如下: 有专门的的硬件乘法器,能进行大量的乘法操作,与通用的MCU处理器不同,通用的MCU在执行乘法操作时是通过软件编程的方式的来实现的,通常需要几十甚至上百个时钟周期,而DSP处理器却有自己的硬件乘法器,使用硬件的方式来执行乘法操作,用硬件的方法总比用软件的方法有着无法比拟的速度优势。另外DSP处理都有自己的累加器单元AUL,大多数的DSP处理器在执行乘加操作时可以在一条指令周期内同时完成乘法和加法操作。DSP与一般MCU最大的区别在于DSP拥有硬件乘法器。 拥有哈弗型的总线结构,使得取指令和取数据可以同时进行,大大提高了并行处理的能力。 pipeline技术。广泛采用pipeline(流水线)处理技术使得DSP芯片大大减少了指令执行的时间,增强了处理器的处理能力。一条指令在执行的过程中需要经过取指、指令译码、取操作数以及指令执行等几个阶段,DSP的pipeline技术是指程序在运行时若干条指令是同时进行的,即在本条指令执行的同时

Strange content when debugging some Armv5 assembly code

Deadly 提交于 2020-02-02 16:00:50
问题 I am trying to learn ARM by debugging a simple piece of ARM assembly. .global start, stack_top start: ldr sp, =stack_top bl main b . The linker script looks like below: ENTRY(start) SECTIONS { . = 0x10000; .text : {*(.text)} .data : {*(.data)} .bss : {*(.bss)} . = ALIGN(8); . = . +0x1000; stack_top = .; } I run this on qemu arm emulator. The binary is loaded at 0x10000 . So I put a breakpoint there. As soon as the bp is hit. I checked the pc register. It's value is 0x10000 . Then I