随笔分类 -  ARM:裸机、C和汇编

主要是在ARM裸机开发时用到的C和汇编。
摘要:裸机离奇事件:Freescale usbucosiiFreescale\KSDK_1.2.0\examples\twrk65f180m\demo_apps\usb\host\cdc\cdc_serial{1. usb 发送函数卡死,不能再重新进入该任务,app其他任务alive2. usb 引发 h 阅读全文
posted @ 2016-09-21 17:12 oucaijun 阅读(260) 评论(0) 推荐(0) 编辑
摘要:从汇编的角度看inline函数与非inline函数 http://blog.csdn.net/cxmanzhao/article/details/6801786 强制内联和强制不内联 http://blog.csdn.net/hanchaoman/article/details/7270341 in 阅读全文
posted @ 2016-08-17 22:09 oucaijun 阅读(435) 评论(0) 推荐(0) 编辑
摘要://2440INIT.S 阅读全文
posted @ 2016-07-31 12:43 oucaijun 阅读(703) 评论(0) 推荐(0) 编辑
摘要:首先给出一些定义: //2440addr.inc //option.inc //2440init.s 下面进入正题: //2440init.s uart是一个外部中断,走的是FIQ. 外部中断 --> b HandlerFIQ ; 看代码发现HandlerFIQ在init.s中进行了宏定义,展开之后 阅读全文
posted @ 2016-07-31 12:35 oucaijun 阅读(1394) 评论(0) 推荐(0) 编辑
摘要:ARM简介[1] 1. ARM只卖知识产权,不卖(物理的,实质的)产品。 全世界100多家公司购买了ARM授权,包括三星,Freescale、NXP Semiconductors、STMicroelectronics、Texas Instruments ,Toshiba,Analog Device, 阅读全文
posted @ 2016-07-15 11:22 oucaijun 阅读(1528) 评论(0) 推荐(0) 编辑
摘要:arm-none-linux-gnueabi-gcc -v gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202) 重点: 代码中的内存分配, 地址从低到高: 代码段(RO, 保存函数代码) --> 只读数据段(RO, 保存常量) --> 数据段(RW, 已 阅读全文
posted @ 2016-06-23 16:31 oucaijun 阅读(1452) 评论(0) 推荐(0) 编辑
摘要:# gcc -vgcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5) 重点: 代码中的内存分配, 地址从低到高: 代码段(RO, 保存函数代码) --> 只读数据段(RO, 保存常量) --> 数据段(RW, 已初始化并且初始值不为0的全局变量和静态变量 阅读全文
posted @ 2016-06-23 16:15 oucaijun 阅读(2258) 评论(0) 推荐(1) 编辑
摘要:一. bss介绍: 代码中函数、变量、常量 / bss段、data段、text段 /sct文件、.map文件的关系[实例分析arm代码(mdk)] 二. 分析uboot代码中的clearbss段的代码: _bss_start 和 __bss_start 1. u-boot-1.1.6/board/1 阅读全文
posted @ 2016-06-21 17:42 oucaijun 阅读(1464) 评论(0) 推荐(0) 编辑
摘要:ARM下的位置无关和相关码 为什么需要位置无关码? 见 : U-BOOT详解(什么是《编译地址》?什么是《运行地址》?) http://bbs.21ic.com/forum.php?mod=viewthread&tid=857037&typeid=114 ARM位置无关代码设计规范 http://w 阅读全文
posted @ 2016-06-12 14:40 oucaijun 阅读(3412) 评论(0) 推荐(0) 编辑
摘要:操作系统原理 我们每天都同操作系统打交道,了解一些操作系统原理上的知识是绝对有必要的,它可以让你了解操作系统内部是怎么工作的,为什么会出现这样那样的问题,为我们解决这些问题提供思路。 本文完全是为普通电脑用户写的,省略了所有难以理解的算法、原理,没有太多细节上的东西,只是针对普通电脑用户可能感兴趣的 阅读全文
posted @ 2016-05-19 14:24 oucaijun 阅读(286) 评论(0) 推荐(0) 编辑
摘要:Keil4 每次选build 编译(F7)都全部编译的解决办法 http://blog.csdn.net/wchengshen/article/details/50440079 Keil4 每次选build 编译(F7)都全部编译的解决办法: ocean 验证: project--option fo 阅读全文
posted @ 2016-05-18 13:23 oucaijun 阅读(3044) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2016-03-24 14:50 oucaijun 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2016-03-17 13:32 oucaijun 阅读(1) 评论(0) 推荐(0) 编辑
摘要:STM32CubeMX是一款图形化软件设置工具,允许使用图形化向导来生成C初始化代码。它是未来开发stm32系列产品的主流软件,是ST公司的主动原创,可以减轻开发工作,时间和费用。STM32Cube覆盖了STM32系列。目前ST公司推荐软件开发者使用该软件配置stm32底层代码并在大力推广。欢迎大家 阅读全文
posted @ 2016-02-26 12:22 oucaijun 阅读(862) 评论(0) 推荐(0) 编辑
摘要:MDK的优化应用 http://blog.163.com/zhaojun_xf/blog/static/300505802011291384721/ 使用Keil/MDK这么多年了,一直都没有使用它的代码优化功能。总是觉得在容量可以容纳的情况下没有必要。最近在做一个摄像头项目时,总是只能在TFT上显 阅读全文
posted @ 2016-01-19 11:07 oucaijun 阅读(360) 评论(0) 推荐(0) 编辑
摘要:使用结构体操作寄存器://寄存器赋值和取值的时候,要注意寄存器的长度,有的寄存器的值只有8位。//还要注意,使用volatile修饰寄存器变量。volatile 参考http://www.cnblogs.com/mylinux/p/4630749.html//addr.htypedef unsign... 阅读全文
posted @ 2014-12-26 17:29 oucaijun 阅读(1471) 评论(0) 推荐(0) 编辑
摘要:一、nand启动和nor启动:[1] CPU从0x00000000位置开始运行程序。 1、nand启动: 如果将S3C2440配置成从NANDFLASH启动(将开发板的启动开关拔到nand端,此时OM0管脚拉低)S3C2440的Nand控制器会自动把Nandflash中的前4K代码数据搬到内部... 阅读全文
posted @ 2014-12-23 17:32 oucaijun 阅读(3457) 评论(1) 推荐(0) 编辑
摘要:ldr,str,ldm,stm的命名规律:这几个指令命名看起来不易记住,现在找找规律。指令样本效果归纳名称解释ldr Rd,addressingldr r1,[r0]addressing to Rd [mem to reg]load to registerstr Rd,addressingstr r... 阅读全文
posted @ 2014-12-23 15:51 oucaijun 阅读(1959) 评论(0) 推荐(0) 编辑
摘要:ucosii原来的禁止中断以及恢复中断的代码是最简的,但是使用之前,必须声明一个固定名为 OS_CPU_SR cpu_sr 的变量,吊在那里感觉很怪。 改了下,这样可以如下使用这个功能: [这是一个荒谬而明显的错误, 但我还是把他留下来了,提醒我不要自作聪明.] 仍要配对使用。 msr /msr的名 阅读全文
posted @ 2014-12-23 14:45 oucaijun 阅读(861) 评论(0) 推荐(0) 编辑
摘要:ARM标准汇编与GNU汇编http://www.cnblogs.com/hnrainll/archive/2011/05/17/2048315.html 阅读全文
posted @ 2014-12-11 17:24 oucaijun 阅读(171) 评论(0) 推荐(0) 编辑

下载TeamViewer完整版 下载TeamViewer
点击右上角即可分享
微信分享提示