美文网首页
重要代码块整理

重要代码块整理

作者: xqiiitan | 来源:发表于2024-11-11 10:10 被阅读0次

海思SS928V100(21AP10)芯片 Hi3404芯片。

文档主要路径:

  1. 开发环境指南:ReleaseDoc\zh\software\board\OSDRV*开发环境用户指南.pdf
  2. SDK烧录相关文档:ReleaseDoc\zh\software\board*安装以及升级使用说明.pdf
  3. MPP开发:ReleaseDoc\zh\01.software\board\MPP\MPP媒体开发软件 开发参考.pdf

1. 常用打印语句

// 打印带方法名+行号+结果的语句。
fprintf(stderr, "[Error]%s(%d): ioctl ret =%d\n",  __FUNCTION__,  __LINE__, ret);
// LiteOS 日志打印
 printf("==88888=>PDT_SCENE_SetStaticAE[%s,%d]\n", __func__, __LINE__);
 // Linux 日志打印
 MLOGI("PAL_GM7122_Init starting!\n");
 printf("set i2c device address Error vio.main.c!\n");

2.C语言预定一宏:FILE, LINE, FUNCTION, DATE, TIME

printf("File = %s\n Line = %d\n Func=%s\n Date=%s\n Time=%s\n", __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__);

File = c:\test\test__func__.cpp
Line = 8
Func=testFunc
Date=Sep 7 2012
Time=00:15:42

3.gpio操作

#include <linux/gpio.h>
gpio_num = GPIO组号 * 8 + 组内偏移号,例如GPIO4_2的编号为4 * 8 + 2 = 34.
gpio_request(unsigned gpio, const char *label)  注册GPIO
gpio_direction_output(unsigned gpio, int value) 设置GPIO方向为输出
gpio_set_value(unsigned gpio, int arg) 设置GPIO值。

4.extern 关键字。

全局变量:

extern 的使用场景
原理:引用还没有声明的变量/函数,这个变量或函数在其他地方声明。
使用场景:

  • 都是c或c++:声明外部变量或函数
  • c++ 调C:c++调用c编译的变量或函数。

全局变量声明。
在方法体外面定义,
int global_number = 1; // 全局变量,一直存在的。

定义在别的文件,想要在当前文件中使用。使用之前,要先声明
extern int a; // 声明外部变量(变量a 定义在别的文件中,它是一个全局的变量。全局变量默认值为0)
并且a不能初始化。这样让目标文件,可以被n个文件include进来。
否则由于没有extern, include 会在n个文件中都拷贝一份变量a。导致编译异常。
#include “a.h”

int global_number = 1;// test.cpp文件。全局变量
extern int g; // test.h文件中声明。
extern int global_number; // main文件中,声明是借的其他文件的变量。也可以include “test.h”包含头文件。
main() {
global_number +=1;
}

// extern_main.c 文件内部。
int main() {
    // 文件内部定义的变量和方法。
    extern int var_mian;
    extern void fun_main(); 
    func_main(); // 调用方法
    printf("main var_main=%d\n", var_main)
    
    // 告诉编译器,在别的地方定义了。替代include包含。访问外部文件的变量和方法。
    extern int var_other;
    extern void func_other(); 
    func_other();
    printf("main var_other=%d\n", var_other)

    return 0;
}
// 后定义:声明全局变量和方法
int var_main=100;
void func_main() {
    printf("main func_main=%d\n", var_main);
}
// extern_other.c 
int var_other=100;
void func_other() {
    printf("other func_other=%d\n", var_other);
}

// 在cpp中,引用c中定义的变量和方法。

extern "C" int var_c; // C语言编译的结果。
extern "C" void fun_c();
int mian(){
    fun_c();
    var_c = 45;
    printf("extern_cpp var_c=%d\n", var_c);
}

相关文章

网友评论

      本文标题:重要代码块整理

      本文链接:https://www.haomeiwen.com/subject/hykndjtx.html