arm 相关问题

此标记用于与ARM(高级RISC机器)系列计算机相关的问题;这是在ARM处理器内核上运行的机器或电子设备或使用ARM内核的系统。

在 keil uVision for LPC2148 逻辑分析仪上找不到我的信号

我正在尝试在keil上为lpc2148运行我的PWM程序。占空比为 10%。但是,我可以在 Port0 (P0.21) 上看到信号。 这是我的代码。我非常有信心这是正确的。 #包括 我正在尝试在keil上为lpc2148运行我的PWM程序。占空比为 10%。但是,我可以在 Port0 (P0.21) 上看到信号。 这是我的代码。我非常有信心这是正确的。 #include<lpc214x.h> int main() { PINSEL0=0x00000000; // P0.0 to P0.15 pins of PORT0 as GPIO PINSEL1=0x00000400; // P0.21 Pin of PORT0 as PWM PINSEL2=0x00000000; // P1.16 to P1.31 pins of PORT1 as GPIO /*Configure the PLL block and set the CCLK and PCLK at 60 MHz */ PLL0CON=0x01; PLL0CFG=0x24; PLL0FEED=0xaa; PLL0FEED=0x55; while (!(PLL0STAT & 0x00000400)); PLL0CON=0x03; PLL0FEED=0xaa; PLL0FEED=0x55; VPBDIV=0x01; /* Setup and initialize the PWM block */ PWMPCR=0x00; // Single Edge PWM Mode PWMPR=60000-1; // Resolution of PWM is set at 1 mS PWMMR0=10; // Period of PWM is 10 mS PWMMR5=1; // Pulse width of PWM5 is 1 mS PWMMCR= (1<<1); // PWMTC is reset on match with PWMMR0 PWMLER= (1<<5)| (1<<0); // Update Match Registers PWMMR0 and PWMMR5 PWMPCR= (1<<13); // Enable PWM5 output PWMTCR= (1<<1); // Reset PWM TC and PWM PR PWMTCR= (1<<0)| (1<<3); // Enable PWM Timer Counters and PWM Mode //PWMMR5 = 1; //PWMLER = (1<<5); //Update Latch Enable bit for PWMMR5 } 请帮忙。 Keil 调试器的“逻辑分析器”工具通过 SWO 跟踪监视特定的“全局”变量。您的代码没有全局变量,并且您没有说明您正在监视的内容。 在实际硬件上仅可以监视全局变量。外设寄存器和 I/O 引脚只能在仿真中进行监控,如 https://www.keil.com/support/man/docs/uv4/uv4_db_dbg_logicanalyzer_restrictions.htm 要获得跟随 PWM 的跟踪,您需要实现一个 PWM 中断处理程序,该处理程序要么将输出引脚的状态复制到全局变量,要么(更好)读取 PWMIR 寄存器并将其复制到全局变量,然后/或将全局设置为由 PWMIR 寄存器推断的状态。然后你监视全局变量而不是直接监视引脚。例如: volatile bool pwmout = 0 ; volatile bool pwmmatch = 0 ; __irq void PWM_ISR( void ) { pwmmatch = PWMIR ; if( (PWMIR & 0x0001) != 0 ) // MR0 = 1 { pwmout = 1 ; } else if ( PWMIR & 0x0020 ) // MR5 = 1 { pwmout = 0 ; } PWMIR = 0 ; // clear interrupt VICVectAddr = 0x00000000; } 然后您可以在逻辑分析仪中监控 pwmout 和/或 pwmmatch。我不熟悉您的特定微控制器,因此上述内容可能需要一些调整。显然,您还需要启用中断处理程序 - 例如: VICVectAddr0 = (unsigned) PWM_ISR; /* PWM ISR Address */ VICVectCntl0 = (0x00000020 | 8); /* Enable PWM IRQ slot */ VICIntEnable = VICIntEnable | 0x00000100; /* Enable PWM interrupt */ VICIntSelect = VICIntSelect | 0x00000000; /* PWM configured as IRQ */ 但我只是复制现有的示例 - 不保证。 最后在main()的末尾添加一个无限循环以防止main()终止到谁知道在哪里:for(;;) { // do nothing } 是的,代码是正确的,但是要使用Keil逻辑分析仪观察波形,您需要指定正确的端口引脚符号。您应该使用 “PORT0.21”,而不是使用 “P0.21”。

回答 2 投票 0

OP-TEE与ATF的关系

