arm

Android下运行c程序

限于喜欢 提交于 2020-03-30 06:49:50
在android的设计中,谷歌设计了一套专门为嵌入式设备使用的bionic C库,以替换原有的GUN Libc,这个精简的bionic库据说只有200多K,所以如果只想使用这个精简的C库像在linux下一样 开发C程序,基本是不可能的。当然如果只想让其在shell中运行还是可以做到的。 因为编译完的目标程序是在android下运行,就要使用交叉编译的工具,在下面地址下载: http://www.codesourcery.com/gnu_toolchains/arm/download.html 下载完之后,bin目录下的arm-none-linux-gnueabi-gcc就是交叉编译器了 #include <stdio.h> int main() { printf("nihao a\n"); printf("你好 啊\n"); return 1; } 输入一下命令: ./arm-none-linux-gnueabi-gcc hello.c -o hello -static -static选项在这里是必须的,否则会出现”not found”的错误。 然后就可以把编译好的hello传到手机上运行了。不过这里有个前提条件,要求android机器必须是root过的,好像简单的z4root还不行,必须使用更彻底的root方法,关于如何root,这里就不再赘述了,可以参考相关root的帖子。

C语言函数和汇编函数相互调用(转)

时光怂恿深爱的人放手 提交于 2020-03-25 08:34:27
3 月,跳不动了?>>> 在C程序main函数中,接收用户输入任意个整数,然后在main中调用使用ARM汇编编写的函数(在该函数中完成对这些整数的排序功能),然后再在C程序main函数中输出这些排好顺序的整数。 //main.c #include <stdio.h> int main() { int i=0; int num=0; int *array=NULL; while(num <= 0) //输入数组中元素的个数 { printf("please enter the number of elements:\n"); scanf("%d",&num); if(num > 0) {break;} } if(NULL == (array = (int *)malloc(num*sizeof(int)))) { printf("malloc failed!\n"); exit(-1); } printf("please enter the elements:\n"); for(i = 0; i<num; i++) { printf("\n%d:\t", i); scanf("%d", array+i); } sort(array, num);//调用相应的汇编的函数,注意分析传参过程 printf("The Result is:\n"); for(i = 0; i<num; i++

GDB在ARM板中的应用

依然范特西╮ 提交于 2020-03-25 08:13:53
GDB的下载: http://www.gnu.org/software/gdb/ 下载gdb-7.4.tar.bz2 1.解压: tar xjf gdb-7.4.tar.bz2 2.编译gdb和gdbserver 2.1 编译gdb:    cd gdb-7.4/   .configure -- target=arm-linux //配置    make //编译    make install //安装,注意如果直接运行make install的话,直接撞到pc机的usr/bin中去了。我不想这么直接安装,想看看安装时生成什么东西?    vi makefile,然后搜索prefix,这prefix就是指代安装的路径。因此我可以自定义我的安装路径   mkdir tmp    make install prefix = $PWD / tmp   此时可以去tmp目录下,看一下都生成了什么东西。你会看到有bin include lib share目录。进入bin目录,你会看到arm-linux-gdb的程序。 2.2 编译gdbserver   cd gdb / gdbserver   .configure --host = arm-linux    make    编译的过程中会出现错误:PTRACE GETSIGINFO没有定义。-I表示头文件在哪里。在

关于“Linux迎接挑战”的一场讨论

社会主义新天地 提交于 2020-03-23 17:03:15
3 月,跳不动了?>>> 关于“Linux迎接挑战”的一场讨论 中国开源软件推进联盟专家委员会Linux创始人Linus Torvalds说:Android就是Linux操作系统,今天全球持有Android智能手机的人已超过20亿;全球500台运行速度最快的超级计算机80%采用Linux;在网络领域,由中国企业(中移动.华为)主导的基于Linux的主流开源项目Open-O最近创新成功,该项目涉及网络管理和编排领域的创新,它将重新定义SDN的基础架构,指导全球一些大规模通信网络的部署和管理;甚至连微软的云计算平台今年8月也引入红帽的Linux(企业版)操作系统。Linux无处不在,但遭遇挑战。今发表中国开源软件推进联盟名誉主席陆首群教授和Linux基金会Linux大规模自动化测试专家吴峰光博士对话:“关于Linux迎接挑战的序列对话。 陆首群教授关于Linux迎接挑战的三个问题 (陆首群教授,中国开源软件推进联盟名誉主席) 陆:今天要跟你讨论的问题主要是Linux在发展中遇到了哪些挑战,我准备给Linux基金会创始人Linus Torvalds写信,问他有哪些应对措施。在写信前先跟你讨论: 第一个问题:有人说Linux的发展似乎不是从用户的需求出发的,而是来自开发者的创意。如果长此下去,是否会使Linux发展迷失方向? 第二个问题:Linux开发支持基于X86的主流架构

Subtracting two images using NEON

