- 博客(11)
- 问答 (1)
- 收藏
- 关注
原创 重定位整个代码
最近重温韦东山老师的嵌入式视频重定位章节,看完重定位整个代码部分后一直在纠结一个问题,先把链接脚本和重定位部分代码贴出来:SECTIONS{ .= 0x30000000; .= ALIGN(4); .text : { *(.text) } .= ALIGN(4); .rodata : { *(.rodata) } .= ALIGN(4); .data : { *(.data) } .= ALIGN(4); _bss...
2020-07-04 21:46:55
249
原创 虚拟内存
这两天花时间学习了一下虚拟寻址的原理,之前写驱动程序只知道把物理地址转换为虚拟地址(VA),CPU实际使用的也是虚拟地址,其经内存管理单元(MMU)最终转换为物理地址(PA),对其中涉及的一些概念不清楚,导致对整个嵌入式系统的整体理解存在偏差,所幸花时间学习一下。物理和虚拟寻址 首先明确虚拟地址空间和物理地址空间的概念。在一个带虚拟内存的系统中,假设为n位系统(如常见的32位和64位),CPU从这个有个地址的地址空间中生成虚拟地址,这个地址空间称为虚拟地址空间。概念上而...
2020-05-23 10:51:03
343
原创 VirtualAllocEx和VirtualCopyEx
具体用法资料很多,不做深究,在此只说明其作用,主要是分清各个进程运行于内核空间还是用户空间! WinCE虚拟空间分为用户空间(低2G)和内核空间(高2G),对于内核空间来说,只要访问0x80000000以上的有效虚拟地址经MMU就能够访问物理地址,其虚拟地址和物理地址是通过OEMAddressTable完成映射的。而对于用户空间来说,只能访问0x80000000以下的虚...
2019-05-10 13:57:32
1184
原创 单例模式
懒汉式:需要时才构造该单例class CRemoteControl{public: ~CRemoteControl(void){ } static CRemoteControl& GetInstance() { if(m_rc == NULL) m_rc = new CRemoteControl(); ...
2019-05-10 09:54:57
114
原创 WinCE访问物理地址问题求解
1.VirtualAlloc分配的虚拟地址空间具体在虚拟内存的哪个位置?用户区还是内核区,不了解二者分别在什么情况使用2.使用VirtualCopy将物理内存映射到上述申请的虚拟内存,假设我这段物理地址已经在g_oalAddressTable定义了物理地址到虚拟地址的映射关系,那么VirtualCopy这个过程还能将这段物理内存映射到刚分配的虚拟地址上吗?...
2019-04-30 10:10:21
95
原创 const常量对象与const成员函数调用
今天在写一个类模板的时候遇到了const常量对象与const成员函数调用的问题,仔细捉摸了一番记录下来,简略代码如下:h文件class MyVector{public: MyVector(const MyVector& vec); int size();private: int m_num;};cpp文件MyVector::MyVecto...
2019-03-21 15:01:58
1054
1
原创 QML自制数字软键盘,向TextInput或者TextField键入数字,并可实现左移右移以及删除等操作
先用QML布局好数字键盘以及TextInput。在实现键入的过程中主要使用了TextInput类型的cursorPosition属性以及两个方法:void insert(int position, string text)和void remove(int start, int end)。cursorPosition含义是光标位于TextInput中第几个数字之后闪烁,两个方法含义很明确。...
2019-02-28 17:53:52
2794
原创 QML中TextInput和TextField在设计布局时的不同
在QtQuick Controls模块中,每一个控件都有一个style属性,可以指定对应的样式类型,样式类型就是在该控件类型名称的后面加上Style,例如TextField对应的样式就是TextFieldStyle。要使用样式类型,必须导入下面语句:import QtQuick.Controls.Styles 1.4此时,还需要导入:import QtQuick.Controls ...
2019-02-28 14:29:52
2019
原创 OpenGL帧缓存对象FBO
帧缓存对象最大的意义就是可以在不同的缓存之间大量迁移数据,对于离屏渲染技术、纹理贴图的更新非常有帮助。但是我们在屏幕上看到的只能是窗口系统提供的帧缓存,而应用程序中创建的帧缓存无法被显示器所显示,只能利用离屏渲染技术将帧缓存内容渲染到窗口系统的帧缓存进行显示。 但是《OpenGL编程指南第8版》P140最后一句话:现在,我们可以选择将这些附件(帧缓存附件)关联到...
2018-10-26 22:21:33
380
原创 nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
错误提示:nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex这是因为MFC要使用多线程时库, 需要更改设置: [...
2018-04-19 23:10:15
901
原创 error LNK2005: _cdecl operator delete(void *)
在Visual C++上编程时有时会出现:nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj) 中定义错误,这主要是因为两个库的顺序问题,改下属性就好了。project->settings ->l...
2018-04-19 23:06:04
1328
空空如也
list的迭代器为什么没有重载+和-
2023-09-01
双缓冲绘图遮盖非模态对话框
2021-12-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人