自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 python distutils打包C/C++模块,执行python setup.py build_ext --inplace时报错cl

用C/C++语言编写Python扩展模块,打包时出现cl相关错误。

2023-02-10 13:11:01 1683 1

转载 数组指针、指向函数指针数组的指针与 typedef 的用途

目录一、对指针的认识二、转载“浅谈 数组指针 指针数组 函数指针 函数指针数组... 以及它们之间区别。”三、转载“typedef”一、对指针的认识指针仅仅是一个变量,变量名是由字母数字下划线组成的一个字符串,其他的 * () [] 等均不是指针变量名的一部分,而是表明指针指向的类型,是对指针的约束,表明该指针只能指向某种类型的数据。典型例子如:// 变量定义一...

2020-01-14 18:42:07 1180 1

原创 第014课 异常与中断

目录一、工作状态和模式二、异常三、中断控制器四、中断源4.1 外部中断4.2 定时器中断一、工作状态和模式【两种工作状态】THUMB THUMB指令集 2 Byte / 指令 ARM ARM指令集 4 Byte / 指令 【七种工作模式】除用户模式外,其他模式均为特权模式 CPSR Mode位 ...

2020-01-09 22:21:26 317

原创 第013课 代码重定位

本课以将Nor flash中的程序重定位到SDRAM为例,讲解代码重定位与位置无关码。名词释义:【代码重定位】将代码从一个地方移动到另一个地方。【位置无关码】代码执行时使用相对地址命令(如 b / bl),程序仍在flash运行。【段】编译器把程序分成各个段进行管理.text 代码段 存放程序代码 .rodata 只读数据段 存放只读数据,如常...

2019-10-22 15:13:02 221

原创 第012课 内存控制器与SDRAM

参考文章:高手进阶,终极内存技术指南——完整/进阶版 文章原载于《电脑高手》杂志2002年第12期,作者赵效民。名词释义:【内存类设备】有地址线,可以由CPU直接通过地址线访问的设备,如SDRAM、Nor flash、网卡等;【内存控制器】CPU通过内存控制器(MC)与内存交换信息,CPU将地址发送给MC,MC把地址分解后到相应内存芯片取相应地址的数据;【北桥与南桥】CP...

2019-10-21 01:51:42 502

转载 变长参数探究

前言变长参数,指的是函数参数数量可变,或者说函数接受参数的数量可以不固定。实际上,我们最开始学C语言的时候,就用到了这样的函数:printf,它接受任意数量的参数,向终端格式化输出字符串。本文就来探究一下,变长参数函数的实现机制是怎样的,以及我们自己如何实现一个变长参数函数。在此之前,我们先来了解一下参数入栈顺序是怎样的。函数参数入栈顺序我们可能知道,参数入栈顺序是从右至左,是不是这样...

2019-09-28 23:27:40 122

转载 理一理字节对齐的那些事

前言字节对齐是我们初学C语言就会接触到的一个概念,但是到底什么是字节对齐?对齐准则又是什么?为什么要字节对齐呢?字节对齐对我们编程有什么启示?本文将简单理一理字节对齐的那些事。什么是字节对齐计算机中内存大小的基本单位是字节(byte),理论上来讲,可以从任意地址访问某种基本数据类型,但是实际上,计算机并非逐字节大小读写内存,而是以2,4,或8的 倍数的字节块来读写内存,如此一来就会对基...

2019-09-28 23:25:28 141

原创 arm-linux-gcc 交叉编译环境建立

一、安装arm-linux-gcc1、从网上下载 arm-linux-gcc 安装包(只能从网上下);2、把 arm-linux-gcc 安装包放到 Linux 机,并解压到任意目录 dir;3、把路径 dir/bin 添加到环境变量 PATH 中,可以在任一启动文件(使用到的)中添加,添加到 /etc/profile 中作用范围最大:export PATH=$PATH:d...

2019-09-17 10:18:42 233

原创 调试宏、预定义宏与#、## ;预处理命令

预定义宏C程序编译的第一步是预处理,编译器调用预处理器对程序进行预处理(文件包含、展开宏等)预处理器有预定义一些特殊含义的宏,这些预定义宏常用于调试程序,所以又称调试宏。不同预处理器支持的预定义宏可能有所不同,但一般都支持以下五种:预定义宏 含义 用法示例 __FILE__ 所在文件的文件名 printf("%s\n", __FILE__); __LINE_...

2019-09-09 22:01:38 259

原创 %p 打印地址?它打印的是变量值!什么是格式化输出,指针与地址的区别

不要再被什么“%p 打印变量地址”、“%p 格式化地址” 误导了!不要把指针神秘化、复杂化,它就是一个有点特殊的变量而已!首先说指针与地址的区别:指针是一个变量,这个变量占用一个存储空间,内部存储了一个值,只不过这个值比较特殊,它表示另一个变量的地址;我们忽略这个值的特殊性,就可以发现,指针变量和其他变量并没有什么区别,都是一个变量,存储了一个值,如此而已!而地址,...

2019-08-28 02:12:16 9851 10

原创 ARM FP(frame pointer) 栈帧指针寄存器

FP 通常与 SP(stack pointer)堆栈指针 易混淆这里讲一下两者的区别与联系SP:stack pointer 堆栈指针,总是指向栈顶FP:frame pointer 栈帧指针,每个进程的栈空间为一帧,FP指向 当前进程栈空间的 栈底。在多进程环境中,每个进程都有自己的栈空间,但所有进程的栈空间都在同一块存储空间,怎么确定各进程的栈呢?这就要看FP和SP,FP指向栈底,...

2019-08-21 15:19:21 5704 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除