• 从较小的数组到较大的数组的元素明智的转变

    我在Arduino框架中编写ESP32。对于我的应用程序,我需要创建一个缓冲区,该缓冲区将存储当前和上次访问它的信息。这是我正在尝试做的事情。 //first buffer char buffer1[4]; //second buffer char buffer2[8]; void setup { //setup } //buffer1 values will change with each iteration of loop from external inputs //buffer2 m...
  • 如何继续在嵌入式C while循环中接收定时中断?

    我需要嵌入式设备在功能上停留半秒,以使另一台设备赶上来。我使用了1毫秒的计时器(对于Renesas IAR IDE,是r_cg_cmt.c),并且具有一个静态volatile int delay_time,它每隔1毫秒定时中断递增一次。 使用代码: //counter.c //on 1 mS timed interrupt gen_purpose_1ms_couter(); void gen_purpose_1ms_couter_reset( void ){ gen_c->count = ...
  • 是否可以优化此嵌套循环?

    我正在一个项目中,我想将给定的视频输入流转换为块部分(以便可以由硬件编解码器使用)。该项目在运行200Mhz时钟的STM32微控制器上运行。 收到的输入是YCbCr 4:2:2渐进流,这基本上意味着每行的输入流如下所示: Size: 32 bit word 32 bit word 32 bit word ... Component: Cr Y1 Cb Y0 Cr Y1 Cb Y0 Cr Y1 Cb Y0 ... Bits: 8 8 8 8 ...
  • C设计模式执行动作列表而不阻塞?

    嵌入式C。在程序上,我有一系列要做的事情,主要是READ和WRITE和MODIFY操作,它们作用于最后一条语句的结果。他们每个人最多可能需要2秒钟,我无法阻止。 每个操作都可以具有COMPLETE和ERROR状态,由于发生错误的原因,它们具有子状态。或者在比赛中,我要检查或修改一些数据。 每个动作列表都是一个很大的切换,要重新输入,我会列出我正在进行的步骤,一个成功步骤++,然后下次我又回到该列表的下方。 很简单,但是我发现要不加阻拦,我会花费大量精力不断检查状态,错误和边缘。一遍又一遍。 我会说我80%的...
  • 使用易失成员变量或易失对象进行中断?

    我正在尝试在下面的“ MpscQueue.h”中的嵌入式目标上实现多个生产者(通过中断),单个消费者(通过应用程序线程)队列。 I'm wondering if I can safely remove the some of the volatile usage below (see inline questions). I would also consider using std::array by marking the object and qualifying the public method...
  • 如何在不更改其余代码的情况下替换C ++模板以使其与C兼容?

    我正在使用C ++编写的代码,试图将其转换为C以在嵌入式平台上构建。 我想知道如何在不更改其余代码的情况下有效地转换模板以在C中执行相同的功能。 这是我的项目中的示例文件: template <typename T,int width,int depth> void relu(int arr[][width][depth],int layermap[][width][depth]){ for(int k=0;k<depth;k++) { for(int j=0;j<w...
  • 如何在mbedtls的sha512中使main()函数

    My purpose is to test sha512 and sha256 in eclipse tricore and here is the link for the sha512 code :https://github.com/ARMmbed/mbedtls/blob/master/library/sha512.c Following are the files required for the specified sha512 code.My problem is that I am not ...
  • cmath是否从math.h借用了它的实现

    对于嵌入式应用程序,我想从math.h切换到cmath。对于将math.h切换到cmath lib,我有些怀疑,因为该嵌入式系统对计算精度的变化非常敏感。所以我想知道cmath是否从cath兼容代码中借用了它的实现?还是C ++有自己的实现不同于?
  • GCC ARM性能下降

    我偶然发现了GCC的一个非常奇怪的问题。问题是性能下降了25%。这是故事。 我有一些软件是fp32计算密集型的(用TVM编译的神经网络)。我为ARM(rk3399设备)编译它,这是信息: 海湾合作委员会-v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/5/lto-wrapper Target: arm-linux-gnueabihf Configured with: .....
  • 是否有更优雅的C模板样式替代方案,以避免单个头文件包含多个内容

    我正在编写一系列功能,这些功能将嵌入非常接近实时的小型微控制器中,因此每个时钟周期都很重要。功能几乎相同。 我看到的做到这一点而又不重复大量代码的唯一方法是使用在包含文件中声明代码的真正丑陋且皱眉的方法,然后有意地将其包含多次。 以下作品演示了该概念: // func.inc // The absence of an include guard is intentional, as each time this file gets included // the output will be differ...
  • 当您写入具有相同配置的寄存器时会发生什么?

    我正在使用STM32L432KC,并且对嵌入式世界来说还比较陌生。如果我写入配置寄存器,等待一段时间,然后再次使用相同的配置写入寄存器,会发生什么情况。这有什么影响吗? 作为参考,我使用的是STM32L432KC微控制器。有问题的寄存器是复位和时钟控制(RCC),AHB2外设时钟使能寄存器(RCC_AHB2ENR)。我有一个功能,可以通过进行“或”运算来启用GPIO端口的时钟。我想知道在引脚处于活动状态时调用该函数是否会产生任何效果。
  • 将0填充添加到指针地址

    Basically I have a hard coded address in decimal value, and I would like to convert that to a Pointer, I have been following this link 但是我无法运行它,因为我认为我的地址已被截断,即地址中的0被删除了。 有什么我可以保持0的方式,还是有一种方法可以将存储在“ buff”中的地址类型转换为指针? #include <stdio.h> #include <stdint.h> ...
公告

欢迎访问 码农俱乐部  点击这里设置您的邮箱  可以接收站内跟帖、回复邮件提醒,不错过任何一条消息。

关注公众号订阅更多技术干货! 码农俱乐部