c及keil调试等

data

keil调试(对debug用处极大)

关于c语言类型转换

C的一些细节:

()&&()先计算前面若为0,后面不执行

a--先用后减   --a先减再用

char  *p=“abc”将指针指向字符串首地址

int *p=(int *)0x123456789

数组初始化,所附数值个数小于数组长度时自动补0

函数参数为数组时   形参可以是数组或指针

static int fun ()静态(内部)函数,只供本文件其他函数调用   修饰变量则只能被本文件引用

extern int fun()可被其他文件函数引用

x=p->name 去除地址p开始的结构体中的name的值给x

运算符从左至右  如a>b>n   若a=3,b=2,c=1 则前式等于0

int(*p)【4】指向一维数组的指针   int*p【4】  数组指针

int(*fun)(int a,int b)函数指针    int*a(int x,int y)返回值为指针的函数

INI

(文件扩展名)

主要存放用户所做的选择以及系统的各种参数。用户可以通过修改INI文件,来改变应用程序和系统的很多配置

嵌入式c规范

标准:

1,代码稳定,没有隐患。

2,执行效率高。

3,可读性高。

4,便于移植。

技巧:

1、尽量少用库函数,便于不同的mcu和编译器间的移植

2、选择合适的算法和数据结构

用链表

3、使用尽量小的数据类型

执行速度降低。

4、使用自加、自减指令

5、减少运算的强度

(1)、求余运算。某数关于2的n次求余,可用位运算,如a%8可换为a&7

乘以或除以2n,都可以用移位的方法代替

、循环

对于一些不需要循环变量参加运算的任务可以把它们放到循环外面,这里的任务包括表达式、函数的调用、指针运算、数组访问等。

用自减延时函数。

7、查表

在程序中一般不进行非常复杂的运算,如浮点数的乘除及开方等,以及一些复杂的数学模型的插补运算,对这些即消耗时间又消费资源的运算,应尽量使用查表的方式,并且将数据表置于程序存储区。如果直接生成所需的表比较困难,也尽量在启了,减少了程序执行过程中重复计算的工作量。

其他点击打开链接

时间: 2024-10-27 11:01:01

c及keil调试等的相关文章

keil 调试指针不跳转 0x00000000 0000 MOVS r0,r0

不跳转是因为没有设置为调试模式,如下设置就能搞定 调试模式当然是根据情况而定,效果如下,搞定,不过当然必须有main函数的定义 keil 调试指针不跳转 0x00000000 0000 MOVS r0,r0,布布扣,bubuko.com

Keil调试STM32中解析main开始前的工作

Cortex M3的内核有三种启动方式,其分别是: A.通过boot引脚设置可以将中断向量表定位于SRAM区,即起始地址为0x2000000,同时复位后PC指针位于0x2000000处: B.通过boot引脚设置可以将中断向量表定位于FLASH区,即起始地址为0x8000000,同时复位后PC指针位于0x8000000处: C.通过boot引脚设置可以将中断向量表定位于内置Bootloader区, Cortex-M3内核规定,起始地址必须存放堆顶指针,而第二个地址则必须存放复位中断入口向量地址,

keil调试问题记录

1.错误类型:L6218E:Underfined symbol &&&&&&&&& (referred form &&&&&.o). 现象说明:明明已经定义了&&&&&&&&&函数,也有&&&&&&&&&函数的实现,也包含头文件了,可就是在连接时提err

keil中的串口调试:

keil中串口的虚拟调试信息在通过View-serial windows-#usart1/2/3/4/debug(printf)可以看到.当然也可以通过虚拟串口VSPD+串口调试助手在外部实现,方法如下: 虚拟 串口使用:步骤 1 下载虚拟串口软件,虚拟2个连接的串口COMA/COMB,这两个串口与PC机的真实物理串口没关系.两边的设置相同 2 打开串口通讯助手,将A分配给串口通讯助手,则B就分配给下面的COMx 2 在MDK中输入命令行或者将下面的做成debug.ini文件加载 MODE CO

keil,调试告警 This target device does not support all the defined breakpoints! Please reduce the number of breakpoints and start again.

keil调试的时候告警This target device does not support all the defined breakpoints! Please reduce the number of breakpoints and start again. “此目标设备不支持所有定义的断点请减少断点数并重新启动.” 意思是断点太多了,经过检测断点超过5个就会出现这种问题 解决方案: 继续开启调试模式,弹出告警框之后,点击确定,去掉告警框,然后再用快捷键(Ctrl+B),打开breakpo

Proteus与Keil连接及其仿真(有例子哦!)

记录一下Proteus仿真的一些设置和使用,以方便自己以后复习和大家交流!如有错误,希望大家指正. 1.Proteus软件的安装,这里就不作说明了. (上图为安装完打开的软甲) 2.Keil与Proteus安装连接操作 第一步,Keil 与Proteus连接,连接开始必须在Proteus安装目录下 VDM51.dll文件复制到Keil安装目录的Keil\C51\BIN 目录中,但新版本中没有, !!!所以必须下载安装补丁vdmagdi.exe,则在Keil安装目录的Keil\C51\BIN 目录

Keil的使用方法(汇总)

软件的开发工具在软件的开发过程中占很重要的地位,可以说是直接影响你软件开发的效率.比如:开发工具的常用功能.配置.以及优化等级. 对于STM32的开发工具有好几种(官方提供的实例代码工程可以看得出来),但是常用的,或者用的比较多的应该是Keil和IAR这两款集成开发工具(IDE),笔者也是常用这两款IDE进行开发,也对他们都比较熟悉了吧.相信学习过51.430的朋友对这两款软件不会陌生. Keil和IAR这两款IDE应该算是比较经典的了,但各有各的优点,笔者大概说一下他们各自的区别: 1.文件结

Keil出错解决方法

1.安装KEIL5后创建工程后出现这个报错 解决方法:打开下图目录的文件. Keil.STM32F1xx_DFP.pdsc文件是只读文件,必须将只读属性取消. 如下图所示,注释掉红色圆圈的哪一行,保存退出,再打开工程就不会报错了. 2.Keil有时候会遇到找不到对应的flash算法 当我们使用keil调试或下载程序的时候,如果没有对应MCU的flash算法时,是无法调试和仿真的.安装新版本的Keil有时候会发现没有我们MCU的flash算法,导致不能下载程序,去选择flash算法的时候又发现也没

GD32芯片移植完全攻略

GD32是国产兆易创新公司生产的完全兼容STM32系列的Cortex-M3处理器,具有几大亮点:1,高主频108MHz.性能提升30%以上,可超频到120MHz2,Flash零等待.STM32的72MHz需要两个等待,其实兆易创新公司本来就是做Flash起家的,具有gFlash专利3,采用ARM Cortex-M3新内核R2p1.STM32采用R1p1,带有一些缺陷4,性价比高.GD32比对应的STM32芯片一般便宜20%,某些芯片便宜30%以上 收到样片GD32F103VET6后,替换STM3