zoukankan      html  css  js  c++  java
  • 【笔记】2013-09

    受不了xxxx恶心人的行为,遂搬迁至博客园。
    始发:2014-03-17 17:49:18
    

    此为作者学习工作中的笔记,多有网搜资料;故,若侵权,请告知,第一时间删除。

    9-2

    void foo(int x, int y);

    该函数被 C 编译器编译后在symbol 库中的名字为_foo,而 C++编译器则会产生像_foo_int_int之类的名字。_foo_int_int 这样的名字包含了函数名和函数参数数量及类型信息,C++就是靠这种机制来实现函数重载

    为了实现 C 和 C++的混合编程,C++提供了C连接交换指定符号 extern"C"来解决名字匹配问题,函数声明前加上 extern"C"后,则编译器就会按照 C 语言的方式将该函数编译为_foo,这样 C 语言中就可以调用C++的函数。

    __FILE__ 包含当前程序文件名的字符串
    __LINE__ 表示当前行号的整数
    __DATE__ 包含当前日期的字符串
    __TIME__ 包含当前时间的字符串
    __STDC__ 如果编译器遵循ANSI C标准,它就是个非零值


    字符设备是指设备发送和接收数据以字符的形式进行;而块设备则以整个数据缓冲区的形式进行。


    9-4

    奇偶校验位是一个表示给定位数的二进制数中1的个数是奇数还是偶数的二进制数。奇偶校验位是最简单的错误检测码。


    9-5

    int sscanf(const char *buffer, const char *format [, argument ] ... );
    

    从一个字符串中读进与指定格式相符的数据。

    1. 常见用法。

    char buf[512];
    sscanf("123456 ", "%s", buf);
    printf("%s
    ", buf);
    

    结果为:123456

    2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。

    sscanf("123456 ", "%4s", buf);
    printf("%s
    ", buf);
    

    结果为:1234

    3. 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。

    sscanf("123456 abcdedf", "%[^ ]", buf); //[^ ]表示非空格,遇空格就停止
    printf("%s
    ", buf);
    

    结果为:123456

    4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。

    sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);
    printf("%s
    ", buf);
    

    结果为:123456abcdedf

    5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。

    sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);
    printf("%s/n", buf);
    

    结果为:123456abcdedf

    6、给定一个字符串iios/12DDWDFF@122,获取/和@之间的字符串,先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中。//* 表示读取,但不进行保存。也就是说,跳过。

    sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);
    printf("%s/n", buf);
    

    结果为:12DDWDFF

    7、给定一个字符串““hello, world”,仅保留world。(注意:“,”之后有一空格)

    sscanf(“hello, world”, "%*s%s", buf);  
    printf("%s/n", buf);
    

    结果为:world

    %*s表示第一个匹配到的%s被过滤掉,即hello被过滤了,如果没有空格则结果为NULL。

    注:关键还是正则表达式呀。

    9-6

    时钟切换功能为用户提供了一种易用、快速、安全的从一个时钟源切换到另一个时钟源的途径。

    为使系统快速启动,复位后时钟控制器自动使用HSI的8分频(HSI/8)做为主时钟。其原因为HSI的稳定时间短,而8分频可保证系统在较差的VDD条件下安全启动。一旦主时钟源稳定,用户程序可将主时钟切换到另外的时钟源。


    9-18

    STM8的确是不错的芯片,但是如果用到与PC通信而且有多字节的变量的情况就要注意了,STM8是大端模式,PC,51,AVR,STM32等都是小端模式的。


    9-24

    TIM1 由一个 16 位的自动装载计数器组成,由一个可编程的预分频器驱动。

    不同的用途:

    1、基本的定时

    2、测量输入信号的脉冲宽度(输入捕获)

    3、产生输出波形(输出比较,PWM 和单脉冲模式)

    4、对应于不同事件(捕获,比较,溢出,刹车,触发)的中断

    5、与 TIM5/TIM6 或者外部信号(外部时钟,复位信号,触发和使能信号)同步

    高级控制定时器广泛的适用于各种控制应用中,包括那些需要中间对齐模式PWM 的应用,该模式支持互补输出和死区时间控制。       

    有阴影的寄存器,表示在物理上这个寄存器对应2个寄存器,一个是程序员可以写入或读出的寄存器,称为preload register(预装载寄存器),另一个是程序员看不见的、但在操作中真正起作用的寄存器,称为shadow register(影子寄存器)。

    设计preload register和shadow register的好处是,所有真正需要起作用的寄存器(shadow register)可以在同一个时间(发生更新事件时)被更新为所对应的preload register的内容,这样可以保证多个通道的操作能够准确地同步。如果没有shadow register,或者preload register和shadow register是直通的,即软件更新preload  register时,同时更新了shadow register,因为软件不可能在一个相同的时刻同时更新多个寄存器,结果造成多个通道的时序不能同步,如果再加上其它因素(例如中断),多个通道的时序关系有可能是不可预知的。


    9-27

    NFC是Near Field Communication缩写,即近距离无线通讯技术。由飞利浦公司和索尼公司共同开发,NFC 是一种非接触式识别和互联技术,可以在移动设备、消费类电子产品、PC和智能控件工具间进行近距离无线通信。NFC 提供了一种简单、触控式的解决方案,可以让消费者简单直观地交换信息、访问内容与服务。


    9-29

    IAR编译产生的message:

    25 345 bytes of readonly code memory

     6 271 bytes ofreadonly  data memory

     3 556 bytes ofreadwrite  data memory

    表示:

    25 345 个字节的代码(占FLASH)

    6 271 个字节的常量数据(占FLASH)

    3 556 个字节的变量数据(占RAM)

  • 相关阅读:
    HBase写请求分析
    jquery+easyui主界面布局一例
    调试LD_PRELOAD注入的代码
    获取Oracle隐含參数信息
    Android组件系列----ContentProvider内容提供者【4】
    053第401题
    高速排序优化通过中位数优化
    较难理解的概念
    HDU 2546 饭卡(dp)
    HDU 2546 饭卡(dp)
  • 原文地址:https://www.cnblogs.com/rockyching2009/p/13115607.html
Copyright © 2011-2022 走看看