怎甘沉沦 提交于 2020-03-22 10:35:39
问题 I'm trying to subtract two images(grayscaled) by using Neon intrinsics as an exercise, I don't know what is the best way to subtract two vectors using the C intrinsics. void subtractTwoImagesNeonOnePass( uint8_t *src, uint8_t*dest, uint8_t*result, int srcWidth) { for (int i = 0; i<srcWidth; i++) { // load 8 pixels uint8x8x3_t srcPixels = vld3_u8 (src); uint8x8x3_t dstPixels = vld3_u8 (src); // subtract them uint8x8x3_t subPixels = vsub_u8(srcPixels, dstPixels); // store the result vst1_u8

[转帖]ARM版本的MacBOOK

倖福魔咒の 提交于 2020-03-22 07:44:04
推开英特尔,苹果推出ARM版MacBook的自信从何而来? 投递人 itwriter 发布于 2020-03-16 11:19 评论(8) 有259人阅读 原文链接 [收藏] « » https://news.cnblogs.com/n/657679/   图片来源@全景视觉   文丨雷科技 leitech   苹果爆料的老朋友郭明錤,又不声不吭带来了个新消息: 在 2020 年底之前,苹果将会带来首款采用 ARM 架构处理器的个人电脑产品 ,而且很可能会是一款 MacBook。   结合苹果过去几年间对 macOS 以及 iPadOS 生态的侧重方向,以及有望在 2021 年采用全新 MacBook 工业设计的传闻,这或许意味着苹果电脑业务即将走入新阶段。    选择 ARM 架构,离不开续航和散热   虽然转为线上进行,2020 年的苹果开发者大会 WWDC 依然选择在往年惯例的 6 月举办。 苹果并没有延期的“执拗”,很可能意味着有什么新技术和新方向需要准时向开发者公开 ,让整个生态有时间有余力跟进苹果的步伐。   之前几届 WWDC 侧重点放在了 iOS 设备为主的移动生态中,iOS 的种种新特性诸如黑暗模式、使用时间管理、AR 和机器学习的能力, Mac 以及 macOS 则显得低调许多,更像是对一个旧有的庞大系统进行缝缝补补式的改变 ,缺乏革命性升级。    如果要给

Is there an advantage of specifying “-mfpu=neon-vfpv3” over “-mfpu=neon” for ARMs with separate pipelines?

十年热恋 提交于 2020-03-21 19:29:12
问题 My Zynq-7000 ARM Cortex-A9 Processor has both the NEON and the VFPv3 extension and the Zynq-7000-TRM says that the processor is configured to have "Independent pipelines for VFPv3 and advanced SIMD instructions" . So far I compiled my programs with Linaro GCC 6.3-2017.05 and the -mfpu=neon option, to make use of SIMD instructions. But in the case that the compiler also has non-SIMD operations to be issued, will it make a difference to use -mfpu=neon-vfpv3 ? Will GCC's instruction selection

Is there an advantage of specifying “-mfpu=neon-vfpv3” over “-mfpu=neon” for ARMs with separate pipelines?

三世轮回 提交于 2020-03-21 19:25:47
问题 My Zynq-7000 ARM Cortex-A9 Processor has both the NEON and the VFPv3 extension and the Zynq-7000-TRM says that the processor is configured to have "Independent pipelines for VFPv3 and advanced SIMD instructions" . So far I compiled my programs with Linaro GCC 6.3-2017.05 and the -mfpu=neon option, to make use of SIMD instructions. But in the case that the compiler also has non-SIMD operations to be issued, will it make a difference to use -mfpu=neon-vfpv3 ? Will GCC's instruction selection

Is there an advantage of specifying “-mfpu=neon-vfpv3” over “-mfpu=neon” for ARMs with separate pipelines?

六眼飞鱼酱① 提交于 2020-03-21 19:24:12
问题 My Zynq-7000 ARM Cortex-A9 Processor has both the NEON and the VFPv3 extension and the Zynq-7000-TRM says that the processor is configured to have "Independent pipelines for VFPv3 and advanced SIMD instructions" . So far I compiled my programs with Linaro GCC 6.3-2017.05 and the -mfpu=neon option, to make use of SIMD instructions. But in the case that the compiler also has non-SIMD operations to be issued, will it make a difference to use -mfpu=neon-vfpv3 ? Will GCC's instruction selection

基于windows平台的Android原生(Native)C开发环境搭建

雨燕双飞 提交于 2020-03-20 02:13:47
1.搭建Cygwin,请先看我的另一篇博文的第二标题    http://www.cnblogs.com/tangjianke/archive/2011/09/27/2193324.html 2.搭建基于ARM的交叉编译环境   1.为什么?     Android是基于Linux的操作系统,处理器是ARM的,所以要在Linux或Windows等x86系统上编译Android能运行的程序,你需要一个交叉编译器。   2. 下载ARM交叉编译工具     我们选择使用CodeSourcery G++的在Windows平台免费的ARM交叉编译工具ARM EABI。可以去 http://www.mentor.com/embedded-software/codesourcery 下载,因为该网站更换连接较为频繁,这里不给出具体地址,在网站里找到。      然后下载windows版本的即可   3. 安装ARM交叉编译环境     1. 将EXE文件安装,我的安装路径(D:\Program Files\CodeSourcery\Sourcery G++ Lite)     2. 修改 D:\Cygwin\home\jianke.tang\.bash_profile 文件, 将 CodeSourcery编译器的bin目录 (我的是D:\Program Files\CodeSourcery