- 博客(14)
- 收藏
- 关注
原创 结构体指针定义的时候分配内存吗?
在C或C++中,当定义一个结构体指针时,实际上并没有为结构体本身分配内存。指针本身是一个变量,它存储的是内存地址,而不是结构体数据本身。因此,仅仅定义一个结构体指针并不会在内存中为结构体分配任何空间。它可能包含任何随机的内存地址(即所谓的“野指针”),直到显式地让它指向某个有效的内存地址。注意,在使用完结构体后,应该释放分配的内存以避免内存泄漏。是一个指针变量,它还没有被初始化为指向任何有效的。(在C++中)这样的函数或操作符。要为结构体分配内存,需要使用。在C++中,通常会使用。
2024-08-19 23:23:53
348
原创 QT图片浏览器
链接:https://pan.baidu.com/s/1aobjfY3nmJ_zdg6vFeOgnQ。2、通过鼠标滚轮或者按键实现图像的放大、缩小,上下左右移动;1、实现文件下的jpg、bmp、png类型的图像查看;3、通过文件名称列表选择图像进行浏览;
2023-12-06 19:13:25
112
3
原创 代码段 数据段 BSS段 栈区堆区的区别?
事实上,运行态严格来说不是真正的物理存储结构,而是linux 为每个进程虚拟的地址空间(32位 操作系统对进程而且是虚拟的4G地址空间)。如有错误,欢迎指正!相关段总结如下。
2023-04-14 11:53:03
221
原创 Nand,iNAND和NOR flash有什么区别?
这时NANDFlash中的前4K就是启动代码(他的功能就是初始化硬件然后在把NANDFlash中的代码复制到RAM中,再把相应的指针指向该运行的地方)为什么会有这两种启动方式,关键还是两种flash的不同特点造成,NOR FLASH容量小,速度快,稳定性好,输入地址,然后给出读写信号即可从数据口得到数据,适合做程序存储器。在arm开电的时候,要想让arm知道以某种方式(地址映射方式)运行,不可能通过你写的某段程序控制,因为这时候你的程序还没启动,这时候arm会通过引脚的电平来判断。
2023-03-19 17:23:26
347
原创 数组指针与数组名
数组指针指向的是数组中的一个具体元素,而不是整个数组,所以数组指针的类型和数组元素的类型有关,p 如果指向的数组元素是 int 类型,p 的类型必须也是int *。p 并不知道它指向的是一个数组,p 只知道它指向的是一个整数,究竟如何使用 p 取决于程序员的编码。不同的是,数组名是常量,它的值不能改变,而数组指针是变量(除非特别指明它是常量),它的值可以任意改变。也就是说,数组名只能指向数组的开头,而数组指针可以先指向数组开头,再指向其他元素。
2023-02-21 09:28:11
151
原创 结构体的大小如何计算?
仔细看看后两个原则,要满足偏移量是成员的整数倍,ch1偏移量是0,i的偏移量不可能是1,因为1不是i大小4的倍数,所以i的偏移量是4,ch2的偏移量就变为了8,加ch2是9,要满足结构体大小是成员大小整数倍,就是12。这个结构体的大小是20,先看前两个成员,大小是8,毋庸置疑,这个char类型的数组,只需要把它看做十个char连在一起即可,加起来就是18,再满足结构体大小为成员整数倍,所以大小就是20。一,结构体变量的首地址,必须是 min("结构体最宽基本类型成员", 指定对齐方式) 大小的整数倍。
2022-11-20 17:06:17
237
1
原创 C语言类型的存储
对于float和double这种浮点型的数,在内存中的存储方式和整形不一样,所以float和int相比,虽然都是4和字节,但是在内存中存储的方式完全不同,所以同一个4字节的内存,如果是按照interesting存放的,取的时候一定要按照int型的方式去取,如果存的时候和取得时候理解的方式不同,那数据就会出错。void * 是void类型的指针,void类型的指针的含义是:这是一个指针变量,该指针指向一个void类型的数,这个void类型的数可能是int、也可能是float、也可能是结构体。
2022-11-02 20:02:29
148
原创 nandflash
闪存存储器主要分为NOR型和NAND型两种,NOR型闪存有独立的地址线和数据线,它支持按位进行访问,具有高可靠性且随机读取速度较快,但NOR闪存的擦除和写操作速度较慢、容量小、价格昂贵,主要用于存储程序代码并在内存中直接运行。NAND闪存相对于NOR型闪存拥有更大的容量,适合进行数据存储。此外,它类似于传统的机械硬盘,对于小数据块的操作较慢,对于大数据块操作较快。MLC技术具有显著的存储密度优越性,相对于SLC每个单元仅能存储1位比特,MLC可以存储多位比特,但MLC在速度和可靠性方面还有一定的提升空间。
2022-11-02 17:28:55
632
原创 fastboot介绍
fastboot下载时要注意1:fastboot是使用USB线进行数据传输的,所以fastboot执行之前要先连接开发板和主机之间的usb线。fastboot是uboot中用来快速下载镜像的一个命令,fastboot同时还是一个windows上的软件。fastboot devices 命令用来查看当前连接的设备。(我们开发板看到的是:SMDKC110-01)fastboot flash xxx 命令用来烧录的。fastboot reboot 命令用来重启系统。fastboot下载时要注意2:需要安装驱动。
2022-10-14 14:59:54
1129
1
原创 内核版本号、SoC版本号和芯片型号区别
1、arm内核版本号和SoC版本号是由arm公司确定的,而SoC型号是由半导体公司确定的;高性能的A内核,如苹果、高通骁龙、华为麒麟9、三星猎户座的芯片都是基于ARM的A内核设。2、cortex系列后的ARM产品线分成3各系列,这个是市场细分的需要和选择;3、ARM已经发布了一些64位架构如A53等,主要是面向高性能服务器类应用。它们都使用精简指令集,他们也都是32/64bit的内核架构。ARM 架构又分为三种主要内核A、R、M,性能依次排列。高实时性的R内核,针对高实时性设计。
2022-10-13 12:04:20
1235
原创 S5PV210开发板刷机,secureCRT连接串口时报错,SD checksum Error,SD Init Error,Uart negotiation Error!
原因:后来发现之前是用SD卡启动的(模拟SD卡启动的时候已经把inand中的uboot第一个扇区毁坏了),之后学习LED时又用SD烧录了LED的程序,把原来SD中的启动程序覆盖了,所以导致不能启动。插入SD卡,重新启动(拨码开关拨到SD 卡启动),这时secureCRT窗口就显示连接成功。解决方法:重新往SD烧录启动用的uboot.bin。
2022-09-14 13:55:27
707
转载 RAM、ROM、Flash
Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),Flash的内部存储是MOSFET,里面有个悬浮门(Floating Gate),是真正存储数据的单元。对于数据的表示,单个存储单元中内部所存储电荷的电压,和某个特定的阈值电压Vth,相比,如果大于此Vth值,就是表示1,反之,小于Vth,就表示0;对于nand Flash的数据的写入1,就是控制External Gate去充电,使得存储的电荷够多,超过阈值Vth,就表示1了。用来存储和保护数据。
2022-09-11 21:19:34
434
原创 S5PV210开发板刷机(SD卡uboot、fastboot刷机方法介绍)
文件在..\朱有鹏嵌入式\X210光盘资料\B盘\linux\QT4.8\image文件夹下面:uboot_inand.bin、zImage-qt、rootfs_qt4.ext3。其实,刷机是对210开发板的一个基础学习,目的是实践之前学过的系统启动过程,进一步的了解系统的启动过程,加深理解(uboot、kernel、rom)。\朱有鹏嵌入式\X210光盘资料\B盘\linux\QT4.8\image)2、USB-OTG驱动:需要在进入fastboot模式下进行,在后续的步骤中,会详细讲解。........
2022-08-29 13:41:56
3635
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人