ARM
hohaixrh
这个作者很懒,什么都没留下…
展开
-
KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data的解释
KEIL RVMDK编译后的信息 Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 Code是代码占用的空间,RO-data是 Read Only 只读常量的大小,如const型,RW-data是(Read Write) 初始化了的可读写变量的大小,ZI-data是(Zero Initialize)转载 2014-03-27 13:57:30 · 1007 阅读 · 0 评论 -
stm32启动代码分析
最近开始使用ST的stm32w108芯片(也是一款zigbee芯片)。开始看他的启动代码看的晕晕呼呼呼的。还好在csdn上看到一片文章写的不错,分享下:文章转载至:http://blog.chinaunix.net/uid-2595338-id-2139588.html,感谢原作者!使用的芯片是 STM32F103VET,编译器使用 IAR ARM V5.5设置头文转载 2014-03-26 11:40:30 · 1330 阅读 · 0 评论 -
FreeRTOS STM32移植笔记
http://blog.csdn.net/xukai871105/article/details/131569771.前言 第一:其实说不上移植笔记,FreeRTOS已经移植至众多平台(MCU),包括MSP430,STM32等,这份笔记完全建立在官方代码的基础之上,简单的说就是修改一些设置从而完成一个呼吸灯实验。 第二:虽然有官方移植代码,但是官方移植版本为转载 2014-04-24 14:54:00 · 1171 阅读 · 0 评论 -
data in RW or ZI
http://www.keil.com/support/docs/3380.htmQUESTIONFor the following example code:char test_array[8];The linker reports these memory sizes RW data = 8 and ZI data = 0While for:cha原创 2014-07-03 10:25:32 · 730 阅读 · 0 评论 -
const char and static const char
The version with const char * will copy data from a read-only location to a variable on the stack.The version with static const char * references the data in the read-only location (no copy is原创 2014-06-20 09:52:50 · 4865 阅读 · 0 评论 -
undefined reference to
gcc编译时出现undefined reference to “XXXX”, 后来发现是因为原创 2014-09-04 14:37:46 · 893 阅读 · 0 评论 -
ARM hardfault分析
ARM hardfault handler出现有以下几种情况:1. 内存访问没有对齐,原创 2014-09-04 08:37:57 · 5899 阅读 · 0 评论 -
ARM学习网站
1.EG3 关于嵌入式开发的站点,提供非常多关于嵌入式开发的资料。包括开发公司,技术文档,免费资源等等。版面包括busses & boards,embedded software,dsp,embedded systems,open source,rtos,embedded chips,system-on-a-chip 等等。强烈推荐 http://www.eg3.com/ - 外文转载 2014-09-03 13:17:03 · 815 阅读 · 0 评论 -
gcc ld脚本分析
http://blog.chinaunix.net/uid-2595338-id-2139549.html连接脚本将我整整蒙了1天零一个上午,做了很多实验,看了人家不少例子代码勉强能驾驭了,让linker按照我想要的来处理,做个笔记。1,什么叫输入段,什么叫输出段不知道怎么回事,我对GCC系列的输入和输出两个单词总是进入思维死角,很简单就是 input section 和 ou转载 2014-09-03 13:07:16 · 2906 阅读 · 0 评论 -
eclipse 交叉编译环境调试找不到文件的解决办法
goto Window ==> Preferences ==> C/C++ ==> Debug ==> Source Lookup PathI Add a Path Mapping: Project SourceOn the left side I put the path that Cygwin expects, i.e. \home\MyName\projects and on the转载 2014-10-28 14:41:00 · 1708 阅读 · 0 评论 -
协议当中数据传输问题
各种通信协议从App到硬件层,数据的发送都是原创 2014-10-13 09:26:38 · 673 阅读 · 0 评论 -
在main()之前,IAR都做了啥?
最近要在Cortex-M3上写一个简单的操作系统,打算使用IAR,为了写好启动代码,花了一些时间了解了IAR在main()以前做了些什么事。首先系统复位时,Cortex-M3从代码区偏移0x0000'0000处获取栈顶地址,用来初始化MSP寄存器的值。接下来从代码区偏移0x0000'0004获取第一个指令的跳转地址。这些地址,是CM3要求放置中断向量表的地方。这里是一个程序的启动区的反转载 2014-03-26 11:14:48 · 865 阅读 · 0 评论 -
编译器之编程及语法Tips
1.定义一个变量在固定的地址:__ICCARM__ IAR编译器__CC_ARM Keil编译器#if defined (__ICCARM__)unsigned char ucPassword @0x20000004 = 0x01;#elif defined (__CC_ARM)unsigned char ucPassword __attribute__(转载 2014-03-27 09:19:53 · 721 阅读 · 0 评论 -
IAR与Keil启动代码分析比较
IAR: PUBWEAK Reset_Handler SECTION .text:CODE:REORDER(2)Reset_Handler LDR R0, =SystemInit BLX R0 LDR R0, =__iar_program_start BX原创 2014-03-27 15:38:42 · 3125 阅读 · 0 评论 -
ARM中的RO、RW和ZI DATA说明(转)
RO段、RW段和ZI段 要了解RO,RW和ZI需要首先了解以下知识:ARM程序的组成 此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别。 一个ARM程序包含3部分:RO,RW和ZI。RO是程序中的指令和常量;RW是程序中的已初始化变量转载 2014-03-27 13:53:59 · 864 阅读 · 0 评论 -
printf 重定向
usart这部分代码我也是从网上copy出来的,一下是作者的解释:简单地说:想在mdk 中用printf,需要同时重定义fputc函数和避免使用semihosting(半主机模式), 标准库函数的默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调用的与输出设备相关的函数. 例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法如下:转载 2014-04-17 09:25:47 · 5743 阅读 · 0 评论 -
ARM学习网站
http://www.arm.com/zh/原创 2014-03-20 17:48:03 · 527 阅读 · 0 评论 -
keil 默认包含目录
Keil\ARM\RV31\INC原创 2014-04-02 13:11:17 · 2415 阅读 · 0 评论 -
keil main之前执行过程
硬件复位后,第一步是执行复位处理程序,这个程序的入口在启动代码里(默认),摘录一段cortex-m3的复位处理入口代码: Reset_Handler PROC ;PROC等同于FUNCTION,表示一个函数的开始,与ENDP相对? EXPORT Reset_Handler [WEAK]转载 2014-05-05 13:27:36 · 5968 阅读 · 0 评论 -
STM32 Arm-Cortex bootloader
One of the more attractive features or the STM32 processors, at least in their more recent revisions, is the presence of a built-in serial bootloader. JTAG is all very well but you need extra hardware转载 2014-03-24 17:22:40 · 1498 阅读 · 0 评论 -
FreeRTOS源码分析-异常处理
__asm void vPortSVCHandler( void ){ PRESERVE8 ldr r3, =pxCurrentTCB /* Restore the context. */ ldr r1, [r3] /* Use pxCurrentTCBConst to get the pxCurrentTCB address. */ ldr r0, [r1] /*原创 2014-05-05 13:50:00 · 4509 阅读 · 2 评论 -
FreeRTOS源码分析-代码结构
FreeRTOS作为开源的轻量级实时性操作系统,不仅实现了基本的实时调度、信号量、队列和存储管理,而且在商业应用上不需要授权费。 FreeRTOS的实现主要由list.c、queue.c、croutine.c和tasks.c 4个文件组成。list.c 是一个链表的实现,主要供给内核调度器使用;queue.c 是一个队列的实现,支持中断环境和信号量控制;croutine.c 和t转载 2014-05-06 14:23:54 · 8933 阅读 · 0 评论 -
hex,bin,axf,elf文件格式的区别
hex,bin,axf,elf的区别 一、HEX 和 BINHex文件,这里指的是Intel标准的十六进制文件,也就是机器代码的十六进制形式,并且是用一定文件格式的ASCII码来表示.具体格式介绍如下: Intel hex 文件格式 Intel hex 文件常用来保存单片机或其他处理器的目标程序代码。它保存物理程序存储区中的目标代码映象。一般的编程器都支持这种格式。In转载 2014-05-07 17:19:19 · 1282 阅读 · 0 评论 -
rom size computation
grep "rom.rodata.*" text.map >rodatagrep "rom.text.*" text.map >textgrep "libXXX*" text > XXX.txtjawk '{sum += $3};END {print sum}' XXX.txt原创 2014-11-15 12:04:56 · 597 阅读 · 0 评论