embeded/raspberry pi2015. 5. 12. 20:44

config.txt

dtoverlay=lirc-rpi,gpio_in_pin=18,debug=on


으로 설정하니 예전 5.0.4랑 차이가 없는 것으로 보인다.

gpio-18은 언제 쯤 나오려나.. ㅠㅠ


OpenELEC:~ # modprobe lirc_rpi debug=1


OpenELEC:~ # cat /sys/kernel/debug/gpio


GPIOs 0-53, platform/3f200000.gpio, pinctrl-bcm2835:

 gpio-35  (led1                ) in  hi

 gpio-47  (led0                ) out lo


OpenELEC:~ # cat /proc/interrupts

            CPU0       CPU1       CPU2       CPU3

 16:          0          0          0          0   ARMCTRL  16  bcm2708_fb dma

 24:         35          0          0          0   ARMCTRL  24  DMA IRQ

 25:       1414          0          0          0   ARMCTRL  25  DMA IRQ

 32:      28402          0          0          0   ARMCTRL  32  dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1

 49:          0          0          0          0   ARMCTRL  49  3f200000.gpio:bank0

 50:          0          0          0          0   ARMCTRL  50  3f200000.gpio:bank1

 65:         28          0          0          0   ARMCTRL  65  ARM Mailbox IRQ

 66:      37570          0          0          0   ARMCTRL  66  VCHIQ doorbell

 75:          1          0          0          0   ARMCTRL  75

 84:       5247          0          0          0   ARMCTRL  84  mmc0

 99:       7986       6287       9505       6913   ARMCTRL  99  arch_timer

466:          0          0          0          0  pinctrl-bcm2835  18  lirc_rpi

FIQ:              usb_fiq

IPI0:          0          0          0          0  CPU wakeup interrupts

IPI1:          0          0          0          0  Timer broadcast interrupts

IPI2:       9274      26365      21700      11433  Rescheduling interrupts

IPI3:          1          3          5          5  Function call interrupts

IPI4:          3          1          0          1  Single function call interrupts

IPI5:          0          0          0          0  CPU stop interrupts

IPI6:          1          0          0          0  IRQ work interrupts

IPI7:          0          0          0          0  completion interrupts

Err:          0


OpenELEC:~ # dmesg | grep -i lirc

[    5.758491] lirc_dev: IR Remote Control driver registered, major 248

[    5.784692] lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned.

[    5.786415] lirc_rpi: to_irq 466

[    6.679084] lirc_rpi: auto-detected active high receiver on GPIO pin 18

[    6.679548] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0

[    6.679576] lirc_rpi: driver registered!

[    6.917559] input: lircd as /devices/virtual/input/input1

[    7.945875] lirc_rpi: Interrupt 466 obtained

[    7.945897] lirc_rpi: in init_timing_params, freq=38000 pulse=13157, space=13158


OpenELEC:~ # lsmod | grep irc

lirc_rpi                5882  3

lirc_dev                7578  1 lirc_rpi

rc_core                14603  1 lirc_dev 



'embeded > raspberry pi' 카테고리의 다른 글

class 6 SDHC 굽는 속도  (0) 2015.05.24
어허허 파워드 허브를 사야하나? -_-  (0) 2015.05.23
openELEC 5.0.8  (0) 2015.05.12
wiring Pi  (0) 2015.05.12
UHS 지원여부?  (0) 2015.05.11
Posted by 구차니
embeded/raspberry pi2015. 5. 12. 20:10

기존에 테스트 하던건 5.0.4 였네

좀 달라졌으려나...



2015년 3월 31일 릴리즈 버전이다.

'embeded > raspberry pi' 카테고리의 다른 글

어허허 파워드 허브를 사야하나? -_-  (0) 2015.05.23
openelec 5.0.8 lirc 활성화 확인  (0) 2015.05.12
wiring Pi  (0) 2015.05.12
UHS 지원여부?  (0) 2015.05.11
cortex-a7 / NEON 그리고.. 멀티프로세서  (0) 2015.05.07
Posted by 구차니
embeded/raspberry pi2015. 5. 12. 13:03


기본 통합된건 없는것 같긴한데..

라즈베리 파이용 GPIO 컨트롤 라이브러리 라고 하면 되려나?

