自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux内核链表(list)移植到任意平台

linux内核链表在文件中,内核中实现的链表比较简洁,实用性很强,因此想把它单独移植出来使用。内核中的代码只能使用编译器编译,编译器编译是会报错的,主要是因为这个宏是gnuc特有的扩展,stdc中没有此扩展。本篇文章就是来解决这个问题的,移植得到一个在stdc下运行的list,方便其他平台使用。修改并添加了以下宏,改完后可以在stdc下编译:1、和。2、,去除了的使用。-3、删除所有使用的定义,将以下代码删除:至此,移植完成。四、使用方法4.1、初始化链表或

2023-09-21 19:34:50 758 1

原创 制作jflash下载算法,并解决堆栈溢出导致的写数据错误问题

jflash是segger开发的一款软件,需要配合jlink一起使用。使用过jlink的人都知道,在项目开发调试阶段非常用帮助。jflash下载算法就是实现,当jflash支持的芯片没有自己的芯片,或者想使用jflash将程序下载到外部flash中时,通过jflash调用相关的程序完成对flash的擦除、读、写、校验操作。

2023-07-21 19:19:19 1807

原创 keil-mdk变量指定存储区域

定义buf在起始地址为0xC0000000的连续区域,这种方法简单高效,但是对于数量很多的变量,就麻烦不实用了。1、修改链接标本,定义一块区域定义一片区域,如上图(sdram_area)。2.定义宏定义section3.定义变量此时变量已经定义至指定区域。相较于方法1,无需自己严格计算绝对地址,更加便捷。

2023-07-21 18:55:38 1753

原创 vscode+gcc+jlink调试mcu程序(用于替代IDE)

使用 VSCode、arm-none-eabi-gdb、J-Link GDB Server 调试RTThread。当时有关vscode和gcc调试MCU的文章很少,所以只是写了个大概。最近又遇到了类似的问题,网上搜了一些资料,发现此方面的内容已经比较成熟了,借鉴了一些资料来完善自己这方面的知识。参考资料:1、GD32F307VC+WIN10+VSCODE+GCC+JLINK环境build。2、stm32的调试工具:vscode下jlink或stlink下载及调试+设置快捷键。

2023-07-10 19:58:35 3594 10

转载 mdk在ram中调试程序的debug.ini脚本

mdk在ram中调试程序的debug_ini脚本。

2023-07-08 21:51:12 1003

转载 mdk制作外部flash下载算法, 编译错误 L6248E

造成的, 如果要使用全局数组,如 int a[ ] = {1,2,3 };请在前面加上const , 如下const。

2023-07-08 18:03:43 648

原创 巧用编译警告#warning和编译错误#error

编译警告和编译错误对于程序员来说,是再常见不过的东西了。但是对于严谨的程序员来说,任何 warning 都是不能容忍的。

2023-07-01 17:22:52 1716

原创 ThreadX在gcc下的移植

ThreadX在gcc中的移植。

2023-06-25 14:47:18 1196

原创 ThreadX在mdk(AC5)中的移植

Threadx是由 Express Logic 公司开发的一款实时操作系统(RTOS),2019年被微软收购,成为了微软的一款Azure RTOS。在2020年,ThreadX也加入了开源大军,将ThreadX内核及其各大组件开源免费。ThreadX可以说是一款发展非常迅猛的RTOS,相信最近两年有了解它的朋友都能理解。2019年:被微软收购;2020年:免费开源;2021年:上线中文版手册;Azure RTOS ThreadX 文档。

2023-06-23 14:52:57 1332 1

原创 mdk下栈地址相关的知识梳理

mdk下堆栈地址相关的知识梳理。

2023-06-21 23:23:50 2218

转载 mcu:非RTOS时,临界区保护的实现办法

今天给大家分享的是Cortex-M裸机环境下临界区保护的三种实现。搞嵌入式玩过 RTOS 的朋友想必都对 OS_ENTER_CRITICAL()、OS_EXIT_CRITICAL() 这个功能代码对特别眼熟,在 RTOS 里常常会有多任务(进程)处理,有些情况下一些特殊操作(比如 XIP 下 Flash 擦写、低功耗模式切换)不能被随意打断,或者一些共享数据区不能被无序访问(A 任务正在读,B 任务却要写),这时候就要用到临界区保护策略了。

2023-06-13 11:51:03 371

原创 mcu:利用Cortex-M中的DWT实现高精度计时

