编程基础知识
内存分布的情况和编程的一些基础重要的点(c和c++)
链接文件和启动文件
在STM32的嵌入式开发中,链接文件(.ld文件)和启动文件(startup file)是两个非常重要的部分。它们分别负责程序的内存布局和初始化过程。下面是对这两个文件的分析:
链接文件 (.ld文件)
链接文件是用来描述内存映射的,也就是告诉编译器程序应该放在STM32的哪个内存地址以及指定程序应该如何映射到内存中。它定义了程序代码、全局变量、静态变量等在内存中的布局。链接文件中最重要的部分是SECTIONS,它定义了程序应该如何映射到内存中。例如,代码应该放在哪个地址,数据应该放在哪个地址,中断向量表应该放在哪个地址等。
以下是关于STM32中链接文件的一些重要信息和概念:
ENTRY和EXIT:在链接文件中,ENTRY和EXIT指令用于定义程序的入口点和出口点。ENTRY指令指定了程序开始执行时的入口点,通常是Reset_Handler函数。EXIT指令则定义了程序的退出点,通常指向main函数的结束处。
MEMORY和SECTIONS:MEMORY指令用于指定内存区域的起始地址和大小。SECTIONS指令则用于描述程序应该如何映射到这些内存区域中。例如,代码应该放在哪个内存 ...
视频监控项目
1不需要编写代码
在buildroot中配置,编译;或者下载源码进行编译,移植到开发板
MJPG-streamer方案的实现
编译安装MJPG-streamer使用Buildroot编译
执行命令:mjpg_streamer -i “/usr/lib/mjpg-streamer/input_uvc.so -d /dev/video1 -f 30 -q 90 -n” -o “/usr/lib/mjpg-streamer/output_http.so -w /usr/share/mjpg-streamer/www”
确保PC或手机,跟开发板处于同一个局域网 假设开发板IP为:192.168.1.6在chrome浏览器中打开:192.168.1.6:8080/stream.html就可以看见视频了
流媒体方案的实现之ffmpeg,Nginx
下载源码,手工编译使用Buildroot
或配置选择ffmpeg,直接编译生成映象文件
执行命 ...
PC性能监测
简介hardware monitor:一个显示 PC 运行状态监测的站台,通过上位机将 PC 端的 CPU 温度、CPU 占用率、内存占用率、GPU 温度和实时网速等信息采集后下发到MCU,MCU通过 OLED 将其显示出来。
此项目在vscode中进行开发编译,使用rt-thread操作系统。
PCB:
经过简化打的PCB
驱动代码:led.c
1234567891011121314151617181920212223242526static uint8_t led_enable = 0;static uint16_t pwm = 2001;static uint8_t flag = 0;static rt_uint8_t led_breath_thread_stack[154];static struct rt_thread led_breath_thread;void led_breath_entry(void *parameter);void led_init(){ rt_err_t ret = RT_ERROR; config_t config = g ...
智能家居
简介:项目包含对下位机(MCU对外设数据读取与控制),上位机(APP端),云端(云服务平台)的设计。下位机选取正点原子STM32MINI板作为MCU;外设有LED灯,DS18B20温度传感器,ESP8266,OLED;上位机为制作APP;云端选用中国移动旗下的OneNet平台作为服务器。
引脚:1234567891011121314151617181920212223LED:PA8(自带)DS18B20:VCC --> 3.3VGND --> GNDDATA-->PA0ESP8266:VCC --> 3.3VGND --> GNDRX--> PA2TX --> PA3RST --> PC13EN --> 3.3VOLED:VCC --> 3.3VGND --> GNDSCL --> PC0SDA --> PC1RES --> PC2DC --> PC3
接线图:
OneNet平台使用注册OneNet平台账号
登入后选择控制台,进入后点击全部产品服务,选择多协议接入;(我们使用MQTT,既可以上 ...
linux卡片电脑
一、硬件原理图
打板焊接
二、系统移植2.1 安装交叉编译器①下载交叉编译器 arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz,然后解压编译器:
123SHELLmkdir -p /opt/YuanPi-Plus/toolchaintar xf arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz -C /opt/FriendlyARM/toolchain/
②将编译器的路径加入到 PATH 中,vi ~/.bashrc,在末尾加入以下内容:
1234SHELLexport PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATHexport GCC_COLORS=auto# 执行一下~/.bashrc脚本,让设置立即在当前shell窗口中生效,注意"."后面有个空格:. ~/.bashrc
③这个编译器是 64 位的,不能在 32 位的 Linux 系统上运行,安装完成后,验证是否安装成功:
123SHELLarm-linux-gcc -v# 显示出 ...