Tips about hardware

View Linux system kernel information

Linux xiaoming-virtual-machine 4.15.0-136-generic #140~16.04.1-Ubuntu SMP Wed Feb 3 18:51:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

The Linux kernel is 4.15.9-135-generic, the release number is Ubuntu16.04, and the architecture is X86_54

View system architecture arch

x86_64

View Linux system version details cat /proc/version

Linux version 4.15.0-136-generic (buildd@lcy01-amd64-014) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)) #140~16.04.1-Ubuntu SMP Wed Feb 3 18:51:03 UTC 2021

The first is the kernel version number 2 of the current system, and the next is the compiler information, the platform and system version of the compiled gcc version, and the system time. Like cross-compilation, the corresponding cross-tool compiler will be used to compile

How to determine the hardware platform cpu information (such as the number of cores) cat /proc/cpuinfoorlscpu

processor	: 0
model name	: ARMv7 Processor rev 0 (v7l)
BogoMIPS	: 666.66
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x3
CPU part	: 0xc09
CPU revision	: 0

processor	: 1
model name	: ARMv7 Processor rev 0 (v7l)
BogoMIPS	: 666.66
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x3
CPU part	: 0xc09
CPU revision	: 0

Hardware	: Xilinx Zynq Platform
Revision	: 0003
Serial		: 0000000000000000

View arm specific modeldmesg |grep arm

Check the number of bits in the systemgetconf LONG_BIT

A 64-bit cpu may run on a 32-bit system.

Arm instruction set

Insert picture description here
Arm is divided into three series: Cortex-A series, Cortex-M series and Cortex-R.

The previously used A8, A9 and the like belong to the Cortex-A series; A is the abbreviation of Application, which means that the high-performance application processor
STM32 microcontroller belongs to the Cortex-M series. M is the abbreviation of Micro, which means that
I have never used the Cortex-R series of microcontrollers. I don't know what typical CPUs represent. R is the abbreviation of RealTime, which stands for real-time processor.

A8/A9/A12/A15 and STM32 are actually based on the ARMv7 architecture, but A8/A9/A12/A15 are based on the ARMv7-A architecture; STM32 is based on the ARMv7-m architecture, using cm3.

Nowadays, everyone's name is very messy on the market, and it is easy to call people confused. So I sorted out the common halo problems:

1. ARMv7 and ARM7 are two things.

ARMv7 is the core, and now STM32 and A8/A9/A12/A15 are still using ARMv7 cores. Most commonly used ARM films on the market are based on the ARMv7 core. Until ARM introduced Cortex-A53 and Cortex-A57, two CPUs belonging to the Cortex-A50 series, the 64-bit ARMv8 architecture was adopted for the first time.

ARM7 is an old film. It was first released in 1994, including ARM7TDMI-S (based on ARMv4T architecture) and ARM7EJ-S (based on ARMv5TEJ architecture, etc.). Now even the embedded field is no longer used.

2. ARM9 and ARM A9 are also two things.

ARM A9 usually refers to the A9 chip of the ARM Cortex-A series. Its core is ARMv7 series, using ARMv7-A architecture.
ARM9 is based on the ARMv5 architecture, and ARM11 is based on the ARMv6 architecture. ARM9 and ARM11 are already very old films and are rarely used. Now I learn ARM basically from Cortex-A8/A9.

So the ARM series should look like this in chronological order:

ARM7 (ARMv4/ARMv5 core, von Neumann structure) -> ARM9 (ARMv5 core, Harvard structure) -> ARM11 (ARMv6 core, Harvard structure) -> Cortex-A5/A7/A8/A9/A12/A15(32 -Bit ARMv7-A core, Harvard architecture) -> Cortex-A57/A53 (64-bit ARMv8 architecture, Harvard architecture)

The difference between STM32 series and ARM's A series: Mainly the difference between main frequency/RAM/ROM/clock/hardware pins. There is another difference, STM32 does not have MMU (memory management unit), so STM32 is not suitable for running large linux systems, at most ucos and freertos and the like. Of course, in fact, most of the time, using STM32 is a small project, and many of them are running naked. The A series of CPUs running various versions of linux all indicate no pressure.

Finally, I will sort out the parameters of several CPUs that STM32 is now used more:

F103 main frequency 72M; RAM 20k; Flash 64/128k; I/O number 80; communication interface number 9; timer number 7
F405 main frequency 168M; RAM 192K; Flash 1M; I/O number 140; communication interface number 15; timer Number 17
F427 Main frequency 180M; RAM 256K; Flash 2M; I/O number 168; communication interface number 21; timer number 17

The current instruction set is: https://www.cnblogs.com/yilang/p/10974327.html

Naming Rules for Cross Compiler Tools

Naming rules

The corresponding are:

arch [-vendor] [-os] [-(gnu)eabi]

Rules describe
arch architecture, such as ARM, MIPS
vendor tool chain provider
os target operating system
eabi Embedded Application Binary Interface

[1] https://www.cnblogs.com/stay-foolish1984/p/8928403.html

Guess you like

Origin blog.csdn.net/weixin_39258979/article/details/114260274