它有一个32位的寄存器叫CYCCNT,它是一个向上的计数器,记录的是内核时钟运行的个数,内核时钟跳动一次,该计数器就加1,精度非常高,决定内核的频率是多少,如果是F103系列,内核时钟是72M,那精度就是1/72M = 14ns,而程序的运行时间都是微秒级别的,所以14ns的精度是远远够的。通过编程它们,就可以让它们在计数器溢出时发出事件(以跟踪数据包的形式)。它是DWT控制寄存器的第一位,写1使能,则启用CYCCNT计数器,否则CYCCNT计数器将不会工作。使能DWT_CYCCNT寄存器之前,先清0。

2023-06-12 19:23:58 2788

原创 Linux C编程基础:获取时间

对于linux下的编程,无论是用户态还是内核态,时间获取都是经常需要使用到的。以下分别从用户态和内核态整理了几个常用的时间获取接口,供编写代码时快速查阅。

2023-06-11 12:46:51 11101 1

原创 制作flash固件烧录文件

【代码】制作flash固件烧录文件。

2023-06-10 11:16:34 1024

原创 关于error: ISO C99 requires at least one argument for the “...“ in a variadic macro [-Werror]的解决

解决c99报错:error: ISO C99 requires at least one argument for the "..." in a variadic macro [-Werror]

2023-04-17 15:05:14 1479

原创 devmem2 源码分析

devmem2源码

2023-04-17 14:17:05 971

原创 Linux下mmap驱动实现​

Linux下mmap驱动实现​

2023-04-11 12:41:56 1362

转载 linux 申请内存函数,request_mem_region 申请内存函数讲解

linux 申请内存函数,request_mem_region 申请内存函数讲解

2023-03-08 15:41:52 1109

转载 linux内存屏障浅析

Linux内存屏障简要分析。

2023-03-02 09:40:33 366

原创 推荐一个整理Linux内核API的网站

Linux内核API整理

2023-02-23 16:43:10 399

原创 linux kernel中list的使用整理

linux list使用方法总结

2022-12-14 10:54:25 397

原创 PCIe ECAM机制访问PCIE的配置空间

PCIe ECAM机制访问配置空间

2022-11-07 11:15:02 7506

原创 编译busybox

编译BusyBox

2022-11-06 21:56:10 908

转载 PCIE:如何获取PCIE学习资料文档

如何获取PCIE学习资料文档

2022-11-04 10:51:22 2605

原创 ssh远程登陆WSL

ssh远程登陆wsl

2022-10-27 14:57:59 3753

原创 解决libcrypto.so.1.0.0 动态库找不到的问题

error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory

2022-10-27 10:11:51 28363 8

转载 PCIe架构下memory空间、IO空间、PCIe配置空间简介

PCIe架构下memory空间、IO空间、PCIe配置空间简介

2022-10-24 15:22:40 4750 2

原创 PCIe实用调试工具MindShare Arbor一直用

Mindshare。

2022-09-15 09:34:12 12921 2

原创 ipad扩展为Windows的第二屏幕【免费无线版】

ipad扩展windows第二屏幕。

2022-09-06 14:42:16 16565 3

原创 windows下的gcc编译器

windows下的gcc编译器。

2022-07-19 14:03:32 1212

原创 Ubuntu下使用ffmpeg分割和合并视频文件

Ubuntu下使用ffmpeg分割和合并视频文件

2022-07-05 10:50:34 1798

原创 用make-kpkg制作Ubuntu的内核安装包deb

1 安装make-kpkgsudo apt install kernel-package大概需要安装800M的文件包。2 配置内核在内核源码顶层目录执行:make xxx_defconfig3 编译内核并制作内核deb包在内核源码顶层目录执行:make-kpkg --initrd --revision 001 --append-to-version -20220228 kernel_image kernel_headers 参数说明:--initrd: 生成initramfs-

2022-03-28 17:52:26 3701 1

原创 Ubuntu切换指定版本的内核

