This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Re: Long Integer Multiple Error

Think you.
I modified my source :

        printf("%lu * %bu = ", N, M);
        printf("%lu\n", Freq);

        Freq=25690112L;
        printf("%lu * %bu = ", Freq, 4);
        Freq*=4;
        printf("%lu\n", Freq);


It work correctly.
but the Long Integer Multiple fault also.

Run Result:
24500000 * 4 = 4294926936
25690112 * 4 = 1568

Parents
  • OK, so we've established that your chip does have an arithmetic accelerator, and the Keil tools do support it...

    "My Mcu program size is 80KB now."

    So you must have a full, licensed copy of the tools, then?

    In that case, you should contact Keil support with this issue.

    Have you also contacted Silicon Labs?

Reply
  • OK, so we've established that your chip does have an arithmetic accelerator, and the Keil tools do support it...

    "My Mcu program size is 80KB now."

    So you must have a full, licensed copy of the tools, then?

    In that case, you should contact Keil support with this issue.

    Have you also contacted Silicon Labs?

Children
  • "My Mcu program size is 80KB now."

    So you must be using some kind of banking?

    Have you checked carefully if there are any particular issues in using the accelerator with banking?

  • "STOP THINKING!!!! "

    sir erac

    that is VERY bad idea you say me!!!

    Taken out of context;

    since you seem to have a problem understanding contexts, I shall "bend it in neon" for you.

    when a 5 minute experiment can give the answer, STOP THINKING, make the experiment and go on with the gained knowledge

    here is good book i read for you please

    books.google.com/books
    based on the description you give of what you do, you are waaaaaaaaaaay too far out doing something like this while reading beginners guides. Start with something suitable for beginners.

    Erik

    PS WHO IS "Sir Erac" ?

  • One problem with the concept:

    Thinking can result in the correct answer.

    On the other hand, testing can result in a false positive/negative, because without thinking, not all parameters may have been correctly tested.

    It is often better to know why something works/doesn't work, then to deduce the function by trial and error.

  • sir eric

    boook i now read is this

    books.google.com/books://www.google.com/search%3Fhl%3Den%26safe%3Doff%26rls%3Dcom.microsoft%253Aen-US%26q%3D%2522software%2Bengineering%2522%2Bbook&sa=X&oi=print&ct=result&cd=3

    it do good teaching of enginnering

    it teached me that thinkng is good

    i now prograam for money on computer and soon be big rich!!!!!!

    you need me when i give you help? for friend i not charge you big!!!!

  • On the other hand, testing can result in a false positive/negative, because without thinking, not all parameters may have been correctly tested.

    It is often better to know why something works/doesn't work, then to deduce the function by trial and error.

    I would typically agree with you; however, in this particular case. the questions is "does the simulator simulate correctly".

    'Thinking' will not help here, however a 5 minute effort trying the same on the emulator will give the absolute answer. If the answer is the same, the code (or the compiler) is faulty, if the answer is different, the simulator is faulty there is no possibility of a "false positive/negative"

    "better to know why something works/doesn't work". I doubt anyone but a Keil employee would have any benefit from finding out why the simulaotor does not work, should that be the case.

    No, there is absolutely nothing wrong with 'thinking' when applied where efficient but spending days 'thinking' about something when an experiment can give the total and absolute answer is definitely not applying 'thinking where efficient'. This is especially ludicrous when the answer, beyond yes or no has no value to the 'investigator'.

    The OP stated in an earlier post that the simulator worked when "hardware acceleration" or some such thing was not specified which directly would be revealed as either code, compiler or simulator error by the simple test I suggested.

    Now, if the OP insist on 'thinking' there even is a simple means of analyzing by that method: check the generated assembler. That, of course, again, is much more cumbersome that a 5 minute test.

    Erik

    PS just to repeat; I strongly advise against determining things by 'experimenting' unless, as in this case, the answer is absolute and paametre variance independent. Especially when tool performance is in question an experiment (or looking at the generated assembler) is often the only way to determine the facts.