[링크 : http://wiringpi.com/download-and-install/]


pi4j는 wireing PI의 자바버전

[링크 : http://pi4j.com/]



void pinMode (int pin, int mode) ;

void pullUpDnControl (int pin, int pud) ;

void digitalWrite (int pin, int value) ;

void pwmWrite (int pin, int value) ;

int digitalRead (int pin) ;

analogRead (int pin) ;

analogWrite (int pin, int value) ;

[링크 : http://wiringpi.com/reference/core-functions/]

[링크 : http://wiringpi.com/reference/raspberry-pi-specifics/]

'embeded > raspberry pi' 카테고리의 다른 글

openelec 5.0.8 lirc 활성화 확인  (0) 2015.05.12
openELEC 5.0.8  (0) 2015.05.12
UHS 지원여부?  (0) 2015.05.11
cortex-a7 / NEON 그리고.. 멀티프로세서  (0) 2015.05.07
라즈베리 파이 2- 라즈비안 lirc  (0) 2015.05.05
Posted by 구차니
embeded/raspberry pi2015. 5. 11. 14:41


라즈베리에서는 UHS SD 스펙을 지원하지 않는건가?


[링크 : http://www.hardkernel.com/main/products/prdt_info.php]


일단.. SD 위원회 자료로는 UHS SD 카드라고 해도 장비에서 지원하지 않으면

Class 10 으로 하향 접속이 되는 것으로 보인다.

[링크 : https://www.sdcard.org/developers/overview/speed_class/]

'embeded > raspberry pi' 카테고리의 다른 글

openELEC 5.0.8  (0) 2015.05.12
wiring Pi  (0) 2015.05.12
cortex-a7 / NEON 그리고.. 멀티프로세서  (0) 2015.05.07
라즈베리 파이 2- 라즈비안 lirc  (0) 2015.05.05
BCM2708/BCM2835 ???  (0) 2015.04.30
Posted by 구차니
embeded/raspberry pi2015. 5. 7. 10:20

그림 상으로는 프로세서 코어 별로 NEON과 VFP가 독립적으로 내장되어 있는데..

4코어니까

openMP로 4 프로세스를 프로세서 별로 돌리면서 각각 NEON을 돌리는게 가능하려나?




[링크 : http://www.arm.com/products/processors/cortex-a/cortex-a7.php]

'embeded > raspberry pi' 카테고리의 다른 글

wiring Pi  (0) 2015.05.12
UHS 지원여부?  (0) 2015.05.11
라즈베리 파이 2- 라즈비안 lirc  (0) 2015.05.05
BCM2708/BCM2835 ???  (0) 2015.04.30
라즈베리 파이 SoC 관련  (0) 2015.04.29
Posted by 구차니
embeded/raspberry pi2015. 5. 5. 21:39

음..

로그를 기록하진 못했는데..


dmesg 존재

interrupt 누락

lsmod 존재

gpio 설정내용 누락


openelec 보다 더 지원이 안되는 것 같다.

'embeded > raspberry pi' 카테고리의 다른 글

UHS 지원여부?  (0) 2015.05.11
cortex-a7 / NEON 그리고.. 멀티프로세서  (0) 2015.05.07
BCM2708/BCM2835 ???  (0) 2015.04.30
라즈베리 파이 SoC 관련  (0) 2015.04.29
라즈베리 파이 2 - openelec 디바이스 트리 덤프  (0) 2015.04.29
Posted by 구차니
embeded/raspberry pi2015. 4. 30. 11:12

결국 소득은.. 공식적인건 없고..

broadcom 에서 bcm2708 family로 그중에 실제 칩이름이 bcm2385 라는건가..

(요녀석은 ARM11 계열)



그래서..

bcm2709/bcm2836 cortex-a7 quad core 라고 명명된건가...



Power-on Value of User ID Register 0x2708A000 

[링크 : https://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf]


[PATCH] ARM: add support for BCM2708/BCM2835 and Raspberry Pi

[링크 : http://www.spinics.net/lists/arm-kernel/msg192883.html

Posted by 구차니
embeded/raspberry pi2015. 4. 29. 22:14

라즈베리 파이 2로 하면.. bcm2709나 bcm2708이 보이는데

공식홈페이지에는 bcm2836으로 기재가 된다.. 머지?


bcm2708 / bcm2835 ARM1176 - A/B/B+/Compute Module

bcm2709 / bcm2836 Cortex-A7 - 2 B


[링크 : http://elinux.org/RPi_HardwareHistory]

    [링크 : http://sourceforge.net/p/lcdproc/discussion/312/thread/c106d4b8/]

[링크 : http://www.raspberry-projects.com/pi/pi-hardware/bcm2835]


Technically 2708 is the family, and 2835 is a specific implementation

I actually get the impression all VC4 SoCs are based on the bcm2708, while VC3 is bcm2707

[링크 : http://raspberrypi.stackexchange.com/...sometimes-referred-to-as-bcm2708-sometimes-bcm2835]


음.. 결론은.. bmc270x는 GPU only 제품이고

bcm2836이 라즈베리 파이에 정식 cpu 명칭인건가? 모호하네...

도대체 커널에서 무수히 뿌려대는 bcm2708 bcm2709는 멀까?



[링크 : https://en.wikipedia.org/wiki/VideoCore#Table_of_SoCs_adopting_VideoCore_SIP_blocks]

Posted by 구차니
embeded/raspberry pi2015. 4. 29. 22:05




$ dtc

프로그램 'dtc'을(를) 설치하지 않습니다. 다음을 입력해 설치할 수 있습니다:

sudo apt-get install device-tree-compiler 


$ fdtdump bcm2709-rpi-2-b.dtb

/dts-v1/;

// magic:               0xd00dfeed

// totalsize:           0x163a (5690)

// off_dt_struct:       0x38

// off_dt_strings:      0x139c

// off_mem_rsvmap:      0x28

// version:             17

// last_comp_version:   16

// boot_cpuid_phys:     0x0

// size_dt_strings:     0x29e

// size_dt_struct:      0x1364


/ {

    #address-cells = <0x00000001>;

    #size-cells = <0x00000001>;

    compatible = "brcm,bcm2709";

    model = "Raspberry Pi 2 Model B";

    interrupt-parent = <0x00000001>;

    chosen {

        bootargs = [00];

    };

    aliases {

        soc = "/soc";

        spi0 = "/soc/spi@7e204000";

        i2c0 = "/soc/i2c@7e205000";

        i2c1 = "/soc/i2c@7e804000";

        i2s = "/soc/i2s@7e203000";

        gpio = "/soc/gpio";

        intc = "/soc/interrupt-controller";

        leds = "/soc/leds";

        sound = "/sound";

    };

    memory {

        device_type = "memory";

        reg = <0x00000000 0x736f6300>;

    };

    soc {

        compatible = "simple-bus";

        #address-cells = <0x00000001>;

        #size-cells = <0x00000001>;

        ranges = <0x7e000000 0x00000004 0x00000004>;

        linux,phandle = <0x00000013>;

        phandle = <0x00000013>;

        interrupt-controller {

            compatible = "brcm,bcm2708-armctrl-ic";

            reg = <0x7e00b200 0x00000097>;

            interrupt-controller;

            #interrupt-cells = <0x00000002>;

            linux,phandle = <0x00000001>;

            phandle = <0x00000001>;

        };

        gpio {

            compatible = "brcm,bcm2835-gpio";

            reg = <0x7e200000 0x000000bd>;

            interrupts = <0x00000002 0x00000003 0x00000004 0x00000000>;

            gpio-controller;

            #gpio-cells = <0x00000002>;

            interrupt-controller;

            #interrupt-cells = <0x00000002>;

            linux,phandle = <0x00000008>;

            phandle = <0x00000008>;

            spi0_pins {

                brcm,pins = <0x00000007 0x0000000b 0x00000004 0x00000004 0x00000004>;

                brcm,function = <0x00000004>;

                linux,phandle = <0x00000004>;

                phandle = <0x00000004>;

            };

            i2c0 {

                brcm,pins = <0x00000000 0x000000ee>;

                brcm,function = <0x00000004>;

                linux,phandle = <0x00000006>;

                phandle = <0x00000006>;

            };

            i2c1 {

                brcm,pins = <0x00000002 0x000000ee>;

                brcm,function = <0x00000004>;

                linux,phandle = <0x00000007>;

                phandle = <0x00000007>;

            };

            i2s {

                brcm,pins = <0x00000012 0x00000003 0x00000003 0x00000003>;

                brcm,function = <0x00000004>;

                linux,phandle = <0x00000002>;

                phandle = <0x00000002>;

            };

        };

        i2s@7e203000 {

            compatible = "brcm,bcm2708-i2s";

            reg = <0x7e203000 0x00000003 0x78000000 0x64697361>;

            dma-names = "tx", "rx";

            status = "disabled";

            #sound-dai-cells = <0x00000000>;

            pinctrl-names = "default";

            pinctrl-0 = <0x00000002>;

            linux,phandle = <0x0000000d>;

            phandle = <0x0000000d>;

        };

        spi@7e204000 {

            compatible = "brcm,bcm2708-spi";

            reg = <0x7e204000 0x000000bd>;

            interrupts = <0x00000002 0x00000136>;

            clocks = <0x00000003>;

            #address-cells = <0x00000001>;

            #size-cells = <0x00000000>;

            status = "disabled";

            pinctrl-names = "default";

            pinctrl-0 = <0x00000004>;

            linux,phandle = <0x0000000e>;

            phandle = <0x0000000e>;

            spidev@0 {

                compatible = "spidev";

                reg = <0x00000000>;

                #address-cells = <0x00000001>;

                #size-cells = <0x00000000>;

                spi-max-frequency = <0x0007a120>;

            };

            spidev@1 {

                compatible = "spidev";

                reg = <0x00000001>;

                #address-cells = <0x00000001>;

                #size-cells = <0x00000000>;

                spi-max-frequency = <0x0007a120>;

            };

        };

        i2c@7e205000 {

            compatible = "brcm,bcm2708-i2c";

            reg = <0x7e205000 0x000000bd>;

            interrupts = <0x00000002 0x00000136>;

            clocks = <0x00000005>;

            #address-cells = <0x00000001>;

            #size-cells = <0x00000000>;

            status = "disabled";

            pinctrl-names = "default";

            pinctrl-0 = <0x00000006>;

            clock-frequency = <0x000186a0>;

            linux,phandle = <0x0000000f>;

            phandle = <0x0000000f>;

        };

        i2c@7e804000 {

            compatible = "brcm,bcm2708-i2c";

            reg = <0x7e804000 0x000000bd>;

            interrupts = <0x00000002 0x00000136>;

            clocks = <0x00000005>;

            #address-cells = <0x00000001>;

            #size-cells = <0x00000000>;

            status = "disabled";

            pinctrl-names = "default";

            pinctrl-0 = <0x00000007>;

            clock-frequency = <0x000186a0>;

            linux,phandle = <0x00000010>;

            phandle = <0x00000010>;

        };

        leds {

            compatible = "gpio-leds";

            linux,phandle = <0x00000014>;

            phandle = <0x00000014>;

            act {

                label = "led0";

                linux,default-trigger = "mmc0";

                gpios = <0x00000008 0x00000004 0x00000004>;

                linux,phandle = <0x00000011>;

                phandle = <0x00000011>;

            };

            pwr {

                label = "led1";

                linux,default-trigger = "input";

                gpios = <0x00000008 0x00000004 0x00000004>;

                linux,phandle = <0x00000012>;

                phandle = <0x00000012>;

            };

        };

        arm-pmu {

            compatible = "arm,cortex-a7-pmu";

            interrupts = <0x00000003 0x00000001>;

        };

    };

    clocks {

        compatible = "simple-bus";

        #address-cells = <0x00000001>;

        #size-cells = <0x00000000>;

        i2c {

            compatible = "fixed-clock";

            reg = <0x00000001>;

            #clock-cells = <0x00000000>;

            clock-frequency = <0x0ee6b280>;

            linux,phandle = <0x00000005>;

            phandle = <0x00000005>;

        };

        clock@2 {

            compatible = "fixed-clock";

            reg = <0x00000002>;

            #clock-cells = <0x00000000>;

            clock-output-names = "spi";

            clock-frequency = <0x0ee6b280>;

            linux,phandle = <0x00000003>;

            phandle = <0x00000003>;

        };

    };

    timer {

        compatible = "arm,armv7-timer";

        clock-frequency = <0x0124f800>;

        interrupts = <0x00000003 0x00000003 0x00000003 0x00000001 0x00000004 0x00000004 0x00000004 0x00000004>;

        always-on;

    };

    cpus {

        #address-cells = <0x00000001>;

        #size-cells = <0x00000000>;

        linux,phandle = <0x00000015>;

        phandle = <0x00000015>;

        cpu@0 {

            device_type = "cpu";

            compatible = "arm,cortex-a7";

            reg = <0x00000f00>;

            clock-frequency = <0x2faf0800>;

            linux,phandle = <0x00000009>;

            phandle = <0x00000009>;

        };

        cpu@1 {

            device_type = "cpu";

            compatible = "arm,cortex-a7";

            reg = <0x00000f01>;

            clock-frequency = <0x2faf0800>;

            linux,phandle = <0x0000000a>;

            phandle = <0x0000000a>;

        };

        cpu@2 {

            device_type = "cpu";

            compatible = "arm,cortex-a7";

            reg = <0x00000f02>;

            clock-frequency = <0x2faf0800>;

            linux,phandle = <0x0000000b>;

            phandle = <0x0000000b>;

        };

        cpu@3 {

            device_type = "cpu";

            compatible = "arm,cortex-a7";

            reg = <0x00000f03>;

            clock-frequency = <0x2faf0800>;

            linux,phandle = <0x0000000c>;

            phandle = <0x0000000c>;

        };

    };

    __overrides__ {

        arm_freq = <0x00000009 0x6e63793a 0x66726571 0x636c6f63 0x30000000 0x75656e63 0x00000059 0x00000003 0x73746174 0x0000004f 0x00000003 0x73746174 0x000001b8 0x65717565 0x00000016 0x6b2d6672 0x00000003 0x6770696f 0x000001e1 0x00000003 0x6c696e75 0x69676765>;

        i2s = [00 00 00 0d 73 74 61 74 75 73 00];

        spi = [00 00 00 0e 73 74 61 74 75 73 00];

        i2c0 = [00 00 00 0f 73 74 61 74 75 73 00];

        i2c1 = [00 00 00 10 73 74 61 74 75 73 00];

        i2c0_baudrate = [00 00 00 0f 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];

        i2c1_baudrate = [00 00 00 10 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];

        act_led_gpio = <0x00000011 0x0000000c 0x733a3800>;

        act_led_activelow = <0x00000011 0x0000001a 0x782c6465>;

        act_led_trigger = [00 00 00 11 6c 69 6e 75 78 2c 64 65 66 61 75 6c 74 2d 74 72 69 67 67 65 72 00];

        pwr_led_gpio = <0x00000012 0x0000000c 0x733a3800>;

        pwr_led_activelow = <0x00000012 0x0000001a 0x782c6465>;

        pwr_led_trigger = [00 00 00 12 6c 69 6e 75 78 2c 64 65 66 61 75 6c 74 2d 74 72 69 67 67 65 72 00];

    };

    sound {

        linux,phandle = <0x00000016>;

        phandle = <0x00000016>;

    };

    __symbols__ {

        soc = "/soc";

        intc = "/soc/interrupt-controller";

        gpio = "/soc/gpio";

        spi0_pins = "/soc/gpio/spi0_pins";

        i2c0_pins = "/soc/gpio/i2c0";

        i2c1_pins = "/soc/gpio/i2c1";

        i2s_pins = "/soc/gpio/i2s";

        i2s = "/soc/i2s@7e203000";

        spi0 = "/soc/spi@7e204000";

        i2c0 = "/soc/i2c@7e205000";

        i2c1 = "/soc/i2c@7e804000";

        leds = "/soc/leds";

        act_led = "/soc/leds/act";

        pwr_led = "/soc/leds/pwr";

        clk_i2c = "/clocks/i2c";

        clk_spi = "/clocks/clock@2";

        cpus = "/cpus";

        v7_cpu0 = "/cpus/cpu@0";

        v7_cpu1 = "/cpus/cpu@1";

        v7_cpu2 = "/cpus/cpu@2";

        v7_cpu3 = "/cpus/cpu@3";

        sound = "/sound";

    };

};

overlays$ fdtdump lirc-rpi-overlay.dtb

/dts-v1/;

// magic:               0xd00dfeed

// totalsize:           0x594 (1428)

// off_dt_struct:       0x38

// off_dt_strings:      0x4b4

// off_mem_rsvmap:      0x28

// version:             17

// last_comp_version:   16

// boot_cpuid_phys:     0x0

// size_dt_strings:     0xe0

// size_dt_struct:      0x47c


/ {

    compatible = "brcm,bcm2708";

    fragment@0 {

        target-path = "/";

        __overlay__ {

            lirc_rpi {

                compatible = "rpi,lirc-rpi";

                pinctrl-names = "default";

                pinctrl-0 = <0x00000001>;

                status = "okay";

                rpi,sense = <0xffffffff>;

                rpi,softcarrier = <0x00000001>;

                rpi,invert = <0x00000000>;

                rpi,debug = <0x00000000>;

                linux,phandle = <0x00000002>;

                phandle = <0x00000002>;

            };

        };

    };

    fragment@1 {

        target = <0xdeadbeef>;

        __overlay__ {

            lirc_pins {

                brcm,pins = <0x00000011 0x00000084>;

                brcm,function = <0x00000001 0x00000092>;

                brcm,pull = <0x00000000 0x00000065>;

                linux,phandle = <0x00000001>;

                phandle = <0x00000001>;

            };

        };

    };

    __overrides__ {

        gpio_out_pin = <0x00000001 0x00000003 0x6272636d 0x00000010>;

        gpio_in_pin = <0x00000001 0x00000003 0x6272636d 0x00000010>;

        gpio_in_pull = <0x00000001 0x00000003 0x7270692c 0x00000016>;

        sense = <0x00000002 0x00000003 0x7270692c 0x30000000>;

        softcarrier = [00 00 00 02 72 70 69 2c 73 6f 66 74 63 61 72 72 69 65 72 3a 30 00];

        invert = [00 00 00 02 72 70 69 2c 69 6e 76 65 72 74 3a 30 00];

        debug = <0x00000002 0x00000002 0x735f5f00 0x2f667261>;

    };

    __symbols__ {

        lirc_rpi = "/fragment@0/__overlay__/lirc_rpi";

        lirc_pins = "/fragment@1/__overlay__/lirc_pins";

    };

    __fixups__ {

        gpio = "/fragment@1:target:0";

    };

    __local_fixups__ {

        fixup = "/fragment@0/__overlay__/lirc_rpi:pinctrl-0:0", "/__overrides__:gpio_out_pin:0", "/__overrides__:gpio_in_pin:0", "/__overrides__:gpio_in_pull:0", "/__overrides__:sense:0", "/__overrides__:softcarrier:0", "/__overrides__:invert:0", "/__overrides__:debug:0";

    };

}; 

Posted by 구차니
embeded/ARM2015. 4. 28. 10:00

jazelle 가속이 ARMv7 부터 사라진거 봐서는 의미가 없는거 같긴한데

Yes Dalvik makes Jazelle useless. The only question is was Jazelle useful to begin with or is it 90% marketing hype? A good JIT or AOT(ahead of Time) compiler tends to give much better performance than trying to use specialized instructions. The register based approach of Dalvik might be faster than a traditional java bytecode interpreter but if the difference in minor between that of an interpreter and that of a JIT. Hopefully one of the next versions of Android has a JIT.


It takes ~5-10 years to write a good virtual machine with state of the art garbage collectors and optimizers. Sun (and Microsoft) have spent those years. Google hasn't. Hopefully they will keep investing in it so that one day Android Java code isn't a 90% slower than it should be.

[링크 : http://stackoverflow.com/questions/1153076/does-android-castrate-the-arms-jazelle-technology] 


결론은.. 실제적으로 실패한 기술이려나?

There are (at least) 4 different ways of executing Java:


1. interpretation

2. direct hardware execution

3. JIT compilation

4. AOT compilation


In order to answer your question of whether an ARM core with Jazelle

would improve performance you first need to state what you are

currently using, which core and what speed. If you use an interpreter,

anything will give a good speedup.


Note there are 2 versions of Jazelle: DBX which executes byte codes

directly (various ARM9's and all ARM11's support this). This gives

around 4x speedup over interpretation and has no memory or startup

overheads. There is also an optimizer which can improve performance

at runtime. However rather than generating native instructions like a

JIT, it optimizes the bytecode itself.


Jazelle-RCT supports either JIT or AOT compilation into the Thumb-2EE

instruction set (Cortex-A8/Cortex-A9). This gives near native performance

but when using a JIT you get the usual startup and memory overheads

(although far less than when using x86 due to ARM's better code density).


[링크 : http://www.embeddedrelated.com/showthread/comp.arch.embedded/109371-1.php] 


[링크 : http://en.wikipedia.org/wiki/Jazelle]

[링크 : http://en.wikipedia.org/wiki/Ahead-of-time_compilation]

[링크 : http://en.wikipedia.org/wiki/Just-in-time_compilation]

'embeded > ARM' 카테고리의 다른 글

cortex-m 시리즈와 포화연산  (0) 2015.08.26
ARM926EJ / ARMv5TE  (0) 2015.07.28
ltib 패키지 요구사항  (0) 2015.04.13
jffs2 on sd card  (0) 2015.04.09
sd 메모리 카드 블럭 사이즈  (0) 2015.04.09
Posted by 구차니