嵌入式编程 复习笔记

最近准备找些嵌入式公司的实习机会,所以复习了一下嵌入式编程的一些内容。先搜了一些嵌入式公司的面试题,才发现虽然自己

进行嵌入式开发已经有几个年头了,但是水平还只能算的上是下下等。所做的内容主要就是看看别人的代码,然后根据特定芯片的

datasheet移植修改一些寄存器的值;要么是自己写代码,只求功能达到,不求程序的规范性、效率、安全性、健壮性和可移植性。

这样做出来的东西是不能够作为一个可靠的产品进行使用的。痛定思痛,遂决定努力刷刷题好好恶补一下。

这类题目网上有很多:

这份面试题感觉挺好的:http://blog.csdn.net/haiwil/article/details/7067284

大致总结了一下,pc上的c程序开发人员和嵌入式c开发人员在关注焦点和主要的遇到的问题还是不一样的。

嵌入式的资源有限:

尽可能的减少不必要的函数调用开销--》#define的使用

机器字长不确定--》数据类型、直接使用十六进制数赋初值的时候不可以自己默认字长

寄存器 变量 的更改 一方面是程序中的显式更改   另一方面是硬件寄存器在外被更改  --》定义好变量的类型const volatile (根据系统实际的使用情况)

数据的强制类型转换、运算中的类型提升、运算符的优先级

中断服务程序--》尽量精简、变量的刷新、浮点型 不能重用(寄存器资源有限)

注意事项:

加括号 的重要作用

有些常数值 最好写出规律 具体的值让编译器自己去算 这样在不同的平台上有更好的适应性

使用const 、volatile增加程序的健壮性

熟悉和正确的运用各种指针

////==========================

公共的启动配置文件(系统级的)
/etc/bashrc 存有整个系统的别名和功能(发现Ubuntu是/etc/bash.bashrc)
/etc/profile 存有整个系统的环境参数和启动程序
个人的启动配置文件(用户级的)
决定用户自己所独有的一些配置
$HOME/.bashrc 存有用户别名和功能
$HOME/.bash_profile 存有用户环境参数和启动程序(Ubuntu是~/.profile)
$HOME/.bash_logout 存有退出系统时的结束方式
$HOME /.inputrc 存有主要绑定数值和其他位元数值(Ubuntu默认只有/etc/inputrc)
原文地址:https://www.cnblogs.com/sunniflyer/p/4399396.html