We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello, I´ve got a big problem with my µvision project for the LPC54102J512. If I have initialized the clock for any peripheral of the asynchronous block once there is no way to start a debug session. I only enabled the clock for the IOCON block, the clock for GPIO-Port0 and -Port1, asserted a reset at both GPIO-Ports, defined Pin0_29 as GPIO, set its direction as output and toggled the state of the GPIO-Pin in a loop. If there is no access to the asynchronous block it works fine. Only if I enabled the clock for SPI or I2C and started the debug session, nothing works. Here´s my code of the main.c:
main.c
#include "LPC54xxx.h" #include "cmsis_os.h" int main(void) { if(!osKernelRunning()) { //Aufruf dient der Kompatibilität gegenüber späteren CMSIS-RTOS Versionen if(osKernelInitialize() != osOK) //initialize CMSIS-RTOS { //TODO: Fehlerbehandlung, Initialisierung fehlgeschlagen } } osKernelStart(); //start executing // LPC_ASYNCSYSCON->ASYNCAPBCLKCTRLSET |= (1 << 5); //enable clock for I2C // LPC_SYSCON->AHBCLKCTRLSET0 |= (1<<13); //enable access to IOCON block // // LPC_SYSCON->AHBCLKCTRLSET0 |= (1<<14); //set clock for GPIO-Port 0 // LPC_SYSCON->AHBCLKCTRLSET0 |= (1<<15); //set clock GPI0-Port 1 // LPC_SYSCON->PRESETCTRLSET0 |= (1<<14); //Reset GPI0 Port 0 // LPC_SYSCON->PRESETCTRLCLR0 |= (1<<14); //Clear Reset GPIO-Port 0 // LPC_SYSCON->PRESETCTRLSET0 |= (1<<15); //Reset GPIO-Port 1 // LPC_SYSCON->PRESETCTRLCLR0 |= (1<<15); //Clear Reset GPIO-Port 1 // // LPC_IOCON->PIO0_29 &= ~(0x07<<0); //define Pin0_29 as GPIO // LPC_GPIO->DIR0 |= (1 << 29); //set direction as output // osKernelStart(); //start executing while(1) { // LPC_GPIO->PIN0 |= (1 << 29); // osDelay(500); // LPC_GPIO->PIN0 &= ~(1 << 29); // osDelay(500); }; }