更多课程 选择中心

嵌入式培训
达内IT学院

400-996-5531

嵌入式编程中你必须知道的小知识

  • 发布:嵌入式培训
  • 来源:嵌入式教程
  • 时间:2020-09-10 15:44

1. 流水线被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅指单周期指令)。如果程序发生跳转,流水线会被清空,这将需要几个时钟才能使流水线再次填满。因此,尽量少的使用跳转指令可以提高程序执行效率,解决发案就是尽量使用指令的“条件执行”功能。

2. 在LPC2200系列中:

可以通过过下面的程序延迟10毫秒:

for(i=0;i<200;i++)

{

for(j=0;j<200;j++);

}

3. 通过下面语句将一个16位的变量放在两个8位的变量中。

//IP数据报总长度高字节

IpHeadUint8[10]=(IpHead.e_ip.Crc&0xff00)>>8;

//IP数据报总长度低字节

IpHeadUint8[11]=IpHead.e_ip.Crc&0x00ff;

4. 在对全部数组元素赋初值时,可以不指定数组长度。

eg;inta[]={1,2,3,4,5};

但如果当输出第a[5]以上的元素时,系统回输出随机数值,所以使用此方法时,不能使用超过初始值元素以上的元素。

5. 由于ADS先天性的对printf不支持;因此不便于我们调试,可以利用串口输出来代替printf来调试。

6. 用或运算,可使某位置为1,其它位不变

eg: PINSEL0 |= 0x00000005; //设置串口引脚

使第0位和第二位置一,其他位不变。

7. 函数指针

1> C语言中函数名直接对应于函数生成的指令代码在内存中的地址,因此函数名可以直接赋给指向函数的指针

2> 调用函数实际上等同于“调用指令+参数传递处理+回归位置入栈”,本质上最核心的操作是将函数生成的目标代码的首地址赋给CPU的PC寄存器。

3> 因为函数调用的本质是跳转到某一个地址单元的code去执行,所以可以“调用一个根本就不存在在函数实体

4> int (*p)();定义p是一个指向函数的指针变量,次函数返回带回整型的返回值。*P两侧的括号不能省略,表示p先于*结合,是指针变量,然后再与后面的()结合,表示此指针指向函数。

区别:int *p()表示这个函数的返回值是指向整型变量的指针。

说明:

(1) 指向函数的指针变量的一般定义形式为:

数据类型 (*指针变量名)();

1> 此处的“数据类型”是指函数返回值的类型

(2) 返回指针值的函数:

类型名 *函数名(参数表)

eg: int * func(int x,int y)

func是函数名,调用它以后能返回一个指向整型数据的指针。x,y是func的形参。

区别方法:

a.从右往左找第一个括号,括号里面的是函数的形参。

b.括号外面的第一个标识符是函数的名字,函数前面的表示函数的返回数值。

最后,达内嵌入式培训机构提醒每一个it爱好者:如果你想要在短时间内快速入门,顺利掌握一门技术,建议还是认真学习视频。多练习,多动手。

版权声明:转载文章来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:嵌入式C语言编程小知识总结
下一篇:裸编程怎么做?裸编程具体做法

裸编程怎么做?裸编程具体做法

嵌入式编程中你必须知道的小知识

嵌入式C语言编程小知识总结

有哪些工具可以让嵌入式开发事半功倍?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省