
单片机
单片机相关知识。
草丛中的蝈蝈
这个作者很懒,什么都没留下…
展开
-
沁恒上编译代码报错“No rule to make target”
对应的.c文件存在,但是文件内容为空。删除该内容为空的.c文件。原创 2025-03-04 11:29:49 · 286 阅读 · 0 评论 -
沁恒上编译代码报错“No rule to make target”
对应的.c文件存在,但是文件内容为空。删除该内容为空的.c文件。原创 2025-02-26 17:30:20 · 180 阅读 · 0 评论 -
沁恒CH32V307RCT6烧写hex文件时报错“设置芯片型号失败”
将Link连接到开发板上,使用link的3.3V给开发板供电,使用工具WCH-LinkUtility.exe,点击“连接”按钮,提示升级,升级完成后,烧写hex文件成功。原创 2025-02-24 21:44:05 · 403 阅读 · 0 评论 -
沁恒CH32V307烧写程序时总失败
沁恒CH32V307烧写程序时总失败,提示确认烧写器是处理RISC-V模式。1)拔下烧写器,插入另外一个USB口。原创 2024-12-19 20:46:06 · 563 阅读 · 0 评论 -
*** No rule to make target ‘...SRC/Startup/startup_ch32v30x_D8C.S‘, needed by ‘Startup/startup
编译沁恒ch32v30x上的例程报错“*** No rule to make target ‘…SRC/Startup/startup_ch32v30x_D8C.S’, needed by 'Startup/startup”以为修改了代码所在目录名称。清理下项目,重新编译即可。原创 2024-09-30 10:53:44 · 282 阅读 · 0 评论 -
沁恒CH32V307读写flash出错
定位结果是修改了编译器优化级别导致的,以前使用的是“size”,后来不知道什么时候改为“most”。说明编译器优化过程存在问题。以前测试好的程序,突然发现写入FLASH中的配置参数,再读出内容就会变化。修改编译器优化级别为“size”。原创 2024-09-23 15:53:07 · 365 阅读 · 0 评论 -
CH32V307中调用printf函数后程序卡住
单片机上的printf函数和调试串口绑定,调用printf前必须先初始化调试串口。在main函数中添加代码行:USART_Printf_Init(115200);CH32V307开发板例程中,调试时调用printf函数后程序卡住。原创 2024-09-23 14:35:24 · 330 阅读 · 0 评论 -
line 55: syntax error: unexpected “(“
在PC上编译好的程序,拷贝到开发板上运行后,报错line 55: syntax error: unexpected “(”。没有指定交叉编译器,将在x86架构下的编译的程序,在ARM架构下运行。原创 2024-03-21 09:34:09 · 216 阅读 · 0 评论 -
自定义USB设备在一台PC机上报错“该设备无法启动。(代码10)”
自定义USB设备在其它电脑测试,可正常读写数据,在另一台使用AMD CPU的电脑上会报错“该设备无法启动。自定义USB设备参数配置有问题,USB高速设备BULK传输模式一次最大传输字节数设置为1024存在此问题。USB高速设备BULK传输模式一次最大传输字节数改为512,问题解决。原创 2024-02-27 13:36:06 · 1114 阅读 · 0 评论 -
单片机在执行memcpy函数时卡住
memcpy中第二个参数,本来是一个指针,但是在给这个指针初始化时,漏使用取地址(&)运算符。单片机在执行memcpy函数时卡住。在给指针赋值时,添加上取地址运算符。原创 2023-12-19 14:49:35 · 943 阅读 · 0 评论 -
单片机查看变量值显示“optimized out”
单片机查看变量值显示“optimized out”。编辑器进行优化的结果。关闭编译器优化选项。原创 2023-12-05 11:51:47 · 218 阅读 · 0 评论 -
单片机编译报错“ld.exe: section .stack VMA [0000000020007800,0000000020007fff] overlaps section .bss VMA [0”
修改单片机程序后,编译报错“ld.exe: section .stack VMA [0000000020007800,0000000020007fff] overlaps section .bss VMA [0000000020000530,0000000020007837]”修改数组大小后,导致占空间超出范围。原创 2023-11-24 18:22:22 · 936 阅读 · 0 评论 -
移植FFmpeg在arm交叉编译时遇到的问题
原文链接:添加链接描述遇到的问题1:aarch64-himix100-linux-gcc is unable to create an executable file.C compiler test failed.解决方法:1、首先查看移植时具体出现的问题:vi ffbuild/config.log ,config.log是在./congfigure遇到问题时的记录日志,直接查看最后一行出现:aarch64-himix100-linux-gcc: error: missing argument转载 2021-11-30 18:09:49 · 845 阅读 · 0 评论 -
【linux】Linux开机自动加载模块
下面是以前学习Linux时写的,后来仔细研究rc.sysinit后发现,只需要修改下列地方就可以了,不必这么麻烦的: rc.sysinit中有这样的一段代码: # load other user-defined modules for file in / etc / sysconfig / modules/ .modules ; do [ -x $file ] &&am...转载 2019-12-14 17:04:48 · 637 阅读 · 0 评论 -
嵌入式 Linux 启动时间优化
1 简介本章包含的话题有启动时间的测量、分析、人因工程(human factors)、初始化技术和优化技巧等。产品花在启动方面的时间直接影响终端用户对该产品的第一印象。一个消费电子设备不管如何引人注目或者设计得怎么好,设备从关机状态到可交互的使用状态所需的时间对于获得正面的用户体验尤为关键。案例 #1 就是在关机状态从头启动一个设备的例子。启动一个设备涉及到许多步骤和一系列的事件。为了使用...原创 2019-12-24 11:29:01 · 658 阅读 · 1 评论 -
【linux】The package lists or status file could not be parsed or opened
【问题描述】执行命令“apt-get install qt4-qtconfig” 报错:Reading package lists... Error!E: Encountered a section with no Package: headerE: Problem with MergeList /var/lib/apt/lists/extras.ubuntu.com_ubuntu_di...原创 2019-11-27 14:20:22 · 1079 阅读 · 0 评论 -
【linux】串口常量含义
IGNBRK忽略输入中的 BREAK 状态。BRKINT如果设置了 IGNBRK,将忽略 BREAK。如果没有设置,但是设置了 BRKINT,那么 BREAK 将使得输入和输出队列被刷新,如果终端是一个前台进程组的控制终端,这个进程组中所有进程将收到 SIGINT 信号。如果既未设置 IGNBRK 也未设置 BRKINT,BREAK 将视为与 NUL 字符同义,除非设置了 PARMRK,这种...原创 2020-04-26 15:14:19 · 585 阅读 · 0 评论 -
i.MX6新版BSP之LCD移植
本文由博主girlkoo编写,关于E9与TQIMX6Q开发平台LCD移植的文章。 经过前面的移植,eMMC已经可以在tqimx6q上正常运行了,本文将来移植LCD驱动。DTS编写 imx6的LCD控制器与之前的芯片略有不同,详细的信息可以阅读芯片手册。参考sabrelite开发板的DTS,我们可以添加如下内容:/ {…aliases { mxcfb0 = &mxc...转载 2019-12-24 18:16:33 · 881 阅读 · 0 评论 -
【embedded】GDB远程调试方法
前提:嵌入式开发板上已经安装好gdbserver。嵌入式开发板上运行命令:root@imx6qsabresd:/mnt/mxc_vpu_test/tmp# gdbserver localhost:2001 mxc_vpu_test.outProcess mxc_vpu_test.out created; pid = 877Listening on port 2001Remote deb...原创 2019-05-09 19:50:51 · 949 阅读 · 0 评论 -
【linux】给ubuntu虚拟机硬盘扩容
关闭ubuntu虚拟机,在vmware里扩展硬盘大小为你想要的大小。打开ubuntu虚拟机,使用命令:df -h 查看分区状态。执行命令swapoff /dev/sda5,关闭交换分区。执行命令fdisk /dev/sda 删除原来的所有分区(通常为sda1、sda2、sda5,共3个)。使用fdisk 内置命令创建主分区。使用fdisk 内置命令创建扩展分区。使用fdisk 内置...原创 2019-12-12 16:21:01 · 157 阅读 · 0 评论 -
【embedded】构建交叉编译程序报错:error: [main.o] Error 2
问题现象构建交叉编译程序报错:......cortexa9hf-neon-poky-linux-gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++ -o main.o ../FlyCtrlTerminal/main.cpp/bin/sh: 1: Syntax error: "(" unexpectedmake: *** [main.o] Error 203...原创 2019-07-02 18:29:11 · 1622 阅读 · 0 评论 -
imx6上配置lvds屏幕
root@imx6qsabresd:~#root@imx6qsabresd:~# reboot -f[ 47.504399] reboot: Restarting systemU-Boot 2016.03 (Jan 07 2019 - 22:27:42 -0800)CPU: Freescale i.MX6Q rev1.5 at 792MHzCPU: Industrial te...原创 2020-04-02 18:54:07 · 639 阅读 · 0 评论 -
【embedded】交叉编译概念
交叉编译概念先来看一下,如果要在PC上运行一个二进制程序(以源码的方式进行编译,不要以包管理工具的方式来安装),需要怎样做?首先,要有这个二进制程序的源代码(有可能是直接下载的,也有可能是自己编写的代码),然后在PC上进行编译链接生成可执行文件,最后在Terminal下面去执行该可执行文件。上述流程中包含了几个角色,首先是要有源代码,然后是要知道最终运行该二进制程序的机器是哪一个(其实就是本...转载 2020-01-22 22:03:24 · 210 阅读 · 0 评论