zoukankan      html  css  js  c++  java
  • 嵌入式编程 复习笔记

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

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

    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)
  • 相关阅读:
    artDialog组件应用学习(二)
    artDialog组件应用学习(一)
    MVC Request.UrlReferrer为null
    jquery的toggle()方法
    Windows 和 Linux 下生成以当前时间命名的文件
    再提供一种解决Nginx文件类型错误解析漏洞的方法
    Nginx 1.5.2 + PHP 5.5.1 + MySQL 5.6.10 在 CentOS 下的编译安装
    架构师对话
    Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器
    Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化
  • 原文地址:https://www.cnblogs.com/sunniflyer/p/4399396.html
Copyright © 2011-2022 走看看