ARM
gasbi
这个作者很懒,什么都没留下…
展开
-
KEIL Real view MDK中插入空操作NOP
折腾了大半天,才搞明白一个空操作的指令 先在网上查有的说是__asm{NOP;},从intrins.h里调用,可犄角旮旯全找了,也没看到什么intrint.h的文件。如果直接用,就出现error: #1113: Inline assembler not permitted when generating Thumb code 最后搜索这条错误,知道是因为__asm("指令")原创 2010-05-02 00:48:00 · 21439 阅读 · 5 评论 -
指针强制转换
假设一个函数void File_Name(char *fn)作用是给一个char类型的数组赋值,但是现在要用此函数给一个unsigned char类型的数组fn1赋值,KEIL就会警告:warning: #167-D: argument of type "unsigned char *" is incompatible with parameter of type "char *"这时后原创 2012-06-01 18:31:41 · 4917 阅读 · 0 评论 -
startup_stm32f10x_xx.s 启动代码文件选择
整体感觉stm32给的库文件太琐碎了,正如它的芯片型号一样繁多,例如启动文件:网上查到的各个文件的解释是:startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F107xxstartup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xxstartup_stm32f10x_hd_vl.原创 2012-05-08 11:48:37 · 20409 阅读 · 0 评论 -
CRC32校验C代码
CRC32校验C代码来自 http://www.ec66.com/article/list.asp?indexid=4251 /* CRC-32b version 1.03 by Craig Bruce, 27-Jan-94**** Based on "F转载 2011-09-19 11:20:13 · 2093 阅读 · 0 评论 -
KEIL MDK中 warning: #223-D: function "xxx" declared implicitly 解决方法
今天在EINT的范例里添加了一个函数,即eint.c中添加了一个datawrite()的函数,并在主函数main.c中调用,编译便警告warning: #223-D: function "datawrite()" declared implicitly很奇怪,在eint.c中也有初始化函数EINTInit()同样在main.c中调用没有问题,问什么偏偏这个不行。 但毕竟是个警告原创 2010-05-03 16:07:00 · 207866 阅读 · 17 评论 -
在KEIL RVMDK 下为单一C文件生成.LIB文件
在KEIL realview MDK下为单一C文件生成.LIB文件 查了一个下午,竟然没有一个网页完整的说清楚的这个问题,莫非太简单了大家不屑于说?看大多数说的都是简单地将整个工程转换成.LIB,在Project->Options for Target->Output下,原创 2011-09-08 19:24:43 · 21086 阅读 · 5 评论 -
KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data的解释
<br />KEIL RVMDK编译后的信息<br /> <br />Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 <br /> <br />Code是代码占用的空间,RO-data是 Read Only 只读常量的大小,如const型,RW-data是(Read Write) 初始化了的可读写变量的大小,ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不原创 2011-02-15 16:48:00 · 37523 阅读 · 8 评论 -
强制关闭进程方法
<br />最近给ARM下载用的FLASH magic tool总是中途死机,进程通过一般办法还终止不了,重启电脑也关不上,只能强行关机。于是找到下面强制关闭进程的方法: <br /><br />在命令提示符下,tasklist可以列出当前运行的所有进程名称、PID以及内存占用量。<br />而ntsd命令就可以强制关闭进程:ntsd -c q -p PID。<br />tskill命令也可以:tskill PID/PNAME。其中PNAME是希望关闭的进程名称,不加扩展名的。<br /原创 2010-11-15 10:46:00 · 4365 阅读 · 0 评论 -
使用KEIL模板程序时遇到函数undefined symbol函数
<br />使用KEIL CMSIS 例程模板注意在各个模块源文件lpc17xx_xxx.c中,例如ADC, PWM, GPDMA中都有一句 #ifdef _ADC 或 _PWM 或 _GPDMA,但与之对应的 lpc17xx_libcfg.h并没有定义,所以使用这些功能时要在lpc17xx_libcfg.h定义 <br />#define _ADC 1 <br />#define _PWM 1 <br />#define _GPDMA 1原创 2010-10-26 17:17:00 · 6151 阅读 · 1 评论 -
符号英文名
<br />给字库代码做注释,有些符号的英文名字闹不清,整理一下共大家参考<br />~ Tilde <br />! Bang <br />@ At <br /># Hash/Pound <br />$ Dollar <br />% Percent <br />^ Circumflex <br />& And <br />* Star<br />( Left Round Bracket <br />) Right Round Bracket <br />_ Under Line <br />- H原创 2010-09-07 11:58:00 · 1462 阅读 · 0 评论 -
KEIL MDK 的优化
用KEIL MDK uVision4,如下程序,GPS_flg 是一个全局变量,当有GPS数据时就会中断被置1,结果我在while(1)外面判断GPS_flg就始终为0,进入死循环出不来,在while(1)里面就可以判断到GPS_flg为1,最后找不到问题,把优化level1改成level0就好了。折腾了半天时间,难道优化这么恐怖? main() {... while(GPS_flg == 0) {;} while(1) { if(GPS_flg == 0) i++;原创 2010-08-18 08:43:00 · 5201 阅读 · 1 评论 -
LPC17XX PLL initializiion
<br />网页编辑跟C文件格式不同,注释不对齐。<br /> <br />注意LPC_SC->CCLKCFG = CCLKCFG_Val;不能放到PLL0配置之后!<br /> <br />#define CLOCK_SETUP 1<br />#define SCS_Val 0x00000020 <br /> /* Set Main oscillator 12MHz as system clock翻译 2010-06-03 18:25:00 · 2491 阅读 · 0 评论 -
NVIC中断使能
一直担心范例的中断的初始化或相互冲突,例如初始化一个外部中断范例中的函数是DWORD EINTInit( void ){ NVIC_InitTypeDef NVIC_InitStructure; PINSEL4 = 0x00100000; /* 设置set P2.10为EINT0以及设置P2.2~5为输出GPIO */ IO2IntEnF = 0x200; /* Port2.10为下原创 2010-05-14 09:29:00 · 6432 阅读 · 0 评论 -
使用KEIL MDK新建工程注意的问题
1、选择Options for targer的Device栏里选择指定芯片2、在Output栏里选择 Create HEX File,否则生成不了HEX文件,无法用Flashmagic烧写3、新添加的.C文件,一定要在C/C++栏里Include Path添加此文件所在路径,例如在当前project文件夹里的SSP文件夹,则为../SSP;原创 2010-05-11 17:01:00 · 1864 阅读 · 0 评论 -
LPC17XX SSP KEIL
自己写的SSP0/1驱动,SSP0测试通过 #include "lpc17xx.h" /* LPC17xx Peripheral Registers */#include "type.h"#include "nvic.h"#include "ssp.h"/***************************************************************原创 2010-05-11 16:14:00 · 5436 阅读 · 0 评论 -
BYTE,WORD,DWORD
最近在看LPC1766的KEIL例程,里面变量类型都是BYTE与WORD,DWORD,并不是常见的char,int等,查type.h,看到它们的定义如下: typedef unsigned char BYTE;typedef unsigned short WORD;typedef unsigned long DWORD;typedef unsigned int BOOL原创 2010-05-01 10:31:00 · 2827 阅读 · 0 评论 -
LPC17XX串口接收数据死机现象解决办法
写了段串口接收的函数gprs_callback放到串口中断中,如下:void gprs_callback(void){ if(GprsCnt GprsReceive[GprsCnt++] = LPC_UART2->RBR;}其中变量都是定义volatile的公共变量,但是发现程序极不稳定,常常运行一会就死机。 后来发现先把RBR送给一个局部变量,再送给公共变量就没原创 2012-06-22 09:35:14 · 4279 阅读 · 0 评论