Questions tagged «programming»

有关编程部件(FPGA,闪存等)的问题,应在堆栈溢出上询问许多软件编程问题。

5
飞思卡尔Kinetis KE-写闪存
多年来,我一直在使用各种微控制器和微处理器,但Kinetis KE系列(特别是S9KEAZN64AMLC)似乎使我感到困惑。 2015年1月17日,TL; DR: 飞思卡尔确认其Kinetis Design Studio软件v2.0.0不适用于该设备(包括其自己的TRK-KEA64评估板)。他们建议暂时使用CodeWarrior MCU V10.6。 Segger已发布v4.96a(“ a”很重要,我使用的是v4.96),此问题已得到纠正,并允许您将Segger J-Link Lite CortexM调试器板与KDS一起使用,并具有完整的程序/调试功能。 之前发布的套件含有Segger我v4.96a管理,以能够通过重刷OpenSDA重新编程飞思卡尔的便宜($ 15)FRDM-KL25Z评估板的OpenSDA调试器闪存芯片固件谈到与USBDM(使用v4.10.6.240)。然后,我使用了USBDM的独立“ ARM编程器”软件。我没有花太多时间尝试调试工作,因为我足够精通“老式”调试,因此不需要调试。请确保将“良性”程序刷新到板载目标KL25中,否则可能会干扰编程,因为即使通过J11剪切,板载目标KL25的复位线仍仍连接到OpenSDA调试器(请参见Keith Wakeham的博客文章) ,在下面链接)。 非常感谢Erich Styger非常慷慨地帮助我确定问题并通过电子邮件确认我的发现。 现在回到我们定期安排的问题: 我建立了一个愚蠢的简单3.3V接线板。PTA上有一些LED,PTC上有UART连接,而SWD线在其专用线上。字面上没有什么幻想或有趣的董事会。 我正在使用针对Cortex-M的J-Link Lite(J-Link LITE CortexM-9,请参阅https://www.segger.com/jlink-lite-cortexm.html),在OSX和Windows下我都可以同样的结果:J-Link Commander实用程序可以识别芯片,我可以读写SRAM,并通过手动读写正确的内存映射I / O地址来处理外设。但是,当我尝试刷新设备时,它会失败。 $ JLinkExe SEGGER J-Link Commander V4.94c ('?' for help) Compiled Oct 31 2014 20:08:55 DLL version V4.94c, compiled Oct 31 …

8
使用MCU进行功能编程
诸如Haskell,LISP或Scheme之类的功能语言使程序员可以使用功能编程范例来快速工作。它们确实有效率低下的问题,但是我的应用程序比程序本身的效率更加强调程序员的效率。 我想在微控制器上使用函数式编程来进行机器控制等。 有哪些限制,例如最少的系统资源? 这些语言有哪些示例实现?


2
内置闪存容量不足
我在我的项目之一中使用了德州仪器的TM4C1230C3PMI控制器。它具有32KB的内部闪存,不足以满足我的应用程序的需要。市场上有更高闪存大小的微控制器可以使用,但我只想使用该微控制器。据我所知,可以使用外部EEPROM来增加总闪存大小(程序存储器)。 我的想法是正确的吗? 如果不是,请建议如何增加控制器的总闪存容量?


3
公司如何预编程芯片?
我特别对SMD封装感兴趣。我假设将一个DIP包简单地放入一个插槽中,并以此方式进行编程。 当然,您可以通过在最终产品中设计一个程序员标头来解决此问题,以便可以上载和/或更新代码,但是我知道有些公司出售预编程的芯片(像Digikey这样的供应商都提供了此选项,而我从听说您有时可以与OEM签订合同以提供预编程的芯片)。我只是好奇他们如何做到这一点。 我有两种理论,但我认为这两种方法都不是切实可行和/或可靠的。 一种“保持”引脚与PCB焊盘接触的方法,甚至可能使用某种闩锁来确保牢固接触。这将类似于DIP程序包的编程方式。适用于带有实际引线的封装(QFP,SOIC等),但是我对这种封装对BGA或裸露焊盘式封装的工作效率有疑问。 将零件焊接到位,编程,然后再进行焊接。似乎会使芯片组承受不必要的热应力,并使用大量的焊料/其他资源。

4
ICSP或预编程微控制器
我已经设计了用于小规模生产的PCB。目前,我要一次手工焊接20批。该PCB使用ATMEGA168微控制器,我在焊接到电路板上之前对其进行了编程-此方法目前对我来说效果很好。 我正在考虑为我制造和组装一批200块板,因为我设计的产品似乎很受欢迎。更好的做法是将ICSP接头连接到板上,还是自己继续对IC进行预编程?在制造或组装后对板进行重新编程不是预期或必需的功能。 我不确定在大规模生产环境中如何完成此操作?添加ICSP接头会稍微增加制造成本,所以预先编程是否是标准做法?


8
每个微控制器线都有自己的编程语言/语法吗?
我已经对Arduino进行了编程,并开始对Teensy进行编程。它们类似于C,但是在编程语言中有细微差别。 例如,在Arduino C中,您调用了一个功能pinMode(pin#,Output / Input)来指定一个数字引脚以输出信号或接收信号。在Teensy的C语言中,设置与四个端口之一(每个端口代表一组引脚)相关联的“ DDR”寄存器,这些端口统称为输入或输出(Teensy IO语法)。 我想知道当您使用新的微控制器时,您需要有效地学习一种新的“语言”。我将“语言”一词用引号引起来,因为尽管语法上有细微差别,但组件及其在软件中的设置方式基本上是等效的,例如,端口和引脚的概念仍指的是您可以从中输出/输入数字的端子信号。 同样徒劳的是:是否存在未在软件中进行编程的微控制器,或者将始终存在用于对uController进行编程的软件层?如果是后者,谁为他们编写/提供文档?

4
FPGA-DIY编程
我已经为微控制器编程了几年了,上完数字设计课程后,我才发现FPGA。在对不同的FPGA,开发板等进行了一些研究之后,我仍然不愿购买任何产品,因为我不知道如何制作自己的最终“产品”版本。我已经将PIC,SAM,AVR等放在定制PCB上没有问题,所以我并不担心-我的主要担心是在没有制造商板的情况下对FPGA进行编程。 我的具体问题:如果我将Quartus,Vivado,iCEcube等生成的位图文件写入地址0开始的SPI闪存芯片(例如,通过FT2232H),并将FPGA连接至FPGA的SPI引脚(正确设置了MODE配置)? 对于部分假设,我深表歉意。我相当确定这是莱迪思的Diamond程序员所做的一切,但是我想知道这种方法是否适用于不同制造商的FPGA,或者说Quartus在编写时是否在存储器中添加了额外的“窗口修饰”或标头。 让我知道我是否可以做些什么来改善/阐明这个问题,或者我是否在FPGA编程过程中遗漏了重点。谢谢!
9 fpga  spi  programming 

3
在PIC中使用多个外部中断
我已经将PIC16F877(datasheet)用于多个项目。对于单个外部引脚更改中断,可以使用PORTB0中断。但是现在我需要在一个电路中支持8个独立的外部引脚更改中断。 在数据表中,它说有15个中断PIC16F877,但是我想这些都算在内,包括定时器溢出中断等...在这种情况下没有用。 这是数据表关于INTCON寄存器的内容。 我可以使用bit0进行4个独立的中断RBIF吗?它代表的变化PB7:PB4。如何通过读取中断程序中的端口值来识别哪个引脚发生了变化? 即使我得到以上肯定的答案,我也需要8次中断?当然,我仍然可以使用INTE进行PORTB0更改。然后4 + 1 = 5,其他3个呢?(但是,尽管这8个中断事件都是同一类型,但4 + 1 + 3 = 8事情看起来很难看,不是吗?) 除了监视8个引脚之外,微控制器没有其他繁重的任务。(谈论其他任务时,它必须维护一组单独的计数器变量,并经常向PC串行传输约4个字节) 欢迎任何建议。即使是为了将微控制器更改为更合适的一个(但...不要告诉我不要使用PICs)。

2
堆和栈的物理表示是什么?
我可以很容易地理解.bss和代码在处理器中如何进行物理表示,其中处理器具有用于存储程序计数器可以计数的指令的存储库,而bss(块起始符号)只是全局数据。但是,这里有用于局部变量的堆栈和用于动态内存的堆。这些东西如何物理地放在电路上?

5
ATTiny13 — avr-gcc Hello World使用超过100个字节吗?
我正在尝试为ATTiny13编写程序。我的问题是它具有巨大的尺寸约束。好了,制作我的第一个Hello World程序时,只花了100个字节的程序空间就可以打开和关闭灯!我可以给avr-gcc提供任何选择来缩小此大小吗?另外,crt0中包含什么?我不太喜欢AVR组装,所以我不太了解。 我不想为这个项目而去组装。

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 

7
如何写入SPI闪存?
我正在开发一个音频应用程序,而不是将音频数据存储在SD卡(Arduino 上的Waveshield)上,而是将其存储在SPI闪存IC上,并使用MCU,DAC和放大器滚动自己的电路板。 我正在使用Winbond W25Q80BVSSIG。 我对使用AVRISP mkII或USBTiny编程AVR非常熟悉,是使用同一程序员将数据写入闪存吗?在专门寻找SPI闪存编程器时,我一直找不到任何东西。 这个问题是一个跟进这一个。

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.