About ADS's error-prone areas

Create project, edit source file, add file to project, set project properties, compile and link options, make!

Error : A1163E: Unknown opcode

Vector.s line 14

14 00000020 Reset_Addr DCD Reset_Handler

. . .

The people of the country were shocked again. The people of the world were dumbfounded. . .

This time, I really did edit the code in ADS CodeWarrior ~! why! ? Why armassembler does not know DCD yet? \

About ADS's error-prone areas

I checked one letter by one letter and found no errors. I slammed a carriage return each time before and after the wrong code to ensure correct line breaks or errors. . . I removed the Reset_Addr DCD Reset_Handler tab symbol in front of this pseudo-operation statement, magic! ! Actually no longer wrong it ~! ! Could it be the last time that the Tab key is playing, and let me wrong the vim editor?

ADS uses its stubbornness to prove once again to inferiority ugly men and proud stupid sister: What good-looking use? Can not eat ~!

God, I added a Tab symbol in front of the sentence, but I just wanted the code to look neat. Do you have beauty in the United States? There is no rule, there is no rule, and when you are a soldier, you have to be a soldier. The troops have the rules of the army. Whether or not to become a literary soldier to get --- write code is to make the code to be a soldier, all sort of flattered into a kind, but also talk about you look good ~ ~ unexpected, and sometimes the tab can not be added, want to make the code neat and clear Some of the tricks, to the ADS here has actually become a bad habit ~!

You say, this ADS armassembler/compiler/linker sometimes TMD strange, to do something that only the machine can understand! Do not be a development environment for the machine to coding it ~! Take a look at this code:

MCR P15, 0, R1, C1, C0, 0

Is it wrong? Very simple to write coprocessor CP15 register 1 instructions, syntax and spelling completely error-free! If ADS gives you an error, are you crazy? It's really wrong!

Error :A1151E: Bad register name symbol

Boot.s line 107

Fortunately, my mental capacity is strong. I found this error that I couldn't see with the naked eye before I was crazy: It would be right to use P15, C1, and C0 in all lowercase letters!

MCR p15, 0, R1, c1, c0, 0 ;correct now

With regard to this, the people of the world could not help but gave ADS a hand in their hearts.

It turns out that for the register symbol of the coprocessor, it must be represented by lowercase letters ~! My God! What a ***ing world!

Days, I have encountered new problems! In front of some pseudo-operation statement not in front of TAB, but there are some pseudo-operation (direcTIve) must also be before the Tab symbol or space ~! Do not believe? AREA and supporting END statement to try to write the top grid? ! ADS did not discuss with you for error ~! In front of EXPORT/IMPORT, you must also have a Tab symbol or space!

When using ADS 1.2, for assembly files, such as initialized init.s, each statement must be preceded by a "TAB" or space, otherwise there will be "unkown opcode" errors.

If you encounter this kind of problem, you can try the following methods:

1, remove the statement in front of the TAB or try (known pseudo-operations such as DCD, EQU statement can not have TAB symbols);

2, try to add a space or Tab symbol before the statement (known AREA, END, EXPORT / IMPORT before there must be a space or Tab symbol);

3, uppercase changed to lowercase (known coprocessor and coprocessor registers must be represented in lowercase letters);

4, TAB for space or space for TAB and other various methods.

The comment in the assembly starts with ;; // is used in C or C++

--------------------------------------------------

The __main() under ADS is an internal library function of the C language and completes the initialization of the internal RAM before entering the user main().

-------------------------

Because ARM uses a three-stage pipeline structure, when the SWI and undefined instruction exceptions are generated, the value of the program counter PC has not been updated. It points to the second instruction following the current instruction (for ARM instructions, it points to the current instruction address plus 8-byte position; for Thumb instructions, it points to the current instruction address plus 4 bytes). This is why when the SWI and the undefined instruction exception interrupt occur, the processor saves (PC-4) to the register lr_mode in the abnormal mode, at which point (PC-4) points to the next instruction of the current instruction.

100 Port USB Charger

100 Port Usb Charging Station

Intelligent charging logo and fast charging: This 100 port USB charger automatically identifies the current signal and performs the current output according to the device restriction. The device is limited to intelligent and secure. Just plug in, no driver or software is required. The latest generation of USB hub controller, the maximum charging output of each USB port 3.5A. Single -port supports fast charging to save your time and energy. 100 % security charging: This 100 port USB charging station built -in smart chip is to prevent voltage from exceeding the current and overload. Reasonable cooling holes can effectively dissipate heat to prevent excessive excessiveness. Excessive charging protection, when these devices are fully charged, they will automatically convert to small charges flowing current, and the battery saturation rate is 99 %.

100 Port USB Charging

100 Port Usb Charger,100 Port Usb Wall Charger,Multi Port Usb Hub Charger,100 Port Usb Charging Station

shenzhen ns-idae technology co.,ltd , https://www.best-charger.com

Posted on