[Raspberry Pi General] -CALIBAN666-:
About Assembler and Python Programming with the little Pi.

(its not a tutorial,its only to understand how and why its work and so badly needet is for pi)

Assembler Programming:

Assembler is seen the language of microprocessors even programs that drew in other high level languages ​​like C or Python are designed to be converted by known compilers and interpreters in a machine code,so will it executed directly runs for the prozsser like automatic.Assembler is the human readable and of them writable version of this machine code.

For what assembler?

Assembler is nothing for beginners, but it teaches you how a processor works and how a computer program at the lowest possible level runs.Was in high level programming in a few lines of code can be expressed is,in assembler language it will be a very long time and complex program.

Nevertheless, the ability to program in assembler asked from others like chefs/it/development very often,

Example,the following hardware/software.........

Compiler / Interpreterbuild

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

A programming language need to get as quickly as possible, the developers of the compiler / interpreter to know the underlying hardware and the most efficient use good.

System Development

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

Operating systems are of an intermediate layer between developer perspective application and hardware. The operating system provides functions for accessing hardware, and need to have access to this and to be adapted for the particular hardware architecture. In core areas, therefore the use of assembly language routines is essential to implement critical parts of the system and to optimize, for example, in memory management.

Performance Optimization

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

Not only scientific applications (graphics) drivers, but graphics programs, sound programs and games can accelerate with the targeted use of assembly language functions to some extent several hundred percent compared to the code generated by a compiler.

Low memory requirements

Space Gentler than in assembly language can be developed in any high level language.

Who can program ARM processors in assembler also has a very wide field in front of him, when one looks at times as what devices are installed for ARM processors:

Embedded systems (embedded systems)-

This class of devices has, unlike our usual personal computer, a specific purpose, such as the acquisition of sensor data, the processing and control of other components. The term is usually associated with industrial applications, eg the vehicle control system can be used.

Mobile phones / Smartphones / Tablets-

The ARM processor architecture is more power efficient and delivers energy used per watt great deal of computing power. Virtually all sold today powerful phones / smartphones and tables are therefore based on ARM processors, Apple's iPod Touch, iPhone, iPad, and Apple TVs to the many Android phones and tablets.

Navigation systems-

If you buy a navigation system for the car, or it is equipped with an in him after all Wahrscheinlicheit proposes an ARM heart.

NAS systems and routers-

Various Internet router, e.g. Netgear's RangeMax based on ARM CPUs, as NAS systems by example Asus and Synology.

Game consoles-

The Nintendo DS series / 3DS, Nintendo GameCube and Sony Playstation Vita based on ARM processors.

Supercomputer-

In Super Computing, both in education and research institutions as well as in a commercial environment, operating costs are generated mainly by the power consumption and provide necessary cooling measures and achievable power density major factors in building costs. Variously known supercomputers are planned using ARM processors and built (see: Supercomputer with ARM technology), usually in conjunction with high-performance graphics processing units (GPUs). Such systems should soon show up in the list of 500 "greenest" supercomputer, the Green500.

http://www.heise.de/ct/meldung/Supercomputer-mit-ARM-Technik-1378904.html

http://www.green500.org/

Of the developers working today probably only a very small portion has ever put into production assembler. With the still increasing use of the ARM architecture, but also increasingly developer with ARM assembler knowledge portraits are sought. Microsoft has confirmed that Windows 8 will run on ARM. The successor to the Xbox 360 is rumored to be based on ARM and Apple is working on a MacBook Air rumored half with ARM processor.

To specifically to accelerate applications in the use of assembly language is no way. Substituting from products in quantities of tens of thousands, hundreds of thousands or even millions, it's much more rewarding to let the developers optimize their Anwendungeun as raising the price of each unit sold by the use of a more powerful CPU.

The ARM processor core of the Raspberry Pi:

Let's talk in conjunction with the Raspberry Pi of assembly programming, we mean assembler for the ARM core processor. This is part of the set up at the Pi Broadcom BCM 2835 SoC (System On a Chip), in addition to the ARM core and a graphics processor (GPU), memory, and hardware for connecting peripheral devices (eg, USB) contains.

In the Manufacturer Info for BCM 2835, we find that he has a ARM1176JZ-F core. The cores of the ARM11 series based on version 6 of the ARM architecture. That may seem a bit confusing at the beginning, and has to do with the fact that ARM processors even for a long time no longer manufactures itself, they only design the architecture of different components and reference implementations, and awarded for the construction of such processors licenses. While ARM11 or ARM1176JZ-F tells us something about hardware features of the core, tells us the info that it is based on the v6 architecture, etc. which he understands basic commands.

http://www.broadcom.com/products/BCM2835

Looking for documentation and tutorials so we keep on ARM assembler for the arctic v6 lookout. Of course, source code will work for older architectures. By ARM1176 we learn so

he Jazelle technology for executing Java bytecode contains. This is not usable by us, because you need to accomplish for the details an expensive license agreements.

that the core of the Thumb instruction set one understands. This is a special limited set of commands in the command is only 16 instead of the otherwise used for the 32-bit ARM instruction set space for every command.

that the core contains a Vector Floating-Point Unit (VFP), so a math coprocessor, which can directly calculate with floating point numbers. It has 32 separate registers for single-precision operations and understands the VFPv2 ARM instruction set. The register can also register for calculations in 16 double-precision (64-bit) are used.

the core has 33 general and 7 special register of 32 bits size. (GPR - General Purpose Registers) for programming thereof always only 16 general purpose registers are visible.

the processor has special DSP (Digital Signal Processing - Digital Signal Processing) commands for 8, 16 and 32 bit data including here frequently required MAC and some SIMD instructions.

http://de.wikipedia.org/wiki/Multiply-Accumulate

http://de.wikipedia.org/wiki/SIMD#SIMD_.28Single_Instruction.2C_Multiple_Data.29

Python programming:

The Python programming language has been selected by the Raspberry Pi Foundation as the official language of instruction for the Pi. We remember also the Pi was originally developed to allow for a cheap computer for equipping and improving computer science education in British schools. Python is so far an obvious and good choice, as it is a modern, popular, versatile and available for all major platforms language.

Python 2 or 3?

At this point, we have compiled a number of resources that constitute a good introduction / migration to the Python language. Who will reads a little notice that many sources and books that have Python 2.x, 3.x, but the current version is. Unlike other common languages​​, the designers of Python cut off also like to old habits. This means that source code written for older versions in a modern indoor major version may be run immediately, but must be modified. But do not worry, as a rule, there is widespread both packages in a version for 2 and 3, and even the more recent books speak on the differences in their own chapters.

Since the release branch 2 is no longer developed since version 2.7, you should start with equal opportunity for Python 3. The differences are not just for beginners but just big, so losing good tutorials for Python 2, not much of its value. The Raspberry Pi Foundation itself has a thorough examination to decide to officially support Python 3.

Creating games with pygame:

Game development is to some extent the art of programming, since many disciplines come together, such as graphics, sound, control, geometry / mathematics, physics, etc. The Raspberry Pi Foundation has an early cast an eye on pygame, a Python library for creating computer games, which is also used in some of the books listed here.

Not only fun games, including games development arouses unexpected powers when it comes to inspiring people to program and to motivate long-term. The Raspberry Pi Foundation has announced early to want to rely on the doctrine of pygame.

http://www.pygame.org/news.html

CREDITS TO STEFAN LANGER(LINUXGENIEMONSTA)AND ME>--WITH AWESOME GREETZ TO BASTEK>----------------------------------------------------

DONT FORGET CREDITS WHEN SHARING.THANX

AND MANY MORE TO COME!!!:cool: