Questions tagged «embedded»

嵌入式系统是一种计算机系统,通常被设计为执行具有实时计算约束的一个或几个专用功能。它被嵌入为通常包括硬件和机械零件的完整设备的一部分。


2
定点三角函数用于嵌入式应用
我需要在嵌入式应用程序中进行旋转(和其他)转换,需要sin()cos()和tan()函数。我知道您可以使用查找表,这是我自己进行研究时可以找到的唯一解决方案,但是那里有一个好的定点触发库吗? 我正在考虑为应用程序使用cortex M3,因此我想尽可能远离浮点,以使应用程序保持简洁。
9 c  embedded  arm 

2
理解引导加载程序结构的好工具或方法?
最近,我弄清楚了我一直在与运行U-boot(一个开源的Bootloader)的Atmel AT91SAM9G20 SBC一起工作的一个令人讨厌的错误的原因。问题的核心是U-boot期望配置的硬件与我构建的硬件不同,因此某些设备寄存器的配置不正确。 现在,我已经解决了问题,我需要调整U-boot以正确配置寄存器。我可以通过在程序末尾添加几行代码来盲目地执行此操作,但这很麻烦。 这使我想到了一个问题:与从main()开始并读取所有文件中所有可能的代码路径相比,我如何找出U-boot的工作效率更高?我试着在文件中四处寻找,并查看相关标识符附近的代码。事实证明这是无效的;似乎大多数代码是我不在乎的子系统的驱动程序。我实际上已经了解了引导加载程序到现在的运行情况,但是我希望有一种比我幼稚的方法更好的方法。

5
MSP430的内存建议
我正在使用TI MSP430开发一个测量应用程序,我想听听一些有关可以使用哪种类型的存储器的建议。 这个想法是在一段时间内使用它进行记录,然后在通过USB连接设备时将数据下载到PC。估计最多可容纳5MB数据,每个样本大约25字节数据。 一个简单的EEPROM芯片会做还是有更好的选择?

3
通过无线技术将设备连接到计算机的明智方法是什么?
我很怀念X-10的日子,那时可以将计算机连接到房屋中的每个墙板,使用电力线载波将信号传输到可寻址的接收器(取得不同程度的成功)。 好的,所以也许我不需要从计算机上远程打开微波炉,但是我仍然认为为家庭自动化设置无线控制器方案是很酷的,甚至可以在Roomba上放置摄像头,或者在某些温度下外面的传感器。 解决这个问题的明智的总体方法是什么?Wifi端点确实很有吸引力,但它们似乎有点昂贵。有使用无线电的替代方法吗?还是电力线运营商仍然走的路?

2
PIC12F675 GP4不起作用
我正在为一个项目使用PIC12F675,除一件事情外,其他所有东西都工作正常。GP4不能用作数字IO。我已经看了很多配置和代码,但是找不到任何东西。 配置: #pragma config FOSC = INTRCCLK #pragma config WDTE = OFF #pragma config PWRTE = OFF #pragma config MCLRE = OFF #pragma config BOREN = ON #pragma config CP = OFF #pragma config CPD = OFF 码: #include <xc.h> #include <math.h> #include "config.h" #define _XTAL_FREQ 4000000 void delay(unsigned int …
9 pic  c  embedded  programming  audio  oscillator  spark  dc-dc-converter  boost  charge-pump  eagle  analog  battery-charging  failure  humidity  hard-drive  power-supply  battery-charging  charger  solar-energy  solar-charge-controller  pcb  eagle  arduino  voltage  power-supply  usb  charger  power-delivery  resistors  led-strip  series  usb  bootloader  transceiver  digital-logic  integrated-circuit  ram  transistors  led  raspberry-pi  driver  altium  usb  transceiver  piezoelectricity  adc  psoc  arduino  analog  pwm  raspberry-pi  converter  transformer  switch-mode-power-supply  power-electronics  dc-dc-converter  phase-shift  analog  comparator  phototransistor  safety  grounding  current  circuit-protection  rcd  batteries  current  battery-operated  power-consumption  power-electronics  bridge-rectifier  full-bridge  ethernet  resistance  mosfet  ltspice  mosfet-driver  ftdi  synchronous  fifo  microcontroller  avr  atmega  atmega328p  verilog  error  modelsim  power-supply  solar-cell  usb-pd  i2c  uart 