我对与 ARM-A 配置文件嵌入式系统相关的术语和软件包感到困惑。 谁能解释一下 ATF(Arm 可信固件)、OP-TEE、Secure World 和 TEE 之间的关系(Tru...

回答 1 投票 0

STM32定时器外部时钟更新事件

我需要在另一个外部信号的每个下降沿通过 DMA 从某些 GPIO 引脚读取数据。我将时钟信号设置为TIMER外部时钟(下降沿)并将PSC值和ARR值设置为0。...

回答 1 投票 0

从内核模块交叉编译时出现错误消息“-mrecord-mcount”

我正在尝试构建一个内核外模块并交叉编译它。 因此,我正在使用 VM、Ubuntu,并将正在运行的内核升级到 5.15.6。 现在,我正在尝试交叉编译我非常简单的“H...

回答 1 投票 0

如何为 Arm 处理器编写代码

嘿,我对编码相当陌生,我加入了编码俱乐部,因为我对不断发展的技术世界感兴趣。最近的主题是关于计算机体系结构,在小组中我们有......

回答 3 投票 0

STM32f103c8 蓝丸 GPIO 驱动配置

我想在stm32f1板上创建自己的驱动程序。我想控制MCU build_in led但我无法解决。我正在尝试将 PortC 引脚 13 引脚设置为输出(推挽)模式,之后我想设置位....

回答 2 投票 0

来自另一个 ISR 的 Cortex-M7 (M4) SVCall:当 SVCall 具有更高优先级时执行,否则直接进入 HardFault

上下文:编写一个 RTOS,有一个工作调度程序、上下文切换器等。现在实现 SVCall。主要测试/开发平台是STM32F746-Disco Cortex-M7,也适用于带有Cortex-M4的STM32F469 disco...

回答 1 投票 0

ld:链接 Apple Silicon 时,未找到 -lSystem 错误的库

xcode 版本为 14.3.1 (14E300c) Mac 操作系统是 Ventura 13.5 我正在运行的命令: ld hello.o -o hello -l 系统-syslibroot 'xcrun -sdk macosx --show-sdk-path' -e _main -arch arm64 链接器产生...

回答 1 投票 0

为什么 CMSIS DRIVER 不提供嵌入式世界中使用的所有重要驱动程序

我想使用CMSIS驱动API而不是stm提供的HAL。当我访问链接 CMSIS DRIVER APIs No 我在哪里找到的,最常用的驱动程序,如 pwm、adc、gpio 等,为什么会这样...

回答 1 投票 0

M1 上通过 UTM 的 Ubuntu 不显示共享文件夹

我有一台 M1 macbook pro,通过 UTM 虚拟机使用 Ubuntu,但是当我打开文件应用程序并按“其他位置”时,我只看到计算机和 Windows 网络,但它不会向我显示

回答 1 投票 0

ARM Linux 上的 PAServer

我需要在 Debian ARM 虚拟机上运行 PAServer。 我最近升级到了 Apple Mac Studio M2 硅计算机。 Mac Studio是ARM,因此我无法虚拟化X86/X64。嗬...

回答 1 投票 0

ArmClang/ArmLink LTO 使用 __attribute__((used)) 删除对象

在引导加载程序中,我有一个未明确使用的版本字符串,但必须存在于 ROM 中的特定位置,以便由所述引导加载程序加载的应用程序访问。在源文件版本中...

回答 2 投票 0

vfmaq_f32真的有更高的运行精度吗?

vfmaq_f32真的有更高的运行精度吗? 我猜 vfmaq_f32 的精度根据不同架构中浮点处理单元的位扩展的长度而变化......

回答 1 投票 0

PUSH 和 POP 括号中的寄存器顺序

ARM 文档对 PUSH 和 POP 做了如下说明 PUSH 将寄存器存储在堆栈上,其中编号最小的寄存器 使用最低的内存地址和最高编号的寄存器 使用...

回答 2 投票 0

Neoverse N1 中 lsl >4 的 add 流程

我有一个关于 Neoverse N1 中 adds with shift (adds x3, x4, x5, lsl #32) 使用的管道的问题,特别是“adds x3, x4, x5, lsl #32”。 根据Neoverse N1软件优化(http...

回答 1 投票 0

可以在android中使用postgresql libpq吗?

我正在使用c++中的android ndk开发一个应用程序。 如何在 Android 中使用 libpq 库客户端? 我无法找到 ARM 的 libpq,那么是否可以为 ARM 编译它? 我尝试使用视觉

回答 1 投票 0

可以在android中使用postgresql libpq吗?

我正在使用c++中的android ndk开发一个应用程序。 如何在 Android 中使用 libpq 库客户端? 我无法找到 ARM 的 libpq,那么是否可以为 ARM 编译它? 我尝试使用视觉

回答 1 投票 0

Rockchip RK3588 上的新 U-Boot 无法检测到 USB 键盘

这是我之前关于 Rockchip RK3588 的系列问题中的另一个问题,并准备了一个定制的、更新的 U-Boot 版本(基于今年 2023 年的一个),因为我很确定。 ..

回答 1 投票 0

为arm构建镜像以使Docker工作

我正在尝试运行使用 Docker 的生物信息管道(Nextflow - Eager),但由于我有 Mac M1 芯片,它无法工作,并且收到此错误消息: 命令错误: 警告:所要求的即时信息...

回答 1 投票 0

Trace32 中出现 FLOW ERROR (BAD TRACE PACKET ON D-SIDE) 表示什么?

我正在使用外部调试器 Lauterbach 通过 JTAG 端口通过 coresight 收集来自 arm - M7 的跟踪信息。在收集加载程序的踪迹时,T32 的 GUI 显示 FLOW

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.