This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSPM0G3507: CORTEX_M0P: Error: (Error -1001 @ 0x0) Requested operation is not supported on this device. (Emulation package 12.7.0.00130)

Part Number: MSPM0G3507
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi

I encountered a situation. When CPUCLK is set to 80M, the following error will occur when using debug: CORTEX_M0P: Error: (Error -1001 @ 0x0) Requested operation is not supported on this device. (Emulation package 12.7.0.00130), please ask Does anyone know why this error occurs and how to solve it?

Thanks for your help

  • Hello fb,

    I use an example project in SDK and set CPUCLK to 80 MHz, build and download it into my LaunchPad, there is not any error. So can you use the clock tree to configurate the clock system and provide the figure of your clock configuration and the reported error ?

    Best Regards,

    Janz Bai

  • Hi Janz,

    Thanks. In fact, this error only exists in the project I am currently using. Once I rebuild it, I can't reproduce this error even though the new build is exactly the same as before. And, I have used clktree
    I uploaded my clock tree and attached syscfg file

    FB

    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "MSPM0G350X" --package "LQFP-64(PM)" --part "Default" --product "mspm0_sdk@2.00.01.00"
     * @versions {"tool":"1.20.0+3587"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const ADC12  = scripting.addModule("/ti/driverlib/ADC12", {}, false);
    const ADC121 = ADC12.addInstance();
    const Board  = scripting.addModule("/ti/driverlib/Board");
    const DAC12  = scripting.addModule("/ti/driverlib/DAC12");
    const GPIO   = scripting.addModule("/ti/driverlib/GPIO", {}, false);
    const GPIO1  = GPIO.addInstance();
    const GPIO2  = GPIO.addInstance();
    const I2C    = scripting.addModule("/ti/driverlib/I2C", {}, false);
    const I2C1   = I2C.addInstance();
    const PWM    = scripting.addModule("/ti/driverlib/PWM", {}, false);
    const PWM1   = PWM.addInstance();
    const SPI    = scripting.addModule("/ti/driverlib/SPI", {}, false);
    const SPI1   = SPI.addInstance();
    const SYSCTL = scripting.addModule("/ti/driverlib/SYSCTL");
    const UART   = scripting.addModule("/ti/driverlib/UART", {}, false);
    const UART1  = UART.addInstance();
    const VREF   = scripting.addModule("/ti/driverlib/VREF");
    
    /**
     * Write custom configuration values to the imported modules.
     */
    const divider2       = system.clockTree["HFCLK4MFPCLKDIV"];
    divider2.divideValue = 10;
    
    const divider9       = system.clockTree["UDIV"];
    divider9.divideValue = 2;
    
    const gate8  = system.clockTree["MFPCLKGATE"];
    gate8.enable = true;
    
    const multiplier2         = system.clockTree["PLL_QDIV"];
    multiplier2.multiplyValue = 4;
    
    const mux4       = system.clockTree["EXHFMUX"];
    mux4.inputSelect = "EXHFMUX_XTAL";
    
    const mux8       = system.clockTree["HSCLKMUX"];
    mux8.inputSelect = "HSCLKMUX_SYSPLL0";
    
    const mux12       = system.clockTree["SYSPLLMUX"];
    mux12.inputSelect = "zSYSPLLMUX_HFCLK";
    
    const pinFunction3     = system.clockTree["HFCLKEXT"];
    pinFunction3.inputFreq = 40;
    
    const pinFunction4                        = system.clockTree["HFXT"];
    pinFunction4.enable                       = true;
    pinFunction4.inputFreq                    = 40;
    pinFunction4.HFXTStartup                  = 100;
    pinFunction4.peripheral.hfxInPin.$assign  = "PA5";
    pinFunction4.peripheral.hfxOutPin.$assign = "PA6";
    
    ADC121.$name                            = "ADC12_0";
    ADC121.repeatMode                       = true;
    ADC121.adcMem0chansel                   = "DL_ADC12_INPUT_CHAN_4";
    ADC121.sampleTime0                      = "62.5 ns";
    ADC121.configureDMA                     = true;
    ADC121.sampCnt                          = 6;
    ADC121.enabledDMATriggers               = ["DL_ADC12_DMA_MEM10_RESULT_LOADED"];
    ADC121.enabledInterrupts                = ["DL_ADC12_INTERRUPT_DMA_DONE"];
    ADC121.adcMem0vref                      = "VREF";
    ADC121.enableFIFO                       = true;
    ADC121.sampClkSrc                       = "DL_ADC12_CLOCK_ULPCLK";
    ADC121.sampClkDiv                       = "DL_ADC12_CLOCK_DIVIDE_16";
    ADC121.peripheral.$assign               = "ADC0";
    ADC121.peripheral.adcPin4.$assign       = "PB25";
    ADC121.adcPin4Config.$name              = "ti_driverlib_gpio_GPIOPinGeneric0";
    ADC121.DMA_CHANNEL.$name                = "DMA_CH0";
    ADC121.DMA_CHANNEL.addressMode          = "f2b";
    ADC121.DMA_CHANNEL.transferMode         = "FULL_CH_REPEAT_SINGLE";
    ADC121.DMA_CHANNEL.enableInterrupt      = true;
    ADC121.DMA_CHANNEL.enableEarlyInterrupt = true;
    ADC121.DMA_CHANNEL.earlyIntThresh       = "HALF";
    ADC121.DMA_CHANNEL.peripheral.$assign   = "DMA_CH0";
    
    
    DAC12.dacPosVREF                = "VEREFP";
    DAC12.dacNegVREF                = "VEREFN";
    DAC12.dacAmplifier              = "ON";
    DAC12.dacOutputPinEn            = true;
    DAC12.dacOutput12               = 2048;
    DAC12.peripheral.$assign        = "DAC0";
    DAC12.peripheral.OutPin.$assign = "PA15";
    DAC12.OutPinConfig.$name        = "ti_driverlib_gpio_GPIOPinGeneric5";
    
    GPIO1.$name                         = "GPIO_LEDS";
    GPIO1.associatedPins[0].$name       = "USER_LED_1";
    GPIO1.associatedPins[0].pin.$assign = "PA0";
    
    GPIO2.port                          = "PORTB";
    GPIO2.$name                         = "TX";
    GPIO2.associatedPins.create(6);
    GPIO2.associatedPins[0].$name       = "TXPLH";
    GPIO2.associatedPins[1].$name       = "TXPLM";
    GPIO2.associatedPins[1].pin.$assign = "PB15";
    GPIO2.associatedPins[2].$name       = "TXEN";
    GPIO2.associatedPins[2].pin.$assign = "PB7";
    GPIO2.associatedPins[3].$name       = "TXP";
    GPIO2.associatedPins[3].pin.$assign = "PB8";
    GPIO2.associatedPins[4].$name       = "TXN";
    GPIO2.associatedPins[4].pin.$assign = "PB9";
    GPIO2.associatedPins[5].$name       = "LNS_GAIN";
    GPIO2.associatedPins[5].pin.$assign = "PB6";
    
    I2C1.$name                     = "I2C_0";
    I2C1.basicEnableController     = true;
    I2C1.peripheral.sdaPin.$assign = "PB3";
    I2C1.peripheral.sclPin.$assign = "PB2";
    I2C1.sdaPinConfig.$name        = "ti_driverlib_gpio_GPIOPinGeneric6";
    I2C1.sclPinConfig.$name        = "ti_driverlib_gpio_GPIOPinGeneric7";
    
    PWM1.$name                              = "PWM_1";
    PWM1.timerCount                         = 145;
    PWM1.PWM_CHANNEL_0.$name                = "ti_driverlib_pwm_PWMTimerCC0";
    PWM1.PWM_CHANNEL_0.dutyCycle            = 50;
    PWM1.PWM_CHANNEL_1.$name                = "ti_driverlib_pwm_PWMTimerCC1";
    PWM1.ccp0PinConfig.direction            = scripting.forceWrite("OUTPUT");
    PWM1.ccp0PinConfig.hideOutputInversion  = scripting.forceWrite(false);
    PWM1.ccp0PinConfig.onlyInternalResistor = scripting.forceWrite(false);
    PWM1.ccp0PinConfig.passedPeripheralType = scripting.forceWrite("Digital");
    PWM1.ccp0PinConfig.$name                = "ti_driverlib_gpio_GPIOPinGeneric12";
    PWM1.ccp1PinConfig.direction            = scripting.forceWrite("OUTPUT");
    PWM1.ccp1PinConfig.hideOutputInversion  = scripting.forceWrite(false);
    PWM1.ccp1PinConfig.onlyInternalResistor = scripting.forceWrite(false);
    PWM1.ccp1PinConfig.passedPeripheralType = scripting.forceWrite("Digital");
    PWM1.ccp1PinConfig.$name                = "ti_driverlib_gpio_GPIOPinGeneric13";
    
    SPI1.$name                              = "SPI_0";
    SPI1.mode                               = "PERIPHERAL";
    SPI1.dataSize                           = 16;
    SPI1.rxFifoThreshold                    = "DL_SPI_RX_FIFO_LEVEL_ONE_FRAME";
    SPI1.txFifoThreshold                    = "DL_SPI_TX_FIFO_LEVEL_3_4_EMPTY";
    SPI1.enabledDMAEvent2Triggers           = "DL_SPI_DMA_INTERRUPT_TX";
    SPI1.enabledInterrupts                  = ["DMA_DONE_TX","RX","TX_EMPTY"];
    SPI1.peripheral.$assign                 = "SPI0";
    SPI1.peripheral.cs0Pin.$assign          = "PA8";
    SPI1.sclkPinConfig.onlyInternalResistor = scripting.forceWrite(false);
    SPI1.sclkPinConfig.passedPeripheralType = scripting.forceWrite("Digital");
    SPI1.sclkPinConfig.$name                = "ti_driverlib_gpio_GPIOPinGeneric8";
    SPI1.mosiPinConfig.hideOutputInversion  = scripting.forceWrite(false);
    SPI1.mosiPinConfig.onlyInternalResistor = scripting.forceWrite(false);
    SPI1.mosiPinConfig.passedPeripheralType = scripting.forceWrite("Digital");
    SPI1.mosiPinConfig.$name                = "ti_driverlib_gpio_GPIOPinGeneric9";
    SPI1.misoPinConfig.onlyInternalResistor = scripting.forceWrite(false);
    SPI1.misoPinConfig.passedPeripheralType = scripting.forceWrite("Digital");
    SPI1.misoPinConfig.$name                = "ti_driverlib_gpio_GPIOPinGeneric10";
    SPI1.cs0PinConfig.hideOutputInversion   = scripting.forceWrite(false);
    SPI1.cs0PinConfig.onlyInternalResistor  = scripting.forceWrite(false);
    SPI1.cs0PinConfig.passedPeripheralType  = scripting.forceWrite("Digital");
    SPI1.cs0PinConfig.$name                 = "ti_driverlib_gpio_GPIOPinGeneric11";
    SPI1.DMA_CHANNEL_EVENT2.$name           = "DMA_CH2";
    SPI1.DMA_CHANNEL_EVENT2.addressMode     = "b2f";
    SPI1.DMA_CHANNEL_EVENT2.srcLength       = "HALF_WORD";
    SPI1.DMA_CHANNEL_EVENT2.dstLength       = "HALF_WORD";
    
    SYSCTL.forceDefaultClkConfig = true;
    SYSCTL.waitState             = "0";
    SYSCTL.validateClkStatus     = true;
    SYSCTL.MFPCLKEn              = true;
    SYSCTL.HFCLKSource           = "HFXT";
    SYSCTL.useHFCLK_Manual       = true;
    SYSCTL.SYSPLL_CLK1En         = true;
    SYSCTL.HFXTStartup           = 100;
    SYSCTL.MFCLKEn               = true;
    SYSCTL.clockTreeEn           = true;
    
    UART1.$name                    = "UART_0";
    UART1.targetBaudRate           = 115200;
    UART1.enabledInterrupts        = ["RX"];
    UART1.peripheral.rxPin.$assign = "PA11";
    UART1.peripheral.txPin.$assign = "PA10";
    UART1.txPinConfig.$name        = "ti_driverlib_gpio_GPIOPinGeneric1";
    UART1.rxPinConfig.$name        = "ti_driverlib_gpio_GPIOPinGeneric2";
    
    VREF.basicExtVolt           = 1.5;
    VREF.basicVrefPins          = "VREF+-";
    VREF.basicIntVolt           = "DL_VREF_BUFCONFIG_OUTPUT_2_5V";
    VREF.advClockConfigEnable   = true;
    VREF.advClkSrc              = "DL_VREF_CLOCK_BUSCLK";
    VREF.basicMode              = "DL_VREF_ENABLE_DISABLE";
    VREF.vrefPosPinConfig.$name = "ti_driverlib_gpio_GPIOPinGeneric3";
    VREF.vrefNegPinConfig.$name = "ti_driverlib_gpio_GPIOPinGeneric4";
    
    /**
     * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
     * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
     * re-solve from scratch.
     */
    pinFunction4.peripheral.$suggestSolution            = "SYSCTL";
    Board.peripheral.$suggestSolution                   = "DEBUGSS";
    Board.peripheral.swclkPin.$suggestSolution          = "PA20";
    Board.peripheral.swdioPin.$suggestSolution          = "PA19";
    GPIO2.associatedPins[0].pin.$suggestSolution        = "PB13";
    I2C1.peripheral.$suggestSolution                    = "I2C1";
    PWM1.peripheral.$suggestSolution                    = "TIMA0";
    PWM1.peripheral.ccp0Pin.$suggestSolution            = "PB14";
    PWM1.peripheral.ccp1Pin.$suggestSolution            = "PA1";
    SPI1.peripheral.sclkPin.$suggestSolution            = "PA12";
    SPI1.peripheral.mosiPin.$suggestSolution            = "PA14";
    SPI1.peripheral.misoPin.$suggestSolution            = "PA13";
    SPI1.DMA_CHANNEL_EVENT2.peripheral.$suggestSolution = "DMA_CH1";
    UART1.peripheral.$suggestSolution                   = "UART0";
    VREF.peripheral.$suggestSolution                    = "VREF";
    VREF.peripheral.vrefPosPin.$suggestSolution         = "PA23";
    VREF.peripheral.vrefNegPin.$suggestSolution         = "PA21";
    

  • Hello fb,

    I want to confirm with you:

    1). Every time you want to enter debug mode or download code into MCU, the first time will occur this error, and the second time after you rebuild, it won't?

    2). Your project will never occur this error ?

    1) or 2) ?

    If you enter into debug mode or download code into MCU, will its operation be normal ?
    I have tried again using your clock tree configuration on my side, and no error occurs.

    Best Regards,

    Janz Bai

  • Hi Janz,

    1). Every time you want to enter debug mode or download code into MCU, the first time will occur this error, and the second time after you rebuild, it won't?

    ==>I should explain this: I have a previous project A. As long as I set CPUCLK to 80M, no matter how I rebuild, such an error will occur. And there is a project B, which I recreate based on project A, and the error will always occur. will not happen,

    2). Your project will never occur this error ?

    ==>Project A always happens, Project B never happens

    If you enter into debug mode or download code into MCU, will its operation be normal ?

    ==> No, there will be no reaction

    I think this must be a problem with one of the settings. Can you use this error code to deduce the problem?

    I will also attach the project file, thank you for your helpERR-1001.zip

    FB

  • Hello fb,

    I have done some tests on my side:

    1). Using your project directly -> it will report this error;

    2). Using your project but modify the main.c to just "empty" -> it will also report this error;

    3). Re-generating a new empty project and configurate the Sysconfig according to your project -> it won't report this error.

    It seems that there are some broken when configurating the Sysconfig file. You can try to configurate the Sysconfig manually again and copy your code directly on latest CCS (which you can download from ti.com).

    Best Regards,

    Janz Bai

  • Hi Janz,

    Thank you for your help. I have also seen such a situation and have taken the same measures so that the project can continue!!


    I would like to know the root cause because I am worried that some wrong understanding will lead to the emergence of inexplicable bugs in the future. Previous experience tells me that it will be difficult to debug such problems in the later stages of development.

    Thank you for your great support. 

    FB

  • Hello fb,

    Don't worry about it but I understand your concerns. It is better to update your CCS and SDK to latest version on time, because some issue will be fixed version by version. 

    Best Regards,

    Janz Bai