6
从嵌入式C角度看static关键字的概念
static volatile unsigned char PORTB @ 0x06; 这是PIC微控制器头文件中的一行代码。的@操作者用于存储地址内的值PORTB 0x06,这是PIC控制器表示PORTB内部的寄存器。到目前为止,我有一个明确的想法。 该行在头文件(.h)中声明为全局变量。因此,根据我对C语言的了解,“静态全局变量”对于其他任何文件都不可见-或简单地说,不能在当前文件外部使用静态全局变量/函数。 然后,该关键字如何PORTB对我的主源文件和我手动创建的许多其他头文件可见? 在我的主源文件上,我仅添加了头文件,#include pic.h这与我的问题有关吗?

1
没有上拉电阻,STM32上的SPI将无法工作,即使如此,其性能也很差
我一直在尝试使STM32F103C8(蓝色药丸板)上的SPI1 正常工作一段时间。在我刚刚开始学习ARM时,我只是在尝试将数据移至74HC595移位寄存器并对其进行锁存以点亮一个字节的LED。我没有回读任何数据,所以我只有MOSI,SCK和SS线路。 起初我什么都没有得到,但是阅读一些在线示例后,我可以解决这些第一个问题,以使通信正常进行(我需要正确设置GPIOA引脚并设置软件SS)。 现在的主要问题是,如果我在所有线路(MOSI,SCK和SS)上均未包括上拉电阻,则微控制器在任何线路上均不会输出任何内容(已通过示波器检查)。最重要的是,在添加上拉电阻之后,脉冲的上升时间非常慢,因此我不能使用太高的频率(对于10kΩ上拉电阻,我限于约250 kHz SCK,并且切换至330Ω(约4 MHz)。我正在试验板上,但是即使使用AVR和更杂乱的布线,我也可以得到一个4 MHz SPI,而无需添加任何电阻就可以正常工作,并且波形更清晰。 这是两张图片(抱歉,我的示波器屏幕处于极低状态),它们以250 kHz的时钟传输字节0b01110010。顶部轨迹为SCK,底部轨迹为MOSI。第一张图带有10kΩ上拉电阻,第二张图带有330Ω上拉电阻,这些波形使波形更好看(但不需要)。 我将不胜感激,以帮助您找出正在发生的事情。 我的代码的相关部分是: #define SS_LOW GPIOA->BSRR |= 1 << 4 + 16; #define SS_HIGH GPIOA->BSRR |= 1 << 4; // SPI GPIO configuration RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; GPIOA->CRL |= 0b0011 << 4 * 4; // Set pin A4 as PP out …

9
具有高耐久性的EEPROM
我目前在一个嵌入式项目中工作,其中有一个计数器将一直处于活动状态。如果断电,那么我还必须存储上一个计数器状态,并在下次启动时将其加载回去。因此,我打算使用EEPROM,在其中我将连续写入计数器值。但是我读过某个地方EEPROM具有大约100,000的读/写寿命,我将每24小时更新该计数器大约120,000。因此,我正在寻找替代方法来完成此任务。请给我您的建议。

2
防篡改嵌入式微处理器
我使用Microchip dsPIC或类似处理器开发商业嵌入式硬件。 我所拥有的固件有时非常复杂且昂贵,并且需要在硬件上防止黑客和篡改。那里提供了所有基本的软件保护,但是即使有安全保险丝,也可以通过多个国外网站服务以$ 500-$ 1,000的价格获取十六进制代码(仅防止不确定的篡改)。之后,仅需几个月的时间,便可以使用反汇编程序(例如IDA Pro)对代码进行逆向工程。 如何更好地保护硬件设计(无需军事保护)? 您可以推荐其他不可读的处理器,还是我现有设计的补充? 我所需要的只是隐藏一些功能,我不需要整个产品。另外,仅将数据隐藏在安全的外部存储器中还不够,我需要隐藏一个程序。 更新(基于许多评论):我已经在固件上进行了dsPIC和4年的全职开发(将以另一种方式从头开始要花很多精力): 1)该产品已经销售,如果他们愿意,黑客可以访问 2)新固件尚未发布。包含5kB代码,所有竞争者中都没有。发布后约12个月,我需要防止任何人轻易获得它 3)没有预算会变得非常奇特或复杂,每件产品可能要多加10美元(正负) 4)可以通过添加SIM卡之类的解决方案来解决问题? 5)隐藏功能执行非常棘手的计算(非标准),以解密/加密16个字节。已知的流程无法在1年内破解它,需要该功能,这就是为什么我要隐藏它。 6)我不介意它是否公开可见,何时将请求发送到“隐藏”硬件,或者响应是否公开可见。只需要隐藏计算它的进程,而不能在dsPIC处理器内部。

