1、编译提示警告说36行的 | 附近有问题,按提示应该系统怕表达式优先级有问题提示要加括号,但是 | 左右的表达式都已经有括号括起了,也就是()|(),于是只能将整个表达式都括起来试试,也就是(()|()),再次编译警告依旧存在,于是只能靠猜测和尝试了,比较大嫌疑的就是位操作里的0xff<<8缺少括号,而且刚好在 | 两边都有,为了验证,特地做了两次对比试验,两个0xff<<8都用小括号括起来之后如果编译通过说明应该是这里的问题,然后第二次试验时再随机选其中一个的小括号去掉按说警告会再次出现,这样就能完全确定是这里的问题,经过测试发现确实是要都加括号,这也说明在位操作0xf以上时最好添加小括号。

2、在《第八天 01 Linux驱动之看门狗》中所使用的手册是针对s5p6818的,根据视频讲述来看WTCON的[2]和[0]功能是需要互换的,但是经过测试,在s5pv210上还是依照手册来的(也就是s5pv210的WTCON的[2]和[0]功能没有互换),具体可以通过打印WTCON寄存器值即可知道,在s5pv210下,写入完其它位数据但不对WTCON[0]做任何操作,读取到的默认值为0(此时整个WTCON寄存器值为0xff3c,但此时s5pv210并没有重启,为了验证,特地将WTCON[0]写入1,再次测试WTCON寄存器值变为0xff3d,这时s5pv210会重启了)。

3、在测试驱动模块的原子操作时,需要模拟出多个进程访问的情形,但是用于测试的应用程序只有一个,这时可以在执行该应用程序后加&,使得该应用程序可以一直在后台运行(除了之前kill -9 PID还可以用killall+app结束该app的后台运行),然后再执行一遍应用程序就相当于模拟出第二进程访问的情形,另外一点是,在应用程序打开成功以后直接按回车可以回到命令行,接着继续输入命令。


