scons

【STM32F4】【银杏科技ARM+FPGA】iCore3移植RT-Thread--RTC

血红的双手。 提交于 2020-07-28 07:27:14
RTC(Real-Time Clock)实时时钟可以提供精确的实时时间,可以提供时钟日历的功能。目前实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源。iCore3 RTC外加电池供电,为了在主电源掉电时还可以工作。RT-Thread的RTC设备为操作系统的时间系统提供了基础服务,面对越来越多的loT场景,RTC已经成为了产品的标配。 一、 使能RTC ,选择时钟源 1.1 我们打开../BSP/STM32/STM32F407_gingko_iCore3/board/CubeMX_Config来进行RTC使能配置,其他参数不予更改。配置完成后点击CREATE CODE。 1.2 CubeMX生成工程后,只保留红色方框内的文件,其他的两个文件夹可以删除掉。 1.13复制刚生成的src文件夹main.c文件夹中的函数SystemClock_Config(void)到board.c。这里内核初始化时要调用该函数进行时钟配置。 二、 打修改Kconfig 文件,在menu “On-chip Peripheral Drivers” 下增加RTC 选项 2.1打开../BSP/STM32/STM32F407_gingko_iCore3/board/Kconfig: 2.2点击保存,打开Env工具,输入menuconfig命令,使能RTC: 2.3保存退出,输入scons --target

Checking if an exe is 32 bit or 64 bit

北城以北 提交于 2020-06-16 04:42:49
问题 I'm writing a python program that uses scons to build an .exe and then checks to see if it's a 64-bit or 32-bit. I tried platform.architecture(test1.exe) , but the problem is when I give a 32-bit exe, it says it's a 64-bit. I tried using dumpbin but the output is huge, so I used this dumpin /HEADERS test.exe |find "machine" . The problem is I can't use python to execute this command. When I use subprocess.call(['dumpbin /HEADERS test2.exe |find "machine"']) , I get the following error

How to set duplicate=0 for all SCons build variants without repeating the option multiple times on each SConscript call?

我们两清 提交于 2020-05-15 05:44:13
问题 I am dealing with a project that has many variant dirs created with SConscript(variant_dir=) . I want to make scons stop soft linking/hard linking/copying my .c files into the build directories. I know that I can do that if I pass duplicate=0 for each of those calls as documented at: https://scons.org/doc/2.4.1/HTML/scons-user.html#idp1378843980 But is there an easier way to make duplicate=0 automatically take effect for all variant dirs? For example, in a simplified example: env =

Mac OS X下使用C++ JSON库

六月ゝ 毕业季﹏ 提交于 2020-05-08 00:21:21
1. 下载C++ JSON库 http://sourceforge.net/projects/jsoncpp/files/ 2. 下载scons http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download 3. 解压scons-2.1.0.tar.gz tar -zvxf scons-2.1.0.tar.gz 4. 进入到解压目录scons-2.1.0下面,执行命令: sudo python setup.py install 5. 解压jsconcpp tar -zvxf jsoncpp-src-0.5.0.tar.gz 6. 进入到jsoncpp解压目录下,执行命令: sudo scons platform=linux-gcc 7. 可以将/jsoncpp-src-0.5.0/include/目录下的json文件夹拷贝到/usr/include/,将jsoncpp-src-0.5.0/libs/linux-gcc-4.9.1/目录下的libjson_linux-gcc-4.9.1_libmt.a 拷贝到/usr/local/lib/下,并为了方便使用,将其重命名为libjson.a。或者在g++编译时手动添加。 8. 测试代码: 1 #include <iostream>

C++使用 jsoncpp 解析json数据

故事扮演 提交于 2020-05-08 00:18:04
整合自网路 一、安装的方法 1、安装 scons   下载地址: http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download   百度网盘:链接: https://pan.baidu.com/s/1tW57c9s3iCeoDi4OIDyEPQ 密码:2wd5   解压:tar -zvxf scons-2.1.0.tar.gz   进入到解压目录scons-2.1.0 执行命令:     sudo python setup.py install 2、安装 Jsoncpp   下载地址: http://sourceforge.net/projects/jsoncpp/   解压:tar -zvxf jsoncpp-src-0.5.0.tar.gz   进入到jsoncpp解压目录下,执行命令:   sudo scons platform=linux-gcc   将/jsoncpp-src-0.5.0/include/目录下的json文件夹拷贝到 /usr/local/include/   将jsoncpp-src-0.5.0/libs/linux-gcc-4.9.1/目录下的libjson_linux-gcc-4.9.1_libmt.a 拷贝到 /usr/local/lib/ 下

Subversion1.8源码安装流程

百般思念 提交于 2020-05-07 18:59:15
为了解决svnamin:Unrecognized record type in stream的问题,决定将Subversion1.7升级为Subversion1.8 Subversion1.8的源码安装和Subversion1.7之前一致,只是基础依赖有区别,注意以下几个包: 1、 apr,apr-util apr下载地址: http://apr.apache.org/download.cgi ./configure --prefix=/usr/local/apr ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr 2、 openssl,openssl-devel,expat-devel 直接使用yum源安装即可 3、 scons安装,使用python2安装 SCons下载地址: https://scons.org/pages/download.html python setup.py install 4、 使用scons安装serf serf下载地址: https://serf.apache.org/download 解压后进入serf文件夹 scons PREFIX=/usr/local/serf APR=/usr/local/apr APU=/usr/local/apr-util scons

【STM32F4】【银杏科技ARM+FPGA】iCore3移植RT-Thread--PWM呼吸灯