4
嵌入式C程序的生命周期内运行一次代码
如何使代码段在程序的生命周期内仅运行一次?它可以关闭和打开很多次。再次运行代码段的唯一选择必须是再次刷新电路板。 该代码是“校准部分”,我不想再次运行。如果我使用EEPROM或闪存,我们将标志设置为true或False。因此,当我们第一次读取该内存位置时,该内存区域中的随机值是多少? 在嵌入式C中实现此功能的最佳方法是什么?

2
嵌入式编程状态机
我正在研究在具有gcc的32位MCU上实现非平凡的有限状态机(指定为UML分层状态图)。 是否有任何经验法则,哪些方法更好,哪些效果不好?我的直觉说,基于开关(甚至是计算的goto)的实现应该稍微更高性能,而通常认为基于功能指针的过渡表更易于维护。 另外:有人对嵌入式应用程序的Boost MSM进行了评估吗?我知道Boost MSM通常被认为是非常高效的,但是对于嵌入式应用程序,效率的衡量标准可能不同于PC编程领域。 有人知道MSM的编译状态机引擎是什么样吗?是更像开关跳转表还是更像函数指针转换表?它使用动态内存分配还是可以静态使用?

6
编写不带硬件的嵌入式软件
考虑到硬件团队将花费两个月的时间来开发一些硬件,但是到那时我将需要准备好软件。 我的问题是,如何在没有硬件的情况下编写软件并进行测试? 是否要遵循任何标准?你怎么做呢?

5
RTOS如何被视为确定性的?
在PC(当然是OS)上,任何C程序在时序方面都变得不确定。例如,根据“我移动另一个窗口的速度”,一个循环需要1.2到1.3秒。这是因为OS使进程(或线程)共享处理能力。 就RTOS而言(在嵌入式系统上),当我们编写多线程应用程序时,我认为根据并发执行的线程数会发生相同的事情。 我没有仪器可以在嵌入式系统上进行准确测试。因此,我想问。我的关注点合理吗?或者我缺少一些非常根本的东西? 编辑:我会举一个例子。我们有task1(花费10毫秒)和task2(花费20毫秒)。它们是同时在不同的两个线程上启动的。我的主张(也是担心,不确定)是task1花费了10ms以上的时间,因为它们与task2共享处理能力。
8 embedded  rtos 

2
如何创建安全的UART通信协议?
我想知道如何创建安全的UART / USB通信协议。我需要它来实现微控制器和PC之间的通信。我有大约10个命令,并认为我将为每个命令使用10个单独的确认命令。 交换应该像这样: PC通过UART发送唤醒命令 µC识别出PC已连接,并将其命令发送到PC,例如。 0x01 PC会执行要求的操作(一些硬件任务),并~0x01在完成后做出响应(我将数字取反以在两个数字之间创建更大的“距离”) µC知道它已发送0x01并且期望~0x01PC 发出请求。如果除了~0x01返回以外的内容,µC会知道出了点问题,并会发送新的请求或错误消息 µC发送的情况下,0x01PC可以理解0x02并发送~0x02回去,但是~0x01由于某些噪声而导致µC读取会非常糟糕。 就传输而言,这有多安全?或者我怎样才能使其更加安全?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.