作者: hadongzhu

73 篇文章

Keil MDK(ARM编译器)分散加载特性(上):使用GUI控制
引子 某些单片机拥有多个ROM与RAM,例如STM32H750就有ITCM、DTCM、SRAM1~SRAM4等多块内存,并且他们的地址并不连续,同时某些外设也支持地址映射,例如QSPI,从而访问外部Flash的储存空间,如何管理这些地址成了一个问题。有时我们希望将某些代码加载到内存运行,以提升某些关键操作的速度。为了解决这些问题,就需要使用ARM编译器的分散加载(Scatter-loading)特性。在IAR中是由链接器配置文件(Linker configuration file(.icf))实…
Window远程桌面(RD)之极速安装SSL证书
引子 在第一次连接远程桌面时通常会提示“无法验证此远程计算机的身份。是否仍要连接?”,勾选不再询问我是否连接到此计算机后在下次连接时就不会弹出这个警告。虽然这样做受到攻击的概率非常低,但是为RDP安装一个CA颁发的SSL证书能提升一点点RDP的安全性。 参考:远程桌面侦听器证书配置。 安装证书(pfx格式) 部分服务提供商会提供pfx格式的证书下载(服务器类型Tomcat或IIS),通常包含pfx证书和一个密码,若证书不为pfx格式,可以使用openssl进行转换,并需要设置一个密码。 open…
枚举在C、C++下兼容的问题
引子 在C++下,枚举的底层类型可以通过枚举基确定,但C下并不支持这种用法,因此在做两者兼容时可能会出现一些潜在的问题,例如: #ifdef __cplusplus namespace test { namespace impl { #endif enum test_enum { TEST_ENUM_1, TEST_ENUM_2, }; #ifdef __cplusplus } // namespace impl } // namespace utils namespace test { enu…
Python下dll、pyd搜索路径的问题
引子最近在用C++使用pybind11生成pyd以供python调用,并且使用opencv的dll,在测试过程中经常无法找到对应的文件。pyd搜索路径会在当前工作目录和PYTHONPATH环境变量中搜索,也可以通过sys.path.append()临时添加变量:sys.path.append('/path_to_pyd/')备注:通过sys.path.append()临时添加变量会导致pycharm中标注报错,但是能够正常运行。在pycharm中可以在 设置 > 项目 > Pytho…
GUIX移植STM32H7指南
GUIX与STM32H7相关资源 ThreadX官方文档ThreadX代码仓库STM32Cube MCU包GUIX代码仓库x-cube-azrtos-h7 GUIX与此处使用的LCD GUIX提供了一个软件GUIX Studio专门用于设计图形界面,可以在Microsoft Store微软商店中下载,需要注意的是这个软件在国内无法下载,需要将地区切换为美国。此处使用的LCD是使用ST7735主控,SPI进行通信的,颜色格式为RGB565。 GUIX移植 首先在GUIX代码仓库中下载GUIX,将G…
USBX移植STM32H7指南(SD卡模拟U盘)
USBX与STM32H7相关资源 ThreadX官方文档ThreadX代码仓库STM32Cube MCU包USBX代码仓库x-cube-azrtos-h7 USBX移植(仅移植device部分) 首先在USBX代码仓库中下载USBX,将FileX的.\common\core\scr、.\common\usbx_device_classes\scr文件夹下的源文件全部添加到工程中,.\port文件夹下没有源文件,这一部分需要自己实现(STM32提供了相关代码),并添加包含路径.\common\co…
FileX移植STM32H7指南
FileX与STM32H7相关资源 ThreadX官方文档ThreadX代码仓库STM32Cube MCU包FileX代码仓库x-cube-azrtos-h7 FileX移植 首先在FileX代码仓库中下载FileX,将FileX的.\common\scr文件夹下的源文件全部添加到工程中,.\port文件夹下没有源文件,这一部分需要自己实现(STM32提供了相关代码),并添加包含路径.\common\inc、.\ports\cortex_m7\gnu\inc,此时工程应该可以正常编译,FileX…
在ThreadX中使用low_power低功耗(ARM)
在单片机系统运行过程中,大部分时间均处于空闲状态,为了减小功耗,可以让ThreadX管理在空闲时进入低功耗模式。在utility\low_power文件夹有关于这个模块使用的详细说明。 移植说明 这个工具位于utility\low_power文件夹下,使用时将这个文件夹下的源文件添加进工程,C/C++的包含路径也添加这个文件夹。ThreadX可用的配置有TX_LOW_POWER_TIMER_SETUP和TX_LOW_POWER_TICKLESS,这两个选项组合能产生三种配置(不使能TX_LOW_…
在ThreadX中使用execution_profile(运行概要)工具(ARM)
在ThreadX中官方提供了execution_profile工具,这个工具能够统计ThreadX在线程、中断、空闲时的时间。通过这些时间,我们可以推算出CPU的利用率。 移植说明 这个工具位于utility\execution_profile_kit文件夹下,使用时将这个文件夹下的源文件添加进工程,C/C++的包含路径也添加这个文件夹。使用这个工具需要实现TX_EXECUTION_TIME_SOURCE和TX_EXECUTION_MAX_TIME_SOURCE两个宏定义,分别为该工具使用的时钟…