MCP server搭建
Office-Word-MCP-server MCP服务部署在vscode中使用Cline时,会出现AI无法读取或操作docx文件的问题。而在cline中有MCP 功能(Model Communication Protocol),通过本地服务实现 AI 助手与真实世界的交互。
因此找到了Office-Word-MCP-Server(https://github.com/GongRzhe/Office-Word-MCP-Server) ,实现与word文档的AI交互,以将 Word 文档作公开为工具和资源。充当 AI 助手和 Microsoft Word 文档之间的桥梁,允许文档创建、内容添加、格式化和分析。
MCP搭建
需要安装python3.8以上的版本,这里下载python3.12.2(下载链接:https://www.python.org/ftp/python/3.12.2/python-3.12.2-amd64.exe)并安装
自己指定一个目录,使用git(右键后有一个Git Bash Here的选项)下载MCP服务脚本:
1git clone https://github ...
OLED
相比于LCD显示,OLED通过有机材料自发光,每个像素独立控制,能实现纯黑显示、超高对比度和柔性设计,但存在烧屏风险且成本较高。在本例中使用软件模拟IIC与OLED通信,实现在OLED显示输入的内容,使用的OLED模块搭载SSD1306驱动芯片,分辨率为128×64。
IIC通信常用的IIC通信SDA引脚使用的是开漏输出模式(OD),即MOSFET导通,SDA被拉低至GND,此时为逻辑0;MOSFET关闭,SDA由外部上拉电阻拉高(高阻态),此时为逻辑1。这主要是因为:
(1) 多主设备共享总线总线仲裁:多个主设备同时发送数据时,若某设备输出逻辑1(释放总线),但另一设备输出逻辑0(拉低总线),总线实际为逻辑0。
推挽输出冲突:若设备A输出高电平(推挽),设备B输出低电平,会导致电源短路(VCC直接对地)。
开漏输出安全:设备A释放总线(高阻态),设备B拉低总线无冲突。
(2) 从机应答(ACK)机制
ACK信号:从机需在SCL高电平期间拉低SDA表示应答。
推挽输出问题:若主机SDA为推挽输出且强制高电平,从机无法拉低SDA(电平冲突)。
开漏输出解决:主机释放SDA(高阻态), ...
linux app(3)
基础编程规范命令行参数处理下面这行代码通常在程序的“帮助信息”或“用法提示”中出现,用于告诉用户如何正确运行程序。
1printf("Usage: %s <file>\n", argv[0]);
参数占位符规范:
< > 表示必填参数(如 <file> 需替换为实际文件路径)
[ ] 表示可选参数(如 [options])
示例执行流程:
12./program /path/to/file # 正确用法./program # 错误:缺少必要参数
系统手册(man)手册章节结构man(manual 的缩写)是 Linux/Unix 系统中用于查看命令、函数、配置文件等手册页的核心工具。
章节
内容类型
示例命令
典型内容
1
用户命令
man 1 ls
文件列表操作
2
系统调用
man 2 fork
进程创建机制
3
库函数
man 3 printf
格式化输出函数
4
设备文件
man 4 tty
终端设备接口
5
配置文件格式
man 5 pas ...
linux app(2)
linux与windows最大的区别:目录的区别,linux是树状的文件结构,并且linux的磁盘是通过挂载在某个目录下的。比如boot、home、root分别挂载了不同的分区
ubuntu根目录下的目录:
/bin
存放内容:系统的基本命令(二进制可执行文件)。
说明:包含所有用户都可以使用的命令,如 ls、cp、mkdir 等。
示例文件:/bin/ls、/bin/cp。
/boot
存放内容:启动引导程序相关的文件。
说明:包含内核文件(vmlinuz)、初始化内存盘(initrd)和引导加载程序(如 GRUB)的配置文件。
示例文件:/boot/vmlinuz、/boot/grub/grub.cfg。
/dev
存放内容:设备文件。
说明:Linux 将所有硬件设备抽象为文件,存放在此目录下。例如,硬盘设备文件为 /dev/sda,终端设备文件为 /dev/tty。
示例文件:/dev/sda、/dev/tty1。
/etc
存放内容:系统配置文件。
说明:包含系统和应用程序的配置文件。例如,网络配置文件 /etc/network/interfac ...
c++笔记(2)
C++特点1. 面向对象编程(OOP)C++ 支持面向对象编程,提供了以下核心特性:
类(Class):用于定义对象的属性和行为。
封装(Encapsulation):通过访问控制(如 public、private、protected)隐藏实现细节。
继承(Inheritance):支持代码重用和层次化设计。
多态(Polymorphism):允许通过基类指针调用派生类的函数。多态是指同一个接口可以表现出不同的行为。在 C++ 中,多态主要通过 虚函数(Virtual Function) 和 函数重载(Function Overloading) 来实现。
编译时多态:通过函数重载和运算符重载实现。
运行时多态:通过虚函数和继承实现。
允许子类重写父类的虚函数,实现不同的行为
2. 高效性
C++ 继承了 C 语言的底层操作能力,可以直接操作内存和硬件。
支持手动内存管理(如 new 和 delete),但也提供了智能指针(如 std::unique_ptr 和 std::shared_ptr)来简化内存管理。
性能接近 C 语言,适合开发高性能应用(如游戏引擎、操作系统 ...
linux app(1)
本笔记基于MX6ULL为板载核心,使用正点原子alpha板。
eMMCeMMC(embedded MultiMediaCard)是一种嵌入式存储解决方案,广泛应用于智能手机、平板电脑、物联网设备、车载系统等嵌入式设备中。它结合了 NAND Flash 存储芯片 和 控制器,并通过标准接口与主机(如处理器或 SoC)通信。成本低,但通信速率低于UFS,更低于SSD,主要应用在低端设备。
eMMC 的基本组成eMMC 并不是单纯的存储芯片,而是一个完整的存储模块,主要由以下部分组成:
NAND Flash 存储芯片:用于实际数据存储。
Flash 控制器:管理 NAND Flash 的读写、坏块管理、磨损均衡(wear leveling)、错误校验(ECC)等。
标准接口(MMC 接口):采用 JEDEC eMMC 标准,兼容性强,简化了主控设计。
使用方式和作用
烧录方法:可通过 SD 卡、USB 工具
Linux 系统和应用程序通常会被烧录到 eMMC 存储中,并通过配置启动模式(如 eMMC 启动)来运行系统。
本质:eMMC = NAND Flash(存储) + ...
FreeRTOS 基础
FreeRTOS 一定会有一个空闲任务(Idle Task)。空闲任务是 FreeRTOS 自动创建的任务,具有最低优先级(优先级为 0),并且是系统运行时的“默认任务”。
调度器操作系统(如 FreeRTOS)的核心组件之一,负责管理任务的执行顺序和资源分配。它的主要作用是决定在任意时刻哪个任务可以运行,并确保系统的资源被高效、公平地使用。
调度器的主要职责包括:
任务切换:在多个任务之间切换执行,确保每个任务都能获得 CPU 时间。
优先级管理:根据任务的优先级决定执行顺序,高优先级任务优先执行。
资源分配:管理任务对 CPU、内存等系统资源的使用。
状态管理:跟踪任务的状态(如运行、就绪、阻塞等),并根据状态决定任务的调度。
任务的状态在 FreeRTOS 中,任务可以处于以下几种状态:
运行(Running):任务正在占用 CPU 执行。
就绪(Ready):任务已准备好运行,但尚未获得 CPU 时间。
阻塞(Blocked):任务正在等待某个事件(如信号量、队列、延时等),暂时无法运行。
挂起(Suspended):任务被显式挂起,不会被调度器调度。
删除(Deleted ...
Interrupt 机制
中断允许 CPU 在执行程序的过程中,暂停当前任务,转而去处理更高优先级的任务(称为中断服务程序,ISR),处理完成后再返回原来的任务继续执行。
为什么需要中断?中断的主要作用包括:
提高 CPU 效率:
在没有中断的情况下,CPU 需要通过轮询(Polling)的方式不断检查设备状态,这会浪费大量的 CPU 资源。中断机制允许 CPU 在设备需要处理时才响应,从而提高效率。
实时响应:
中断可以确保关键事件(如按键按下、定时器溢出等)得到及时处理,满足实时性要求。
多任务处理:
中断机制使得 CPU 可以在多个任务之间快速切换,实现多任务处理。
硬件事件处理:
硬件设备(如键盘、鼠标、定时器等)通过中断通知 CPU 有事件发生,CPU 可以及时处理这些事件。
如何实现中断?中断的实现通常包括以下几个步骤:
(1) 硬件支持
中断源:能够触发中断的事件或设备(如定时器、外部按键、串口接收数据等)。
中断控制器:负责管理多个中断源,并根据优先级决定哪个中断先被处理(如 ARM Cortex-M 中的 NVIC)。
中断向量表:存储中断服务程序(ISR)入口地址的表格, ...
Computer_Network2
计算机网络TCP
__源端口号__(Source Port,16位)表示发送方的端口号,用于标识发送数据的应用程序。
__目的端口号__(Destination Port,16位)表示接收方的端口号,用于标识接收数据的应用程序。
__序列号__(Sequence Number,32位)序列号用于标识该 TCP 报文段中第一个字节在整个字节流中的相对位置。
http和https的区别:
HTTP 和 HTTPS 是两种常见的网络通信协议,它们的主要区别在于 安全性 和 数据传输方式。以下是它们的详细对比:
1. 基本概念
HTTP(HyperText Transfer Protocol):
一种用于传输超文本(如网页)的应用层协议。
数据以明文形式传输,容易被窃听或篡改。
默认端口:80。
HTTPS(HyperText Transfer Protocol Secure):
是 HTTP 的安全版本,基于 SSL/TLS 协议对数据进行加密。
数据传输过程中加密,防止窃听和篡改。
默认端口:443。
HTTPS 的加密机制非对称加密,可以简单理解为服务端既有公钥又 ...
Makefile 基础
Makefile 是一个用于自动化构建和管理项目的工具,通常用于编译源代码、链接目标文件以及生成最终的可执行文件或库。它基于 Make 工具,通过定义规则和依赖关系来高效地管理构建过程。
.s 和 .o 文件是两种常见的中间文件,它们分别代表 汇编代码文件 和 目标文件
对于庞大的项目,Makefile对.o文件进行链接。
Makefile 的基本语法命令必须以 Tab 开头,
(1)规则(Rule)结构12target: prerequisites recipe
target:生成的目标文件(如 main.o)或伪目标(如 clean)。
prerequisites:依赖文件(如 main.c)。
recipe:执行的命令(必须以 Tab 开头)。
示例12hello: hello.c gcc hello.c -o hello
(2)变量(Variable)12345CC = gccCFLAGS = -Wall -O2hello: hello.c $(CC) $(CFLAGS) hello.c -o hello
(3)伪目标(Phony Target)用于 ...