AVR指的是两个8位或32位RISC微控制器系列
avr-gcc 中 Y 寄存器与调用/堆栈帧的偏移量来自哪里?
在 avr-gcc 网站(https://gcc.gnu.org/wiki/avr-gcc#Frame_Layout)上,它说帧指针(Y 寄存器)偏移了一个字节,因此 Y+1 指向框架的底部。但是当我编译时...
我学习用 C 和汇编语言对 ATmega328p 微控制器进行编程: 在C中,我定义DDRB = 0x24。 在汇编器中,我定义 DDRB = 0x04 有人可以解释一下地址中的这种差异吗(是吗
AVR的“ADC r18,r18”和“ROL r18”的区别
AVR 同时具有 ADC(带进位加法)和 ROL(进位左移)指令。 然而,在我看来,ROL 根本不需要,并且 ADC r, r 实现了相同的目的。 据我所知...
单片机:Atmega2560 IDE:Microchip Studio v7.0.2594 工具链:WinAVR(也尝试过 Native) 我正在尝试通过 UART 与我的 MCU 通信。我已经通过 UART 编写了两个非常基本的函数来传输
avr-gcc ATmega4809 `.rodata` 部分出现问题
(这是这个问题的后续) 以下程序不起作用(在ATmega4809中) #包括 无效 f(const char str[]) { if (str[0] == 'a') // <-- here is the problem...
无法在 ATMEGA328P Arduino Uno 上使用 AVR-c 正确打印到串行 UART
我正在尝试对 ATMEGA328P Arduino Uno“裸机”进行编程,以通过 USB 连接到我的计算机进行串行打印,但是我只看到打印替换字符 (�),两者都...
我正在尝试按设备构建“缺失”AVR 指令表。 由于缺乏任何可用的文档,我一直在比较 avra、gavrasm 和 avrlass 的源代码,但我不...
我有ATmega328P微控制器的编译十六进制文件,但没有源代码。我需要找到一种方法在 AVR 模拟器中调试它。 我已经做了什么: 安装了Microchip Studio,它有...
我正在尝试在我的 ATmega328p 上组装一个闪烁的 LED。我正在使用 8 位定时器来尝试实现这一点。现在计时器设置为超快移动,以便我可以在 Atmel 中测试它......
我正在尝试在 Arduino Uno (ATmega 328 MCU) 上学习 SPI。我正在 Arduino IDE 中工作,但我是用实际的 C 语言而不是 Arduino 库进行编程。我已经通过查看设置了 SPI 功能...
reinterpret_cast<volatile uint8_t*>(37)' 不是常量表达式
gcc 无法编译下面的代码,而 clang 可以编译。我无法控制宏 PORTB,因为它位于第 3 方库 (avr) 中。 这是一个 gcc 错误吗?我该如何在 gcc 中解决这个问题?作为一个
我正在为ATMEGA328P编写一个模拟器,在查看数据表后我找不到PC所在的具体地址,在其他寄存器中提到了大量信息...
我在对 ATmega32A-PU 进行编程时遇到了有关使用中断 INT0 的问题。每次它被触发(通过 PD2 上的上升沿),它都会导致 MCU(看似)重置,这意味着它开始于...
编译器在 Eclipse AVR 插件中截断 ATMEGA328PB 的中断向量
我通常会使用 Eclipse avr-gcc 插件和(zaks 的 avr-gcc 编译器 https://blog.zakkemble.net/avr-gcc-builds)来开发 AVR MCU 的固件。 MCU ATMEGA328PB 有额外的定时器 (3,4)、S...
我正在为ATtiny13编程,我必须做很多饱和的添加。 试图优化它们,似乎 avr-gcc 根本不知道如何优化任何东西。所有这些都试过了...
创建嵌入式C程序时,为什么我编译的C程序周围有额外的机器代码?
此 C 程序使连接到 AVR ATmega32u4 的 LED 闪烁。 ISR(TIMER1_OVF_vect) // 将中断子例程附加到 TIMER1 { // 切换 LED PIND = (1 << PIND5); // #define PIND (*(vola...
AVR C 代码编译成功,但在 arduino ide 中它给了我缺少函数的错误
所以我试图在arduino uno中的c文件中调用c函数。 使用 gcc-avr 命令它可以成功编译: sudo avr-gcc -Os -DF_CPU=16000000UL -mmcu=atmega328p -c -o nrf nrf.c 但在
所以我试图更改存储在 sram 中的数组的第一个元素,并检查编译后的数据是否等于预初始化的值,但它不相等。所以这是我的鳕鱼...
所以我试图更新数组中的一个元素,该元素用于打印其中的值,但更新数组后,打印的内容仍然相同,打印机使用数组缓冲区,我想得到...
__attribute__((io)), __attribute__((address)) 似乎没有任何效果
我正在尝试使用AVR风格的gcc专门提供的变量属性(https://gcc.gnu.org/onlinedocs/gcc/AVR-Variable-Attributes.html#AVR-Variable-Attributes)。 说明书上说...