<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java_newstu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/java_newstu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java_newstu]]></copyright><item><title><![CDATA[函数参数当中的一级指针和二级指针]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/146010218</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/146010218</guid><author>java_newstu</author><pubDate>Tue, 04 Mar 2025 11:27:34 +0800</pubDate><description><![CDATA[在C语言中，是否需要使用二级指针取决于你想要对进行操作。]]></description><category></category></item><item><title><![CDATA[Bios命令行和Linux命令行]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/145026892</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/145026892</guid><author>java_newstu</author><pubDate>Thu, 09 Jan 2025 10:38:42 +0800</pubDate><description><![CDATA[Linux 下的命令行和 BIOS 下的命令行都可以被称为“shell”，因为它们都提供了一种用户与计算机系统交互的界面。]]></description><category></category></item><item><title><![CDATA[OpenBmc基础指南]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/145001237</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/145001237</guid><author>java_newstu</author><pubDate>Wed, 08 Jan 2025 10:37:04 +0800</pubDate><description><![CDATA[OpenBMC是一个开源的基于Linux的**固件**项目，用于管理和控制服务器硬件的底层管理系统。BMC的全称是Baseboard Management Controller，它是嵌入在服务器主板上的一个独立的处理器，负责监控和管理服务器的硬件。]]></description><category></category></item><item><title><![CDATA[VisualStudio设置静态链接]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/142758176</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/142758176</guid><author>java_newstu</author><pubDate>Tue, 08 Oct 2024 14:08:33 +0800</pubDate><description><![CDATA[*问题：**最近用visual studio写了一个小功能，编译完给别人用发现需要依赖dll文件。编译的时候默认用的是动态链接，网上查了下，都是教怎么创建动态库或者静态库的，不是我需要的，干脆分享一下，很简单。**解决方法：**打开项目属性，选择"C/C++"->“代码生成”->“运行库”，把它改成多线程(/MT)或者多线程调试(/MTd)，改成静态以后就不需要依赖dll文件了，可单独运行，无非就是exe文件大了点。]]></description><category></category></item><item><title><![CDATA[C语言结构体位域的使用技巧（联合体妙用）]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/139772634</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/139772634</guid><author>java_newstu</author><pubDate>Tue, 18 Jun 2024 14:28:00 +0800</pubDate><description><![CDATA[嵌入式一般在搞寄存器的时候会用到位域，像上面这个例子，但是我没法把 myBitField 这个结构体当成数值来用，除非用指针强转，但是这个行为存在危险性。嘿嘿，整个联合体就好了。联合体（union）的一个主要特性是它所有的成员都占用相同的内存位置。这意味着，你改结构体就是在改Value。位域成员的总位数不能超过它们所属的数据类型的大小。位域成员可以是无符号的或有符号的，取决于它们前面的关键字。（通常是32位），则所有位域成员的位数总和不能超过32位。如果省略了这些关键字，位域默认为无符号。]]></description><category></category></item><item><title><![CDATA[x86架构地址空间的分类]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/139767799</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/139767799</guid><author>java_newstu</author><pubDate>Tue, 18 Jun 2024 11:13:15 +0800</pubDate><description><![CDATA[​	注：IO内存（I/O映射内存）实际上是内存映射I/O地址空间的一部分。它允许CPU通过读写特定的内存地址来直接与硬件设备的寄存器			进行通信。这种方式与通过I/O端口进行通信的方式相比，具有和。​			在UEFI和操作系统的低级硬件交互中，IO内存地址空间经常被用来配置和控制硬件设备。例，使用MmioWrite8等函数时，就是在			操作内存映射I/O地址空间。这些操作通常在系统启动的早期阶段进行，以确保硬件设备能够正确初始化和配置。]]></description><category></category></item><item><title><![CDATA[Linux配置GIT,生成密钥]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/139113974</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/139113974</guid><author>java_newstu</author><pubDate>Wed, 22 May 2024 10:48:30 +0800</pubDate><description><![CDATA[添加公钥到 Git 仓库，你自己的或者公司的仓库。密钥对,一路按回车就行。]]></description><category></category></item><item><title><![CDATA[数据在内存当中的存储形式——二进制]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/139087430</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/139087430</guid><author>java_newstu</author><pubDate>Tue, 21 May 2024 11:20:01 +0800</pubDate><description><![CDATA[/用有符号整数的格式说明符去解析该变量，最高位用作符号位，会被解析成负数，输出一个负数。//用16进制格式说明符去解析该变量，输出0xFF。//用无符号整数的格式说明符去解析该变量，输出255。不管是什么样的数据，在内存中都是以二进制0、1的形式存储的。输出什么，取决于你想怎么解析，但是它的内容始终是1111 1111。]]></description><category></category></item><item><title><![CDATA[关于kmalloc申请内存失败]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/139065279</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/139065279</guid><author>java_newstu</author><pubDate>Mon, 20 May 2024 14:57:38 +0800</pubDate><description><![CDATA[2.拆分成多个4M，进行kmalloc申请，但是这样做进行具体数据操作的时候比较麻烦。我最后是取了个巧，直接在内核态注册了一个16M的数组，但是这么写可扩展性很差，然后也不知道后期会有什么问题。1.如果要改变最大申请容量，需要重新编译内核。但是我的环境没法这么做。如果你也碰到相同的问题，可以尝试用vmalloc，不过vmalloc申请的空间不连续。问题：用kmalloc在内核态申请16M内存失败了，经过查阅发现kmalloc最大只能申请4M的空间。先记录一下这个问题，看看以后有没有更好的方法解决。]]></description><category></category></item><item><title><![CDATA[Linux操作系统主要层次]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/138901760</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/138901760</guid><author>java_newstu</author><pubDate>Wed, 15 May 2024 11:31:49 +0800</pubDate><description><![CDATA[驱动层通常位于内核层中，负责管理硬件设备。驱动程序是内核与硬件设备之间的接口，它们允许内核发送指令给硬件，以及接收来自硬件的状态信息和数据。应用层通过系统调用接口层与内核层交互，内核层中的驱动层再与硬件层进行交互。]]></description><category></category></item><item><title><![CDATA[mmap映射实战举例]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/138898511</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/138898511</guid><author>java_newstu</author><pubDate>Wed, 15 May 2024 10:32:58 +0800</pubDate><description><![CDATA[需求：在Linux环境下，需要打开一个文件，然后映射到内存中，接着在特定的地址偏移处写入内容，并且在此之前需要清空该位置的内容并填充为。]]></description><category></category></item><item><title><![CDATA[ioremap和mmap区别]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/138846068</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/138846068</guid><author>java_newstu</author><pubDate>Tue, 14 May 2024 11:03:24 +0800</pubDate><description><![CDATA[ioremap和mmap都是 Linux 操作系统中用于内存映射的函数，但它们在用途和工作方式上有一些区别。]]></description><category></category></item><item><title><![CDATA[modprobe: ERROR: could not insert ‘hello‘: Exec format error]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/137911095</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/137911095</guid><author>java_newstu</author><pubDate>Thu, 18 Apr 2024 10:37:31 +0800</pubDate><description><![CDATA[在乌班图上写了个最简单的hello驱动，交叉编译完后，上aarch64架构的开发板发现没办法安装。将内核源码中的顶层Makefile文件修改为当前运行内核的版本号即可。重新生成.config文件，编译module并modprobe即可。]]></description><category></category></item><item><title><![CDATA[Linux系统编程]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/132494348</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/132494348</guid><author>java_newstu</author><pubDate>Fri, 25 Aug 2023 14:02:24 +0800</pubDate><description><![CDATA[Vi有三种基本工作模式：+ 命令模式：任何时候，不管用户处于何种模式，只要按一下ESC键+ 文本输入模式：在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式+ 末行模式在命令模式下，用户按“:”键即可进入末行模式下，此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符，等待用户输入命令。]]></description><category></category></item><item><title><![CDATA[C++提高编程]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/132318988</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/132318988</guid><author>java_newstu</author><pubDate>Wed, 16 Aug 2023 14:33:44 +0800</pubDate><description><![CDATA[代码示例//自定义数据类型public:mAge = age;//存放对象//创建数据it!= v.end();it++){//放对象指针//创建数据it!= v.end();test02();return 0;]]></description><category></category></item><item><title><![CDATA[C++核心编程]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/132127515</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/132127515</guid><author>java_newstu</author><pubDate>Sun, 06 Aug 2023 08:46:04 +0800</pubDate><description><![CDATA[作用：函数名可以相同，提高复用性函数重载满足条件：同一个作用域下函数名称相同函数参数类型不同或者个数不同或者顺序不同注意：函数的返回值不可以作为函数重载的条件。]]></description><category></category></item><item><title><![CDATA[数据结构和算法（C语言）]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/131815369</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/131815369</guid><author>java_newstu</author><pubDate>Wed, 19 Jul 2023 18:25:39 +0800</pubDate><description><![CDATA[定义数据结构 = 个体的存储 +个体关系的存储（研究数据的存储）算法 = 对存储数据的操作		   （对数据的操作）衡量算法的标准时间复杂度大概程序要执行的次数，而非执行的时间空间复杂度算法执行过程中大概所占用的最大内存难易程度健壮性预备知识指针指针就是地址 地址就是指针指针变量是存放内存单元地址的变量指针的本质是一个操作受限的非负整数一个字节就是一个地址，比方说一个double型的变量有8个字节，那么指针当中存了8个地址吗？不是，一般是存了这8个地址当中的首地址。地址。]]></description><category></category></item><item><title><![CDATA[嵌入式C语言]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/131615561</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/131615561</guid><author>java_newstu</author><pubDate>Sat, 08 Jul 2023 19:26:54 +0800</pubDate><description><![CDATA[/错误，fun被调用后，资源被释放，p指向的就是无效地址。自动存储期，请求变量是寄存器的变量（不一定生效），访问和处理的速度更加快。常量的定义，只读的变量（实际可以根据某些方法修改，比如指针越界访问）。自动存储期，默认属性，自动变量，可读可写，如果再{ },栈空间。单纯的值拷贝，上层调用者保护自己空间值不被修改的能力。宏（单纯替换，不进行语法检查，最好加上括号）静态存储期，静态外部、静态内部、静态无链接。类型修饰符（资源属性中位置的限定）易变的，告知编译器不要优化。连续空间的传递（地址传递）]]></description><category></category></item><item><title><![CDATA[TCP、UDP网络编程]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/131492762</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/131492762</guid><author>java_newstu</author><pubDate>Sat, 01 Jul 2023 17:21:12 +0800</pubDate><description><![CDATA[客户端主动地发起请求、服务器被动地响应请求。]]></description><category></category></item><item><title><![CDATA[操作系统学习笔记]]></title><link>https://blog.youkuaiyun.com/java_newstu/article/details/131205804</link><guid>https://blog.youkuaiyun.com/java_newstu/article/details/131205804</guid><author>java_newstu</author><pubDate>Wed, 14 Jun 2023 13:15:22 +0800</pubDate><description><![CDATA[存储程序思想（冯诺伊曼）将程序和数据存放到计算机内部的存储器中，计算机在程序的控制下一步一步进行处理将程序放到存储器（内存）中，然后用一个指针(PC/IP指针)指向它，计算机自动（前提是置好初值），开始工作计算机由五大部件组成输入设备、输出设备、存储器、运算器、控制器x86PC开机过程引导扇区：启动设备的第一个扇区。]]></description><category></category></item></channel></rss>