喜欢而已 提交于 2020-04-30 13:45:56
  PWM(Pulse Width Modulation , 脉冲宽度调制) 是一种对模拟信号电平进行数字编码的方法,通过不同频率的 脉冲使用方波的占空比用来对一个具体模拟信号的电平进行编码,使输出端得到一系列幅值相等的脉冲,用这些脉冲来 代替所需要波形的设备。 一、 配置TIM的相关GPIO,选择时钟源 1.1 我们打开../BSP/STM32/STM32F407_gingko_iCore3/board/CubeMX_Config来进行定时器的配置,我们 以TIM8通道1为例,注意这里仍然是只配置IO,其他参数不予更改。配置完成后点击CREATE CODE。 1.2 CubeMX生成工程后,只保留红色方框内的文件,其他的两个文件夹可以删除掉。 1.3 复制刚生成的src文件夹main.c文件夹中的函数SystemClock_Config(void)到board.c。这里内核初始化时要 调用该函数进行时钟配置。 二、 修改Kconfig文件,增加menuconfig菜单中的PWM选项 三、 添加PWMn_CONFIG定义 四 、 添加PWM软件包 打开Env工具,使用menuconfig配置工程,路径为:RT-Thread online packages---> miscellaneous packages---> samples : kernel and components

【STM32F4】【银杏科技ARM+FPGA】iCore3移植RT-Thread--ADC电源监控

做~自己de王妃 提交于 2020-04-22 01:17:23
一、 配置ADC响应的GPIO   ADC是A/D转换部件,单片机不能直接处理模拟量,所以需要ADC将模拟两转换为数字量后进行处理。在使用单 片机进行模 拟数据处理的过程中,ADC至关重要。   1.1 在STM32F407IGT6中分别是PC4(ADC1_IN14)、PC5(ADC1_IN15)、PF5(ADC3_IN15)、PF6(ADC3 _IN4)、 PF7(ADC1_IN15),我们 打开../BSP/STM32/STM32F407_gingko_iCore3/board/CubeMX_Config来 进行ADC IO配置, 注意这里仍然是只配置IO,其他参数不予 更改。配置完成后点击CREATE CODE。   1.2 CubeMX生成工程后,只保留红色方框内的文件,其他的两个文件夹可以删除掉。 二 、 修改Kconfig文件,增加menuconfig菜单配置中ADC选项 三、 打开menuconfig,使能ADC 四、 使用scons命令生成MDK5工程,打开并进行编译 五、 烧录进iCore3核心板   烧录进去后我们可以发现能够找到ADC设备。例如读出通道14的值是0x52C,将其转变成模拟量:(1324/4096) *2.5*6=4.848(V) 六、 源代码   源代码下载请移步链接: 至此,ADC设备驱动添加完毕,并正确读数。 来源: oschina 链接:

【STM32F4】【银杏科技ARM+FPGA】iCore3移植RT-Thread--BSP制作

三世轮回 提交于 2020-04-19 14:39:05
一、 源代码下载 下载最新版的RT-Thread源代码: https://www.rt-thread.org/page/download.html 二、 工程文件简介 2.1 我们将下载好的源码进行解压,可以看到共有以下文件夹,在这里我们只关注bsp文件夹下的内容。其他文件夹的内容暂时先不理会,有兴趣的伙伴可以先了解一下。 2.2 打开bsp文件夹,我们发现RT-Thread支持n多种厂商的MCU,iCore3 ARM+FPGA双核心板ARM采用的是ST的STM32F407IGT6,因此在这里我们打开stm32的文件夹。 2.3 打开stm32文件夹,可以看到这些文件夹可以大致分为3类,分别为docs文件夹,docs文件夹为官方提供的一些图文教程(相当详细);libraries文件夹,libraries文件夹为STM32的HAL库文件及RTT编写的STM32一些常外设的驱动文件;剩下的为各开发板的最简单的bsp工程。 三、 BSP工程制作 3.1 CubeMX配置 需要创建一个基于目标芯片的CubeMX工程。默认的CubeMX_Config文件夹中,双击打开CubeMX_Config.ioc工程,注意看文件路径。 打开CubeMX选择自己板子上具体的芯片型号,iCore3是STM32F407IGT6。 打开RCC和SYS设置 ARM_LED引脚设置

为什么C ++编译需要这么长时间?

北城余情 提交于 2020-02-27 04:12:29
与C#和Java相比,编译C ++文件需要很长时间。 编译C ++文件所需的时间比运行普通大小的Python脚本要长得多。 我目前正在使用VC ++,但它与任何编译器都是一样的。 为什么是这样? 我能想到的两个原因是加载头文件和运行预处理器,但这似乎不应该解释为什么它需要这么长时间。 #1楼 大多数答案都有点不清楚,提到C#总是运行较慢,因为在编译时只执行一次C ++执行的操作,这种性能成本也会受到运行时依赖性的影响(需要加载更多的东西才能运行)运行),更不用说C#程序将始终具有更高的内存占用,所有这些都导致性能与可用硬件的能力更密切相关。 对于解释或依赖于VM的其他语言也是如此。 #2楼 在较大的C ++项目中减少编译时间的一种简单方法是制作一个* .cpp包含文件,其中包含项目中的所有cpp文件并进行编译。 这会将标题爆炸问题减少一次。 这样做的好处是编译错误仍将引用正确的文件。 例如,假设你有a.cpp,b.cpp和c.cpp ..创建一个文件:everything.cpp: #include "a.cpp" #include "b.cpp" #include "c.cpp" 然后通过make everything.cpp编译项目 #3楼 构建C / C ++:真正发生了什么,为什么需要这么长时间 软件开发时间的相当大一部分不用于编写,运行,调试甚至设计代码