关键字:编译
引用地址:
x210-2023-04-12
推荐阅读最新更新时间:2026-03-25 11:56
STM32开发笔记39: Keil打开时提示”Warning #440“警告的解决方法
单片机型号:STM32F070F6P6 首先指明的是此问题是升级keil以后造成的,keil版本升级到V5.26.2.0后,打开原先的程序提示”Warning #440“警告,如下图所示。 此问题的解决方法,在Keil的官方网站中,有详细的描述,网址如下:http://www.keil.com/support/docs/4028.htm。 具体解决的方法,就是打开”Options for Target“对话框,找到”Device“选项页,选择其它芯片类型,然后再选回来,点击”OK“按钮,就解决了。
[单片机]
X210串口配置与stdio移植
串口控制器初始化关键步骤 (1)初始化串口的Tx和Rx引脚所对应的GPIO(查原理图可知Rx和Rx分别对应GPA0_1和GPA0_0) (2)GPA0CON(0xE0200000),bit = 0b0010 bit = 0b0010 (3)初始化这几个关键寄存器UCON0 ULCON0 UMCON0 UFCON0 UBRDIV0 UDIVSLOT0 主要的几个寄存器 (1)ULCON0 = 0x3 // 0校验位、8数据位、1停止位 (2)UCON = 0x5 // 发送和接收都是polling mode (3)UMCON0 = 0x0 // 禁止modem、afc (4)UFCON0 = 0x0 //
[单片机]
使用Makefile在Windows环境下编译STM32F103C8T6标准库工程,脱离Keil的指南
引言 前段时间学习了Makefile,了解到其批量编译的功能。所以去尝试复刻到keil编译文件。这里实现了window下实现makefile对标准库来编译。之后也会在Linux环境下继续探索。 这里的核心软件还是gcc-arm-none-eabi的arm环境,与MinGW64提供的make软件。 核心修改点为makefile文件的修改与标准库函数里面的两个函数的修改。个人认为这种方法应该也可以用到别的芯片上面,不过目前没有去验证。我会提供此次使用的全部工程文件。每次上传文件到csdn,别人下载都会要收费或者收积分,我真的:)- 一、软件与环境准备 我们需要准备三个环境包与一个软件(提供一个Make file模板) MInG
[单片机]
华为正式开源仓颉编程语言,含运行时、编译器等
7 月 31 日消息,华为昨日(7 月 30 日)在 Gitcode 平台上,正式开源其自主研发的仓颉编程语言,涵盖运行时、编译器、命令行工具、标准库等。 仓颉编程语言是一款面向全场景智能化应用开发的现代编程语言,具有原生智能化、天生全场景、高性能,强安全等技术特色,拥有现代语言特性的集成、全方位的编译优化和运行时实现、简洁易用的智能 Agent 声明式编程框架、以及开箱即用的 IDE 工具链支持。 仓颉运行时是仓颉 Native 后端(CJNative)的核心组件之一,以高性能和轻量化为设计目标,为仓颉语言在全场景下的高性能表现提供有力支持。 仓颉编程语言标准库 std 模块,为开发者提供了最通用的 API,包括输入输出功能
[嵌入式]
迅为-i.MX6ULL 开发板-移植OpenCv3.4.1-搭建编译环境
我们需要准备的资料: 1.开发板使用的是 i.MX6ULL 终结者,开发板里面是 Yocto 文件系统。 2.使用 Ubuntu 16.04 3.提供 opencv 源码“opencv-3.4.1.zip” 4.QT 测试例程 86.1 安装交叉编译工具 移植的 QT 系统需要的交叉编译器就是我们编译 qt 的编译器,因为我们是 Yocto 系统,所以我们用编译 Yocto 的编译器来编译 OpenCV。交叉编译器为:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf。设置交叉编译器请参考 i.MX6ULL 终结者-开发板使用手册 4.3 章节 搭建交叉编译环境。
[单片机]
迅为4412开发板实验_Makefile编译(上)
本章导读 在前面入门视频第十期“搭建编译环境 uboot_linux_Android”中,只介绍了输入 Make命令就可以编译出内核,并没有介绍它是如何运行的。 在向内核中添加驱动的时候要完成 3 项工作,包括: 1)在 Kconfig 中添加新代码对应项目的编译条件,这一部分在实验 3 已经介绍过; 2)将驱动源码添加到对应的目录中,这一步比较好理解,在本章实验中将给大家演示一下; 3)在目录 Makefile 中文件中增加针对新代码的编译条目,这一部分将在本章节介绍到。 4.1.1 工具 4.1.1.1 硬件工具 1)PC 机 4.1.1.2 软件工具 1)虚拟机 Vmware 2)Ubuntu12.04.2 3)Ubuntu
[单片机]
IMX6ULL学习笔记(5)——获取和编译U-Boot
一、简介 1.1 BootLoader BootLoader 是系统上电时运行的一段初始化代码,用于引导完整的操作系统,然后将控制器交给操作系统。 这段 BootLoader 程序会先初始化 DDR 等外设,然后将 Linux 内核从 Flash(NAND,NOR FLASH,SD,MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。 另外,某些 BootLoader 可能含有一些高级特性,如校验操作系统镜像,从多个操作系统镜像中选择引导合适的操作系统, 或者添加网络功能,让系统自主从网上寻找合适的镜像并且进行引导等等。 1.2 U-Boot U-Boot(Universal Boot Loader) 是一个主要
[单片机]
IMX6ULL学习笔记(8)——获取和编译Linux内核
一、简介 1.1 Linux内核 Kernel 即是Linux内核,Linux内核采用宏内核架构,即Linux大部分功能都会在内核中实现,如进程管理、内存管理、设备管理、文件管理以及网络管理等功能,Linux在发展的过程中,引入了内核模块(Loadable Kernel Module,LKM)机制,内核模块全称为动态可加载内核模块,就是在内核运行时可以动态加载一组目标代码来实现某些特定的功能,在这过程中不需要重新编译内核就可以实现动态扩展。 1.2 Linux内核组成 Linux内核主要由5部分组成,分别为:进程管理子系统,内存管理子系统,文件子系统,网络子系统,设备子系统。 进程管理 负责进程的创建和销毁,进程的调度。
[单片机]