本文来源:马春杰杰的博客想切换不同系统内核怎么办?按下面步骤即可:1.查找当前内核id:grep submenu /boot/grub/grub.cfg如下:submenu 'Ubuntu 高级选项' $menuentry_id_option 'gnulinux-advanced-3f5e97d5-cd08-4560-94df-613149aac32e' {将单引号中的id记录下来gnulinux-advanced-3f5e97d5-cd08-4560-94df-613149aac32e。

2022-03-28 16:25:24 18934 4

原创 QEMU搭建arm32的ubuntu20.04虚拟机

1.编译内核#获取内核源码wget https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/linux-5.4.18.tar.xztar -vxf linux-5.4.18.tar.xz#编译内核mkdir -p outputKERNEL_OUT=$PWD/outputcd linux-5.4.18export ARCH=armexport CROSS_COMPILE=/usr/local/arm/gcc-arm-11.2-2022.02-x

2022-03-23 15:57:14 6112 20

原创 解决Linux编译内核生成的initrd.img过大

编译内核安装模块会默认把.ko模块也编进去,导致出来的initrd.img会有800M左右的大小,无法开机。这时就需要改一下安装模块时的命令了。把sudo make modules_install 改为sudo make ARCH=arm64 O=$KERNEL_OUT INSTALL_MOD_STRIP=1 modules_install INSTALL_MOD_PATH=~/modules/如果是编译成deb包的,就输入sudo make ARCH=arm64 O=$KERNEL_OUT IN

2022-03-20 19:46:56 3016 2

原创 QEMU安装x86_64_ubuntu20.04虚拟机

1.安装使用qemu安装ubuntu20.04:#制作镜像dd if=/dev/zero of=emu_ubuntu20.04_x86.img bs=1M count=10240mkfs.ext4 emu_ubuntu20.04_x86.img#安装qemu-system-x86_64 -m 2048 -smp 2 -nographic -boot d -hda qemu_ubuntu20.04_x86.img -cdrom ubuntu-20.04.4-live-server-amd64.i

2022-03-19 13:08:53 3827

转载 怎样编译ubuntu的内核

原文:https://blog.csdn.net/CaspianSea/article/details/43014525方法一:1. Use apt-get source to download the Ubuntu version of the kernelapt-get source linux-image-$(uname -r)gives a folder that contains, for example:linux-3.2.0 linux_3.2.0-2

2022-03-19 12:53:21 1364

原创 Ubuntu安装指定版本的内核

以下介绍两种方法更新ubuntu的内核版本:1.检查当前系统安装的内核版本uname -sr2.在 Ubuntu中升级内核2.1.要升级 Ubuntu 的内核,打开 http://kernel.ubuntu.com/~kernel-ppa/mainline/ 并选择列表中需要的版本(此文使用的内核是 5.4.18)。2.2. 接下来,根据你的系统架构下载 .deb 文件:wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.180/a

2022-03-19 11:44:23 11446 3

原创 Linux下制作bin文件,并对其进行截取、合并、修改

1.生成全是0的bin文件dd if=/dev/zero of=all_0x00.bin bs=1 count=10242.生成全是FF的bin文件tr '\000' '\377' < /dev/zero | dd of=all_0xff.bin bs=1 count=1024 > /dev/null3.合并bin文件cat all_0x00.bin all_0xff.bin > all.bin4.分割bin文件dd if=all.bin bs=1 count=512

2022-01-04 16:48:01 6849

原创 Win10家庭版开启远程桌面

一、Win10家庭版是不支持远程桌面的,但是可以借助开源工具开启此功能。github上有对应的开源程序:https://github.com/stascorp/rdpwrap二、从Release中下载最新的版本:RDP Wrapper Library v1.6.2,此版本已停止更新,后续更新只需要更新rdpwrap.ini即可,安装步骤:1.解压后,先管理员权限执行install.bat.2.然后管理员权限执行RDPConf.exe.3.出现下图中绿色的部份,说明可以正常使用:

2021-12-18 11:12:47 13283 9

使用python实现pdf表格转为excel表格

使用python实现pdf表格转为excel表格。

2024-09-16

docker镜像同步工具skopeo

1、自己制作的docker镜像同步工具skopeo,安装简单。内有安装步骤和使用说明,极大方便使用。 2、只适用于Linux_x64平台。

2024-06-24

Jlink-V11固件恢复

本软件主要用于解决:高版本的jlink软件连接后提示固件升级,升级后jlink连接不上。然后重新上电后先闪几个红灯后变绿灯,但是无法连接的问题。

2023-07-14

USB转串口PL2303驱动,亲测win11可用

此驱动可用于更新完win11系统后,使用PL2303 USB转串口时,Win11报错:“PL2303TA不支援WINDOWS11及后续版本,请洽询购买厂商”的问题。

2023-05-15

NCB-PCI_Express_Base_6.0.pdf手册。

PCIe_Base_6.0手册,开发PCIe设备很有用的参考手册。

2022-10-10

MAC地址修改工具:TMACv6.0.7_Setup,支持win10系统。

MAC地址修改工具:TMACv6.0.7_Setup,支持win10系统。

2022-09-26

USB3.0 Technology.pdf

USB3.0学习资料,详细介绍USB3.0协议。

2022-09-12

gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf.tar.xz

arm-none-linux-gnueabihf-gcc工具链,编译arm32位linux内核和uboot.

2022-09-12

gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu.tar.xz

aarch64-none-linux--gcc工具链,编译arm64位linux内核和uboot.

2022-09-12

NCB-PCI_Express_Base_5.0r1.0-2019-05-22.pdf

PCIE5.0r1.0-2019-05-22手册。

2022-07-08

ADV7511_Programming_Guide.pdf

ADV7511寄存器、配置手册。

2022-07-08

空空如也

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

TA关注的人

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