Cart New Account Login

HomeAbout usProductsSupportForumsBlogCustomer Service

Please accept the use of cookies on our site

At PEmicro we use web browser cookies in order to provide you with an enhanced experience and in order to be able to do things like shopping cart processing and identify you when you login to our website.

Click here to accept

search inside this forum
search inside all forums
Error 300B With Dynamically Read Data From Target
James A. Apr 21, 2017 at 05:50 PM (17:50 hours)
Staff: Johnny N.

  • What could be the reason for error 300B after issuing command to dynamically read data from target (0x07F0) following successful programming of a device(Freescale 9S12GN32) using the Cyclone Pro. After programming device, we didn't reset device or turn off power to device. Our PLC (not PC) sends "08 18 2E 00 00 07 F0 02 B7" to Cyclone via serial port, but we receive "09 3F3F 300B 0003 FFFF EE" which indicates error 300B and error LED turns on. To program device we use the following sequence: CM EEPROM.12P, EM, BM, CM PFLASH.12P, SS, EM, BM, PM, VM.


  • Follow up: I tried to do the same through a PC/C#/DLL/Ethernet/CyclonePro, but get the same ErrCode 300B, ErrAddr 3FFFF. Below is the C# code:

    // Open conn
    uint connection_type = 6; // Ethernet
    uint handle1 = connect_to_cyclonepromax(connection_type, Open_by_IP_Address, "");

    // Program device (Cyclone display shows it is programming)
    bool status1 = START_execute_all_commands(handle1, 1);

    // Wait while programming
    while (check_STARTED_cyclonepromax_status(handle1) != 0) {

    byte[] buffer = new byte[80];
    bool status = dynamic_read_bytes(handle1, 0x07F, 2, buffer);

    if (!status) {
    UInt16 errCode = multiple_cyclone_programming.get_last_error_code(handle1);
    UInt32 errAddr = multiple_cyclone_programming.get_last_error_addr(handle1);
    Debug.WriteLine("ErrCode = " + errCode.ToString("X")); // Prints '300B'
    Debug.WriteLine("ErrAddr = " + errAddr.ToString("X")); // Prints '3FFF'

    Debug.WriteLine("buf0 = " + buffer[0].ToString());
    Debug.WriteLine("buf1 = " + buffer[1].ToString());


    • The valid memory ranges on the 9S12GN32 from our algorithms are:

      PFlash (linear address space) -> $38000-$3FFFF

      EEPROM -> $400 -> $800

      The memory range would be configured by the second algorithm in your programming sequence which is the one for PFLASH. $07F0 would not be a valid address which is what Error $300B means. It has to be somewhere in the range of $38000-$3FFFF.

  • HI Johnny,

    > The valid memory ranges on the 9S12GN32 from our algorithms are:
    > PFlash (linear address space) -> $38000-$3FFFF
    > EEPROM -> $400 -> $800

    I could kick myself!
    It turns out $387F0 is the correct address (instead of $7F0).


Add comment

   Want to comment? Please login or create a new PEMicro account.

© 2018 P&E Microcomputer Systems Inc.
Website Terms of Use and Sales Agreement