AURIX™ Forum Discussions
你好
在核0处理safetlib runtime test时用内部看门狗喂狗,如果在其他核调用了mcal的clearsafetyendinit api,这样可能会出现两个api同时操作WDTSCON0寄存器,有可能会产生有冲突的情况。目前只看到mcal的api中有自锁保护,想问下是有哪个机制规避了这种情况吗?
Show LessHello Infineon Team,
I am using TC377_ED_EX AURIX Tricore microcontroller, I have integrated RTOS code with my general configurations, code was built successfully in Tricore IDE, however after flashing code in Lauterbach T32 debugger, and doing step over at every function and getting trap at __mtcr().
If code is in trap, then in some trap registers it should show status in trap registers, but in Trap registers also there is no specific value only 0000000 given.
for better understanding, I am attaching screenshots of call stack, error window, & registers value log
Hope you will provide me better solution to overcome this issue.
Thanks,
Poonam
Show Less
I am using Application Kit TC3X7 V2.0 TFT board
I have configured BMHD but the board all the time boots from Internal flash ignoring BMHD settings
If i want to use Alternate Boot Mode or BMI to boot , which all changes i need to do on the board?
Show LessHello,
I'm working on a project for a company where I need to implement Ethernet with UDP using Lwip. I noticed that there is no example on this particular subject. I only found examples of TCP echo. Nevertheless, I am attempting to write my own code for implementing a UDP server (code shown below). Then, I implement the function(udpServer_Init) in the main_cpu0
program. When I try to run the program, I can ping the microcontroller, but when I attempt to connect via Putty terminal, it says "connection refused." I am wondering if I am missing some settings in lwipopts.h
or if I am overlooking something else. I would greatly appreciate it if anybody could provide me with some examples of UDP on the Aurix microcontroller or provide any help regarding this problem. I am also including important program files in the attachment.
void udp_receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr_t *addr, u16_t port)
{
/* Connect to the remote client */
udp_connect(upcb, addr, port);
udp_send(upcb, p);
pbuf_free(p);
udp_remove(upcb);
}
void udpServer_Init(void)
{
struct udp_pcb *upcb;
/* 1. Create a new UDP control block */
upcb = udp_new();
udp_bind(upcb, IP_ADDR_ANY, 8);
udp_recv(upcb, udp_receive_callback, NULL);
}
lwipopts.h:
#ifndef __LWIPOPTS_H__
#define __LWIPOPTS_H__
/*********************************************************************************************************************/
/*------------------------------------------------------Macros-------------------------------------------------------*/
/*********************************************************************************************************************/
#define LWIP_UDP 1
#define MEMP_NUM_UDP_PCB 4
#define NO_SYS 1 /* Use LwIP without Operating System (no threads, no semaphores, etc.) */
#define LWIP_NETIF_HOSTNAME 0 /* Enable hostname option in DHCP */
#define BOARDNAME "AURIXLK2TC375TP" /* Board name, also used as hostname */
#define MEM_ALIGNMENT 4 /* Set memory alignment to 4 byte (32-bit machine) */
#define MEM_SIZE (25 * 1024) /* Size of the Heap */
#define LWIP_DHCP 0 /* Enable DHCP protocol */
#define LWIP_NETCONN 0 /* Disable Netconn API */
#define LWIP_SOCKET 0 /* Disable the Socket API */
#define SYS_LIGHTWEIGHT_PROT 0 /* Disable inter-task protection */
#define ETH_PAD_SIZE 2 /* Add 2 bytes before the Ethernet header to ensure payload alignment */
#define __LWIP_DEBUG__ /* Enable debugging through UART interface */
#define LWIP_NETIF_EXT_STATUS_CALLBACK 1 /* Enable an extended callback function for netif */
#ifdef __LWIP_DEBUG__
#define LWIP_DEBUG /* Enable LwIP debugging */
#endif
#ifndef IFX_LWIP_DEBUG
#define IFX_LWIP_DEBUG LWIP_DBG_OFF /* IFX LwIP debug level set to OFF */
#endif
#define DHCP_DEBUG LWIP_DBG_OFF /* Enable DHCP Debug */
#define NETIF_DEBUG LWIP_DBG_ON /* Enable NETIF Debug */
#define LWIP_DBG_TYPES_ON LWIP_DBG_STATE /* Enable only module state debug messages */
#endif /* __LWIPOPTS_H__ */
Best Regards,
Žan Marinšek
We are using Tasking IDE on Aurix evaluation board. There’s a build in miniWiggler debugger. We can use this miniWiggler debugger to debug the code. We can set break points, stop at break points, evaluate variables at break points. However, one main feature is not working in all the PCs: we cannot do “step into”, “single step”, “step through” features. We must unset the break point in the current step and set a break point in the next step then hit “continue to run” to mimic the “single step” feature. Is that the problem with the debugger? Do j-link debugger work with Tasking IDE?
Thank you so much for your answer.
Show LessHello,
I have a problem with an Aurix TC275TP, I need to write data inside the flash with Trace32 in DXCPL mode, but I don't know the correct command sequence.
Is it possible to write data when the uC is running? I think that I have to unlock the flash first, then erase it and write, but I don't know the commands.
Regards
Show LessHello!
I have the following code that is not working. After first call of readRegister response is 0, after calling readRegister the second time, I receive the expected value.
Can you please help? I must mention that my application is based on the Infineon SPI_CPU_TC334 training and I've also tried to change spiMasterChannelConfig.channelBasedCs but I still don't receive the expected behavior.
I've also attached the source code for QSPI.
Thank you!
/**********************************************************************************************************************
* \file Cpu0_Main.c
* \copyright Copyright (C) Infineon Technologies AG 2019
*
* Use of this file is subject to the terms of use agreed between (i) you or the company in which ordinary course of
* business you are acting and (ii) Infineon Technologies AG or its licensees. If and as long as no such terms of use
* are agreed, use of this file is subject to following:
*
* Boost Software License - Version 1.0 - August 17th, 2003
*
* Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and
* accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute,
* and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the
* Software is furnished to do so, all subject to the following:
*
* The copyright notices in the Software and this entire statement, including the above license grant, this restriction
* and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all
* derivative works of the Software, unless such copies or derivative works are solely in the form of
* machine-executable object code generated by a source language processor.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
* COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*********************************************************************************************************************/
#include "Ifx_Types.h"
#include "IfxCpu.h"
#include "IfxScuWdt.h"
#include "QSPI_Config.h"
#include "Timers.h"
#define LED &MODULE_P00,5
IFX_ALIGN(4) IfxCpu_syncEvent g_cpuSyncEvent = 0;
volatile uint8 delay;
static unsigned char response = 0;
void core0_main(void)
{
IfxCpu_enableInterrupts();
/* !!WATCHDOG0 AND SAFETY WATCHDOG ARE DISABLED HERE!!
* Enable the watchdogs and service them periodically if it is required
*/
IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword());
IfxScuWdt_disableSafetyWatchdog(IfxScuWdt_getSafetyWatchdogPassword());
/* Wait for CPU sync event */
IfxCpu_emitEvent(&g_cpuSyncEvent);
IfxCpu_waitEvent(&g_cpuSyncEvent, 1);
//init1msTimer();
initQSPI2Master();
initQSPI2MasterChannel();
resetIMMU();
selfTestIMMU();
/*uint8 xGyro, yGyro, zGyro;*/
while(1)
{
response = readRegister(WHO_AM_I, 0x00);
// response = readRegister(WHO_AM_I, 0x00);
//readIMMUAxis(&xGyro, &yGyro, &zGyro);
}
}
Show Less
Dear Team,
I want to know the difference between DAP miniwiggler and XMC_LINK_SEGGER_V1.
Hello Community,
I am started using TC233 development board for few days and i ant now to display a hello wolrd or messga in the Console but i didn' found how to do i tried also to display it on the putty but also it doesn't work.
is there any code exmaple or something that can help me.
Thank you
Hello,
We are trying to flash binaries which has empty cells using Infineon MemTool (version 4.08.01) after the P-Flash erased.
But the Memtool programing the empty cells with all zreo values.
SW is checking that area has in erased state or not. So, SW is not working b'coz empty cells have values all zeros.
but other debugger flashing working with option: program empty cells "FALSE" setting
Please help us. if any setting required to do in Memtool
Show Less