
ARM系统
袁保康
.
展开
-
一个由uint64_t引起的libcurl中curl_formadd返回CURL_FORMADD_UNKNOWN_OPTION
详细描述就是,一个基于libcurl写的程序在电脑上支持正常,在嵌入式系统中运行不正常,报如上错误。我需要进一步追查问题所在。关键代码如下:/** */int upload(char* data, uint64_t len, char* name) { CURL *curl; CURLcode res; curl = curl_easy_init();// ...原创 2019-05-11 17:43:20 · 827 阅读 · 0 评论 -
Eclipse开发调试ARM裸机程序(五)MMU调试
Eclipse开发调试ARM裸机程序(五)MMU调试 代码如下:@*************************************************************************@ File:head.S@ 功能:设置SDRAM,将第二部分代码复制到SDRAM,设置页表,启动MMU,@ 然后跳到SDRAM继续原创 2013-04-08 22:01:15 · 2387 阅读 · 1 评论 -
Eclipse开发调试ARM裸机程序(二)LED_从ARM到GNU
就不对着数据手册说有寄存器了,主要说说ARM汇编和GNU汇编的区别,以前用RVDS2.2用的汇编程序都真ARM汇编。到用eclipse用的是编译u-boot或者内核的arm-linux-gcc,这次用的汇编要用GNU汇编,编译时交给arm-linux-gcc来做剩下的工作。 原来的一个RVDS2.2下的汇编LED程序是这样的:WTCON EQU 0x53000000原创 2013-04-08 08:08:28 · 3441 阅读 · 0 评论 -
Eclipse开发调试ARM裸机程序(四)赤裸裸的代码拷贝
Eclipse开发调试ARM裸机程序(四)赤裸裸的代码拷贝 在u-boot中有代码拷贝,所谓的移植都是看着高手们现成的代码照搬过来,没有问题就代表自己移植成功了,我也是这样的。但是这些代码真正的做了些什么,不知道,调试u-boot时候也想把这段代码调试一下,当时没有成功,这次裸机要见下它的真面目了。 我还达不到自己去写一个拷贝代码的程度,不过要是原创 2013-04-08 12:36:50 · 2486 阅读 · 0 评论 -
Eclipse开发调试ARM裸机程序(三)C语言LED_LINUX使用DNW
Eclipse开发调试ARM裸机程序(三)C语言LED_LINUX使用DNW 第二个程序用C语言实现的LED程序,Startup.S是启动代码;led_on_c.c是C语言实现的LED点灯程序。代码分别如下:@*************************************************************************原创 2013-04-08 10:18:26 · 3089 阅读 · 0 评论 -
GUN ASM说明
前段时间看arm的汇编,发现很多有一个小点,但是借来的书上的语法却没有,问同学也不知道,于是在网上查了一番才发现我书上看到的是arm的标准汇编,而有小点的gnu的汇编,于是将收集到的资料整理后放到这里来。GNU汇编语言结构 主要包括三个常用的段: data 数据段转载 2013-04-07 21:09:27 · 3858 阅读 · 0 评论 -
arm gnu 汇编语法
尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。一. Linux汇编行结构任何汇编行都是如下结构:[:] [} @ comment[转载 2013-04-07 19:00:18 · 1700 阅读 · 0 评论 -
Eclipse开发调试ARM裸机程序
终于还是要做裸机了,这次就想要用eclipse来开发调试裸机程序,这个在《用eclipse调试uboot工程》的基础上做的,基本的环境搭建是一样的。 第一个程序先用韦东山的最基本的裸机程序led_on这个程序(就是《嵌入式应用开发完全手册》光盘中的带的程序),像导入U-boot工程一样导入这个裸机工程。 Makefile稍微动一下,就是原来的开头的“l原创 2013-04-07 18:10:27 · 5104 阅读 · 2 评论 -
GNU ARM汇编伪操作(Directives) 命令集
本文是原创,转载请注明出处 本文链接:http://blog.sina.com.cn/s/blog_574d08530100hzie.html1.符号定义伪操作操作符 语法格式 说明.equ .equ symbol,expr 将symbol定义为expr.set .set symbol,expr转载 2013-03-02 13:59:54 · 1651 阅读 · 0 评论 -
文字池是什么意思?
/************************************************************************原文地址:http://www.mcuwhy.com/thread-71-1-1.html说明:在移植U-BOOT的lowlevel_init.S文件中出现的东西****************************************转载 2013-02-25 13:55:56 · 2809 阅读 · 0 评论 -
ADRL与LDR的区别
调一些代码遇到的问题,总结一下。 先铺垫一下,有这个一个问题: 圈6如何找到圈8 ? 答案a:找出圈8相对于圈6的位置,即圈6后边第二个。这个就是位置无关了。有一个神器就是“ADRL”,它能做到这一点。 答案b: 找出圈8的绝对地址,即地址3。找的办法可以原创 2013-04-11 17:16:57 · 2264 阅读 · 0 评论 -
MMU的通俗理解
MMU的通俗理解 看了两天了MMU,有点眉目,记下来。只说原理,不说具体的寄存器设置。 没有MMU时候,CPU核和外部存储器直接对话。情况是这样的: 有了MMU,CPU核外部存储器只找MMU(就好比:妈,我球鞋拿过来吧?妈,我初中的同学录在哪?这里边“妈”是MMU,“我”是CPU核)。按照上边的原创 2013-04-13 17:47:11 · 6324 阅读 · 1 评论 -
Eclipse开发调试ARM裸机程序(六)关于裸机调试i2c记录
关于裸机调试i2c记录 关于裸机调试i2c记录,遇到了不少的问题。现在都已经解决了。记录一下。1.整体的规划 既然是学习某个硬件的功能,我觉得就应该能用最简的代码来在不涉及其它硬件的情况下,做出来。所以我的规划是在仅有的:中断,IIC,再顺便加一个LED就来实现。不加SDRAM,不设置clock,不涉及NandFlash,不涉及N原创 2013-04-16 18:01:23 · 2766 阅读 · 0 评论 -
Ubuntu 14.04 编译最新版本strace
strace一直使用很多年前的版本,会有一个问题是,新版本加添了ioctl命令不支持,那么就会显示一个纯数字,看起来就比较恼火。所以会考虑到要编译最新版本的strace来调试。原创 2017-09-10 12:23:21 · 2398 阅读 · 0 评论 -
STM32duino: 关于Arduino与STM32
用过了一次Arduino,别提有多好用。从此不再做一个芯片需要看一个手册的开发。Arm也想做抽象层,但是抽象的还不够。比如CMSIS。效果没有Arduino好。目前STM32与Arduino擦出的火花有两个,一个是两者官方在2016年做出一个板子Arduino STAR - OTTO,还没有怎么开始卖,Arduino IDE里是有这个块板了。但是这个板还不能买到。也不知道价格是多少;第二个是h...原创 2017-08-23 01:19:25 · 20794 阅读 · 3 评论 -
CubieBoard2 Ubuntu配置记录
CubieBoard2 Ubuntu配置记录13年10月份买的开发板,一直没有派上用场。最近清灰后重新使用,因为手上只有这一块所谓开源的主板了。之前长期使用FriendlyARM的主板,从ARM9就开始使用,各有优缺。FriendlyARM系列主板的好处是资料比较齐全,如果从一个初学者开始学习使用,使用他们家的比较好,所有资料都整理到一个光盘上,完全不用网也能开发使用。而所谓cubieboard这样原创 2015-09-21 14:33:25 · 2878 阅读 · 0 评论 -
嵌入式Linux系统工程师系列之ARM920T的MMU与Cache
嵌入式Linux系统工程师系列之ARM920T的MMU与Cache宋劲杉 目录 虚拟地址和物理地址的概念 虚拟内存管理 ARM920T的CP15协处理器 MMU Cache 操作MMU和Cache的内核启动代码 参考资料 索引 视频欣赏 虚拟地址和物转载 2013-06-24 11:37:18 · 3249 阅读 · 0 评论 -
S3C2440 摄像接口CamInit()函数初始化之分析
在调试2440 相机接口的时候碰到问题最多的就是这个CamInit()函数,下面贴上代码,分析之. /* Description of ParametersCoDstWidth: Destination Width of Codec PathCoDstHeight: Destination Height of Codec PathPrDstWidth: Destina转载 2013-05-10 22:21:27 · 1795 阅读 · 0 评论 -
ARM架构下GCC中progma编译指示字
ARM架构下GCC中progma编译指示字主要说#pragma pack()1.为什么要内存对齐2.裸机代码验证ARM9(S3C2440)的默认对齐字节数(还不能证实)3.验证奇数地址访问的可行性(经实现可以看出,没有对奇数地址有特别要求)4.struct大小原创 2013-05-18 15:30:19 · 1656 阅读 · 0 评论 -
Eclipse开发调试ARM裸机程序(七)sd卡读写
Eclipse开发调试ARM裸机程序(七)sd卡读写 主要用到了sd card官网上的几个文档,《SD Specifications Part 1 Physical Layer Simplified Specification Version 4.10 January 22, 2013》里边讲了SD卡内部的寄存器,一般的时序。还有《SD Specifications原创 2013-04-26 13:19:31 · 3744 阅读 · 1 评论 -
Eclipse开发调试ARM裸机程序(七)LCD
Eclipse开发调试ARM裸机程序(七)LCD 原本想这个LCD应该很难做,但是一个小时搞出来了,2个小时整理下,让自己代码好看一点。这个次不能像I2C一样,用最简的代码来实现了,显示一个图片都要很大,4k的sdram根本不够用,就要用到SDRAM了。启动用的nand,sdram,clock,wathc_dog都是以前的模块,基本上拿来就能用,并没有太难。为了让代码同时具原创 2013-04-17 14:41:46 · 2945 阅读 · 0 评论 -
裸机建立C语言环境-设置堆栈指针和清理BSS段
以前稍微写过操作系统上的C程序,感受不出来:BSS段,堆栈的意义。到了在单片机上写程序也没有考虑这些问题。但是到了ARM上环境似乎没有那么简单了,C的环境要自己来创建,不然就不能用。这也深刻的感受到了C语言中原来难以理解的概念。裸机建立C语言环境-设置堆栈指针 这个是使用C语言的首要条件,不过这个就是指定一个sp指针就可以了,很简单的。ldr sp, =原创 2013-04-17 08:19:37 · 6418 阅读 · 12 评论 -
ARM基础:系统调用与软件中断SWI的实现
/******************************************************************************************************************原文地址:http://blog.youkuaiyun.com/mr_raptor/article/details/6556451说明:SWI。*********转载 2013-01-22 19:46:39 · 2587 阅读 · 0 评论 -
ARM基础:ARM指令之MSR
/******************************************************************************************************************原文地址:http://www.cnblogs.com/faraway/archive/2009/03/06/1404449.html说明:Error A145原创 2013-01-22 20:01:43 · 5541 阅读 · 0 评论 -
浅谈S3C2440的中断寄存器及中断过程
/******************************************************************************************************************原文地址:http://blog.youkuaiyun.com/ce123/article/details/6940349说明:浅谈S3C2440的中断寄存器及中断过程。转载 2013-01-28 18:16:16 · 1636 阅读 · 1 评论 -
ARM基础:MMU 异常向量表 重映射
/******************************************************************************************************************参考:说明:在学习裸机中断时重新遇到这个几个词,这次就要搞明白了。******************************************原创 2013-01-28 10:14:47 · 3059 阅读 · 0 评论 -
RVDS2.2:explicit type is missing ("int" assumed) register i
这个错误是因为register i;register是一个修饰符,当然还需要一个int或者char什么的放到中间。这就好比gcc下的:warning: type defaults to 'int' in declaration of 'i'可以用下边的代码验证一下:#include int main(){ register i = 0; printf("%d\n", i); re原创 2013-01-27 17:42:12 · 5690 阅读 · 0 评论 -
ARM基础:C程序调用汇编
/******************************************************************************************************************参考:说明:这个是存到一个变量中,以后再补充一个返回值保存到指针中的。****************************************原创 2013-01-25 17:17:48 · 2519 阅读 · 0 评论 -
ARM基础:汇编调用C程序
/******************************************************************************************************************参考:说明:汇编调用C程序。*************************************************************原创 2013-01-25 13:40:34 · 1524 阅读 · 0 评论 -
ARM基础:为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈
/******************************************************************************************************************原文地址:http://bbs.chinaunix.net/thread-2304248-1-1.html说明:为何C语言(的函数调用)需要堆栈,而汇编语言却不需转载 2013-01-24 08:24:59 · 3341 阅读 · 0 评论 -
ARM基础:ARM知识通俗理解
/******************************************************************************************************************参考:说明:。************************************************************************原创 2013-01-22 10:33:50 · 1579 阅读 · 0 评论 -
ARM基础:ARM 伪指令详解
/******************************************************************************************************************原文地址:http://blog.chinaunix.net/uid-13701930-id-336459.html说明:。***************转载 2013-01-24 11:19:22 · 2587 阅读 · 0 评论 -
ARM汇编语言中的中括号(“[”和“]”)是什么意思
/******************************************************************************************************************原文地址:http://65070204.blog.163.com/blog/static/10964853720111159531494/说明:在学习《时钟与定转载 2013-01-29 17:37:38 · 8534 阅读 · 0 评论 -
RVDS4.0:armcc Cannot obtain license for compiler (feature compiler) with license version = 4.0
安装RVDS4.0时(参照:http://blog.youkuaiyun.com/cp1300/article/details/7772645),在破解后,编译程序时会出现上边错误,然后在xp下装了一下可以的,对比一下差别是crack.dat这个批处理在win7下执行失败了。然后在网上找在win7下正常运行批处理的方法,就找到用 管理员(administrator)登陆(http://www.360doc.c原创 2013-02-03 19:31:56 · 5385 阅读 · 0 评论 -
RVDS4.0 :armlink : ambiguous section selection . object 2440init.o contains more than one section.
用三星的启动代码,以前在ADS2.2上正常,正在弄到RVDS4.0上就出现如下错误:在http://blog.youkuaiyun.com/sanlinux/article/details/5447622 看到一些解释:编译过程中遇到的问题及解决方案:L6211E: Ambiguous section selection. Object contains more than one原创 2013-02-03 21:22:04 · 4810 阅读 · 3 评论 -
ARM基础:linux运行态与ARM运行模式的对应
/******************************************************************************************************************原文地址:http://bbs.chinaunix.net/thread-1934063-1-1.html说明:。******************转载 2013-01-22 19:59:01 · 2025 阅读 · 0 评论 -
关于LCD以及BMP和RGB565
这次学习S3C2440裸机驱动LCD时,由于以前工作时接触过这方面内容,对于参数配置现在还是可以确定的,就简单熟悉了一下。 这次做这个实验了,就把它深入一下,就深入了解了BMP,以及为什么要首选BMP去显示。BMP分为1位,2位,4位,8位,16位,24位32痊。这次实验中用的是16位。bpp1bpp2bpp4bpp8bpp16bpp原创 2013-02-08 17:23:56 · 7393 阅读 · 0 评论 -
【转】JPEG压缩原理
第一章 图像压缩编码的综述 1.1 图象压缩的目的和方法 图象的数字化表示使得图象信号可以高质量地传输,并便于图像的检索、分析、处理和存储。但是数字图像的表示需要大量的数据,必须进行数据的压缩。即使采用多种方法对数据进行了压缩,其数据量仍然巨大,对传输介质、传输方法和存储介质的要求较高。因此图象压缩编码技术的研究显得特别有意义,也正是由于图象压缩编转载 2013-02-08 16:06:25 · 4375 阅读 · 0 评论 -
bmp转jpg(使用libjpeg)
bmp转jpg(使用libjpeg) jpg压缩原理可以参考这篇文章http://hi.baidu.com/tiandsp/item/f5a2dcde6ef1405bd73aae41,我很早以前转的一篇文章。 没有使用libjpeg的压缩代码可以看看这篇文章http://hi.baidu.com/tiandsp/item/9b5843c58a3b4474cfd4f841,也是我转载 2013-02-08 15:50:39 · 4791 阅读 · 0 评论 -
jpg转bmp(使用libjpeg)
jpg转bmp(使用libjpeg) 还是关于图像格式上的东西。使用了libjpeg库将jpeg图像转换到bmp格式。解压原理还是相对复杂的,将来有机会说不定会详细介绍。这里只是库的使用而已。 首先需要下载libjpeg库,网址在这里:http://www.ijg.org/ 然后需要配置环境,我是在windows下用vs2010搞的,编译库可以参考这篇文章。编译出jpeg转载 2013-02-08 15:22:15 · 7213 阅读 · 0 评论