标签: microcontroller


没有Linux的嵌入式系统的图形库?

似乎任何类型的图形库如DirectFBMiniGui都需要某种底层操作系统,如Linux或uClinux.

我面临的挑战是为微控制器编写一个只有512kb闪存的软件,一个LCD显示器和一个触摸屏来显示和处理一些图片和GUI部件.

你知道哪个库只需要一个指针可以处理行,图像和字体的视频内存吗?

embedded graphics microcontroller user-interface

10
推荐指数
2
解决办法
2万
查看次数

嵌入式软件的调用树

有没有人知道为C应用程序创建一个可在微控制器(Cortex-M3)上运行的调用树的工具?它可以从源代码(非理想),目标代码(首选解决方案)或运行时(可接受)生成.我看过gprof,但是仍然有很多东西需要它才能在嵌入式系统上运行.

另外一个好处是该工具还可以提供最大的堆栈深度.

更新:解决方案最好是免费的.

c embedded microcontroller stack

10
推荐指数
2
解决办法
8606
查看次数

我需要什么微控制器(和其他组件)来创建定时器设备?

作为一个让自己摆脱困境的爱好项目,我想构建一个小程序员计时器设备.它基本上会接受一个程序,它是一个时间列表,然后从每次倒计时.

我想使用C或Java微控制器.我过去曾使用BASIC制作一个小型自主机器人,所以这次我想要一些不同的东西.

你会推荐什么微控制器和显示器?我希望保持简单,所以程序将通过计算机加载到内存中(串口正常,但USB会使它更容易)

embedded microcontroller pic countdown

10
推荐指数
3
解决办法
1771
查看次数

#pragma在#define中

我正在使用C语言在微控制器中工作.在这个特定的微观中,必须使用#pragma以下方式定义中断:

static void func();
#pragma INTERRUPT func <interrupt_address> <interrupt_category>
static void func() { /* function body */ }
Run Code Online (Sandbox Code Playgroud)

<interrupt_address>是向量表的中断地址.的<interrupt_category>是1或2.例如,以限定在端口的中断0销0:

static void _int_p00();
#pragma INTERRUPT _int_p00 0x10 1
static void _int_p00() { (*isr_p00)(); }
Run Code Online (Sandbox Code Playgroud)

我们在别处定义实际的中断服务程序,并使用函数指针(如isr_p00示例中所示)来执行它们.

如果可以使用宏定义中断将是方便的.我想用以下方式定义一个宏:

#define DECLARE_INTERRUPT(INT_NAME, INT_CAT) \
    static void _int_##INT_NAME(); \
    #pragma INTERRUPT _int_##INT_NAME INT_NAME##_ADDR INT_CAT \
    static void _int_##INT_NAME() { (*isr_##INT_NAME)(); }
Run Code Online (Sandbox Code Playgroud)

编译器抛出以下错误:

Formal parameter missing after '#'
Run Code Online (Sandbox Code Playgroud)

指示以下行:

static void _int_##INT_NAME() { (*isr_##INT_NAME)(); }
Run Code Online (Sandbox Code Playgroud)

我想预处理器指令不能在#define …

c microcontroller c-preprocessor

10
推荐指数
1
解决办法
5506
查看次数

嵌入式系统中启动代码的流程,启动加载程序的概念?

我正在使用嵌入式主板,但我不知道相同的启动代码(C /汇编)的流程.

在嵌入式系统的情况下,我们是否可以讨论启动操作所采取的一般模块/步骤.

只是高级概述(算法)就足够了.欢迎所有的例子.

/ Kanu__

c embedded boot microcontroller assembly

10
推荐指数
2
解决办法
2万
查看次数

Arduino失效保障机制

假设我正在为Arduino(或任何其他微控制器)开发故障安全机制.换句话说,当主控制器发生故障时,辅助微控制器或单独的电路板应该负责.

两种可能的机制如下.

方法1 - 客户端服务器机制

  • 有2个相同的系统单独供电.
  • 辅助系统定期发送请求,主系统回复.
  • 如果主系统未能回复(多次),则辅助系统将负责.

方法2 - 心跳机制

  • 有2个相同的系统单独供电.
  • 主系统发送定期心跳消息.
  • 如果心跳在那里,则辅助节点知道主节点已启动.
  • 当没有心跳时,假定主节点已经死亡.辅助节点获得控制权.

你们有没有更好的机制来实现这个?

embedded microcontroller arduino pic

10
推荐指数
1
解决办法
3004
查看次数

是否可以在没有stdlibs的情况下写入控制台?C/C++

我正在使用arm微处理器进行编程,并尝试通过UART使用print语句进行调试.我不想stdlibs只为调试添加.有没有办法打印到控制台没有stdio.h/ iostream.h?我可以写自己的printf()吗?

或者,我可以使用DMA控制器直接写入UART.但是,我想避免这是可能的.使用内置测试功能"echo"或"remote loop-back"我知道我已正确配置UART.

c c++ microcontroller uart

10
推荐指数
1
解决办法
3034
查看次数

在嵌入式系统中生成随机数的典型方法是什么?

在嵌入式系统中生成随机数的典型方法是什么?您能为每种方法提供优缺点,和/或某些因素可能会让您选择一种方法而不是另一种方法吗?

random embedded algorithm microcontroller

10
推荐指数
1
解决办法
789
查看次数

如何设置STM32以生成标准CRC32

我试图用STM32L4硬件模块生成CRC.我想验证fatfs文件,所以基本上我有字节数组.我正在使用这个CRC 生成器.

不幸的是我无法弄清楚如何设置STM32L4来生成相同的结果.我需要CRC32而且我有

组态:

hcrc.Instance = CRC;

/* The default polynomial is not used. It is required to defined it in CrcHandle.Init.GeneratingPolynomial*/
hcrc.Init.DefaultPolynomialUse    = DEFAULT_POLYNOMIAL_DISABLE;
/* Set the value of the polynomial */
hcrc.Init.GeneratingPolynomial    = 0x4C11DB7;
//hcrc.Init.GeneratingPolynomial    = 0xFB3EE248;
hcrc.Init.CRCLength= CRC_POLYLENGTH_32B;
/* The default init value is used */
/* The default init value is not used */
hcrc.Init.DefaultInitValueUse     = DEFAULT_INIT_VALUE_ENABLE;

/* User init value is used instead */
//hcrc.Init.InitValue               = 0;
hcrc.Init.InputDataInversionMode = CRC_INPUTDATA_INVERSION_NONE;
//hcrc.Init.InputDataInversionMode = CRC_INPUTDATA_INVERSION_BYTE;
/* …
Run Code Online (Sandbox Code Playgroud)

c microcontroller crc32 stm32

10
推荐指数
3
解决办法
1万
查看次数