105
V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze Presentation Manual

Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

Embed Size (px)

Citation preview

Page 1: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

V11.3

XUPV5 Development

Board

Embedded Linux on Xilinx

MicroBlaze

Presentation Manual

Page 2: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������$

&����� ����������� ��

������������ ������������� ������� ���� ��������� ��

�� �������������

�����������������'������

!��������������������%�� ����������())*+),

���������-������������.��� �

.�������� �

/��������'���� �/0�/���������'����������/

���������������%� ������� �����'� ��

1�����

�������������� ������

1��������� ����2�������

1���� �!��"������� ������� ����

Page 3: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� ��������� ��

�� ��� ����3

������������������������

��������� ���������4�.-�����5������6���������

������7��������4�.-�������������������������

������������� ��

�� ����

������� ��� ��0����'�������0�888

��������� ����0�������� ����0�888

�� �

���������� ��������0�������0������0�888

������������ ������������� ������� ���� ��������� ��

-������������

#�9������������

:�;0���������

<�� ��4���'0�1��������� ����2�������

��������������������4���'

:��������������������������������� �!��"����())=

�������������������������������

Page 4: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� ��������� ��

������������� �

>����%��

����������

��������� ��� �����

� ������������������0������������'� ������

������%����

����������'����

>�'����&8883

>�'����&�������3

;��%���

�� ����������������0���������������

�?������� �������������@�

������������ ������������� ������� ���� ��������� ��

;�A ����

#�������������������� ����

����������������� ������ ��� ��

��������� �������������������������������

>��'������� ����������������� �!��"

#��������������������������

'�������� �!��"�������� ������������������#B�������������

����������� ������

������ ���������'�� �

��������� ����

Page 5: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� ��������� �

�C������

;�� �������888�

!��� �4�.-�7����'�������

�� �����������������

�������������������������

!��� ���:����� ���������� ��������� �� ���

����% ��:���0�&�� ��0�888

!��� ����������������� �� ���

������������ ������������� ������� ���� ��������� �!

� �����%�#� �$5����'�6

$8$�&����� ����

$8(��������������#� ������

������������������

$8=�&����� ����������������

������������������������

$8*�-���� ��������������

�������������������������������

$8,�D�'����������1:�+&�

��������������

$8E�#�� ����������������

���������������������

$8F�������������

����������������������

Page 6: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� ��������� �"

� �����%�#� �(5���'������� ����6

(8$�&����� ���������#B������� �!��"

���������� ����������������������� ��

(8(�:���������'�������������������� ���

������!������"�������������

(8=�:��������� �����

������������������������"�����

(8*�;��:��������������

������������ ����"�#��"���

(8,�.����������������'

������������ ������������� ������� ���� ��������� ���

�����������������

��������������:��5�������6

:��;��,

�������<�>����������������,8)

������/ ����/0��������'��

!������������!+���:#�� ���

�������&���7��#B�$$8=

��������������������������

$(HOME)/petalinux

-���� �����������������

$(HOME)/xup-materials

Page 7: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� ��������� ���

�����������������

�������������� ����������G,%��$$)1�#��������� ����5�������6

��� �

(,E�� ��##<(

=(%����H!1�� � ��������<-������&�����=)������4�����

1'��=(��� �� �������������<;���

� ���-:��:���� ��4����� ������������ �������

&���� ��

�����0�<�(=(0���!0�888

!������������'�� ���

I������#�

I%���������#&�0�*��������������'�� ��

������������ ������������� ������� ���� ��������� ���

�������������=�$E))���������5�������6

���

E*��!�##<��#<-�

$E�!�I�������������

(��!�����������

&���� ��

�����0�<�(=(0���!0�888

!������������'�� ���

I������#�

I%���������#&�0�*��������������'�� ��

�����������������

Page 8: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� ��������� ���

�����������������

�:+��������������:��;��,

��!�����

#� ����������'���'������ �!��"�����

&�������������������������������������'��

��������

����������� ����������� �!��"

������������ ������������� ������� ���� ��������� ���

�����������������

������ ���

-������ ��C�����������������~/xup-materials/labs/labX.Y/resources

��� � ���������������������

1��������������� ���

:���������A ���������������������������������

~/xup-materials/labs/labX.Y/completed

��������0������������

����������������� �����������������������������

Page 9: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������&

�������������#� ������

������������ ������������� ���������������������������

'�( ����

)������������������������� ����

����������� �������������

����� ��� ���������� ���������

��������������������

���� ����������

)���������*����$+$,

�������������� �������������-������������������

������������-%��.���������������

����� �������������������-������������������������

Page 10: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ���������������������������

�� �*������,������/

0���������� �����'��������� ��

��-�����.������ ����.���� �������

� �������.��� ���1�����.����������������.�0�2

���������

�34.�5����.��0��.���2.��� �!��".�56�.�2�����.�+++

������������ ������������� ���������������������������

�� �*������,������/

#��������������

�������������

�������������

7������������2������7�%�#+8���#����

5���� ������ ��� ���������� ���������������

� ��������

#�� �������%9������������ �������%9��������%9����%9� ����

:��������������

Page 11: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������������

;<�1�����

���������������

5�����-�������������� ����=���������

������������ /

������

��������2����� .�+++

5���� ������

������������.���������.�;�0�.�+++

� ����������� ����� ���>

)��;<����( ���������;��

6� ������������

������������ ������������� ��������������������������!

?���� �������������

&@���5�����.�$AA$

B0C����������������� ���( �� ����������D�

E�������)������.� ���+��+�����

$AA&�������F+A@

$AAG�������$+F

$AA@�������$+&�

$AA4�������&+F

$AAA�������&+&

&FF$�������&+G

&FFH�������&+4

������&FFA�%�������&+4+H$� I0!�������-���J

Page 12: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������������"

?���� �������������

�������������

$AA@�������$+H+AG

����������%�34�� ��� �������*�43�,

$AA3�%�������&+F��

0!���1HAF

������2���������

������)���������� ������:��������"���

&FFA�%�������&+4+H$

9�&F��� ����� ��� ���

���������������� �����

�� �!��"���������������������������

������������ ������������� ��������������������������#

K���������

'�������

�+ +"

��%���(��������*F.$.&,

�%�����������

���L������

����L����������%�������� ����� ��� ��������������

"�%����

0��&+4��

������������������� ������ ����������1��������������

������������&+M1&+3��������/

������ �����

Page 13: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������������$

5����� ������������� ���

�������� ������

�����%�� ���

������

2������.���-�����.������ �.�+++�

K��

����������������

?��-�

2��.����

���.�������� ������.�0'

I0!�������-���J

������������ ������������� ����������������������������

������K���5 ��� ���%�'���-

I0!�������-���J

Page 14: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ����������������������������

����������� ��� ���%)��� ���� ���������

2���� ����-������� ������������

6=������� �

��� .�0'

�� �����������

)����������2����� ������-�������������� ���� ���������

+�+�malloc()������2����� � ���

�����������������������

������������ ����� ������� �-������������������������

������������ ������������� ����������������������������

������K���5 ��� ���%)��N������:���� ���

5���� �������������������� ����5�0

�� ���� ��� ����� ����� �����������=������� ��������

# ���������� ������������������������

��H�����5)5�����

:5)H&������!����

�:���������-��650#�

+++

I0!�������-���J

Page 15: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ����������������������������

������K���5 ��� ���%�)����� �����

)�������������� ��

��

��������� ���

open(), close(), read(), write(),

seek()+++

��� �

� �%� ����������� ������� �%�������� �

��

�� ��������

�� � ������

������������ ������������� ����������������������������

������K���5 ��� ���%)����� �����

5 ��������� �

���������� ���������������������� ���������� �����

/dev/ttyS0 *���������"�,

/dev/hda���*�����0#������,

��-������ ��� ����� ����

����� ������� �������������

Page 16: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ���������������������������

������K���5 ��� ���%)����� �����

#�� � �����

������������������������ ��1��� �1��

������������� ������������ ���������� ����.�+�

))O.���!.�0&2.���0.������

������������������� ������������� ��� ����� �

������������ ������������� ���������������������������!

����������� ��� ���%�� �����������

)��������� ��������������������� ��������-�������

�������������

��� ����

���� ���� ������

� ��� � ������

��-��� ������

2����� �fork()�����������

�)�������������������������

��-%������ �������-�� ����

����� �������� ����������2���� ����

Page 17: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ���������������������������"

����������2�����

�������������������H34�� ��� ��

?��-����� ���������������*���,

N���������

��� ���� ����

������

������� ������2.��0��.���562.�P

$AA3�E��2������������

K�����5�����-��������#+�8���#��������������������������#5�*�43�%�����,

������������ ������������� ���������������������������#

�2��������(��#���� �

<�����

<����� ���� ����

<������������ �1�����������������

<��fork()

0���� ������

<����� ���� �����E������� ���� �����1-����� -�

2�����������vfork()�������

fork()/exec()�Q vfork()/ exec()

:������"������ ��������� �

���������� ������� ������ ��� �����

Page 18: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ���������������������������$

�������������������������/

2���% ����������

��������������������.������������

���������������������������������������

�������������������������

���%������������ ���� ������

����������������������������������� �

2���%�������� �����1���1����� ��

!���������� ��

�������������

������-��

������������ ������������� ����������������������������

'������ �����

)������ �������� ���������

�������*2.�2RR.�+++,

������.������*��������,

������

�������������������

;22���������� �������������������

;<��2������2��� ����

gcc, as, ld, gdb

Page 19: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ����������������������������

'������ �����

�����%�� ��� ����� ����

2�������� ���������������������������������

����������������������2����� .�����������������������

)-���������������

�2������*������,

microblaze-uclinux-gcc�*-as, -ld, -gdb.�+++,

������*���,�

mb-linux-gcc�*+++,

������������ ������������� ����������������������������

:������� �

�����������

����S11---+�����(�����+ ��1��� �14FFF

����������������

����S11---+���+ ��1�����-���1�����1���� 1�%�����%���1

����� ������

��������� �<-��*---+�-�+��,

K���)���*---+������+��,�

������8�����*---+�����(�����+ ��,

������#�� ��*---+�������� �+ ��,�

Page 20: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ����������������������������

����$+$�%�5����������

�����������������������������������

'������������� �����

��-%����������.������������=��

�����.�����

2�����-����������

��

$@%&F��������

Page 21: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������&

'����� ����������������

������������ ������������� ������� ���� �� ���������

(�) ����

*������������

���� ���������������������������������

��� ����� ���

���� �����

��������� ���� �����������

*���������� ���� ����

���������������������� ������������� ���

*����������������� ����+���� �!��"����������

Page 22: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ���������

'�������������

#��������+��������������������� �

���,��������������

���� ����

���+���� �������

-��������� � �+�������� ���

. ��������� ����������

/������������� �

����������0

������������ ������������� ������� ���� �� ���������

'����� ������������

1��%��%��������������������

���,���� ,�������� ��������� �

���� �����

���+���� �������

���������!��������

����� �����������������������

���������� ���������

���������(�����#� ��������������2,,+++3��������3 ��,��� �,�� ���������,��������

Page 23: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ���������

'����� ������������

�� �����

4����� ���� ,�� ����

5���%������� ������ ����

1��������%���������������� � �������6��

���������� � ��������

petalinux-* �����

7��� �����

�� ���8������� ��� ������

1��������������$3$�9# ���:;;<=

������������ ������������� ������� ���� �� ���������

���������78������

���������������� �������+���������

7�/������������������>��(���?� ������

�������������������� �����������

(����������������(-���������������+����������������

:6!�71�

:6/"�>��

�������������9����?6!��=

������������

'��������#-�

>���� �$$3&

Page 24: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ���������

*�����������������+

/��+�� ����������������������

����������������#-���������+

�����+�� �����������

�� ��������������

>����������@������ ������������ �����������

�����������+�%�� ��� �������������������+�� �����������

������������ ������������� ������� ���� �� ���������

*�����������������+

����+��������

!�������������������� ��������

!���

>�������4�61

#�+�������������

#���

������������94�61� ������������������=

Page 25: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ��������

����������� ���

��� %����������������

>�������������������

*���������� ��

hardware

'�� ������ @��� ��������

software

���@�������@������ �������

tools

6>>�� @�petalinux-*�

����������

������������ ������������� ������� ���� �� ����������

���������!��� ��%�6�������� ����+��

*����������� ���

$ source settings.sh���9����,�����������=

$ source settings.csh�9>������,�� ���=

1������������������ ������

����$PETALINUX�����������������

petalinux-*������ ��������+�+���������

����+������������������������������������������ ����

���������������� �������

������+����� ����+��� ������ �������

Page 26: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����������

���������!��� ��%�� ��������������

���� ����� �����[user@host petalinux-dist] $ make menuconfig

������������ ������������� ������� ���� �� ����������

���������!��� ��%�� ��������������

>�����A.���,���� ���� ����A

������������������,�������&�$B;;%7�1%���%��$$&

#��������������������@������ ������@�� �����

Page 27: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����������

���������!��� ��%!�������������������

!��������[user@host petalinux-dist] $ make

!��������������+������ ���

���

������

����� ������

�%�������������

������������ ������

petalinux-dist/images���������� �� �

����� ��������/tftpboot������+������������

�����

������������ ������������� ������� ���� �� ����������

���������!��� ��%!��������������+�

>�����������+������������ �� �[user@host ...]$ cd hardware/reference-designs/...

!�����������+��[user@host ...]$ xps -nw system.xmp

XPS% run init_bram

>����implementation/download.bit

>��������������/���������#-�6�'������9���=�

Page 28: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����������

���������!��� ��%���������������

petalinux-boot-prebuilt

�������� ��� ���������������� ������������

petalinux-jtag-boot

����������C*16� ���������+�����������������+������

petalinux-new-platform

����+������������������������93�3��+������=

petalinux-new-app

����+������ ������ ����������������

petalinux-new-module

�������������������������������

������������ ������������� ������� ���� �� ����������

1��������������������

� ��������!��>������9�� �!��"��������=

>��� ���������������������

+++3� ���+���3 ��

���������������������������

��D;$@��&�$E;;@��&#��$E;;1

7���� ����+�

#�+���������������

������� ���������6����

���2,,���3������3 ��

�� �!��"�6>>����� ����

!�� ������������ ������� ����+����������������

>������������������ ���������

Page 29: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����������

4����7��� �

���������(�����#� ���������

����2,,+++3��������3 ��,��� �,�� ���������

#� ���������

*�������

�� �!��"�������������������

�� ������ ����

���������������

6������ ���� ������� %�������������

������������F��)�����G��3�83��3��H�+������� �����F���� ����� ����"%� �����H

������������ ������������� ������� ���� �� ����������

����$3:�%�!�����������������+�����

������������ �����

!����� ����+����������

��+%�������

'����������������8��

!�����+���������������+��

&;%D?��������

Page 30: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������&

'���� ���������������������������

������������ ������������� ������������ ����� �����������������

(�) ����

*������������

�������������� ������������������������ ����

����������� ���% ��������������� ���%��������

*���������� ���� ����

��������������� ������������ �������������

���%�������������������������������� �����

������������������������������

*������������������ �� �������������+������+���������������������� �!��"�

Page 31: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����� �����������������

�������������'���� ������

'���� ���������������%���

���%��������� ��������������

,������� ��������������� ���� ����

��� ������� �����������-�./(-�000

�����������������������������������������������������

����������������������-��������������������������

���% ����������

������������������������������� �!��"

+������������������ ������1

������������ ������������� ������������ ����� �����������������

2���% �����������!��� �

#��������

�������� ������� ��� ��/� ����������������� �������������������

3����� �����������40�0��5678

��������+�� �������������������� �!��"1

[user@host]$ gcc -o hello hello.c[user@host]$ ./helloHello, world!

# ./hello./hello: cannot execute binary file

Page 32: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����� ����������������

2���% �����������!��� �

��������� ������������������ ���� ������

4��� �������-���������� �!��"����� 8

microblaze-uclinux-gcc �4�����8

mb-linux-gcc�4���8

# ./hello (target)

Hello, world!

[user@host]$ microblaze-uclinux-gcc -o hello \ hello.c[user@host]$ ./hellobash: ./hello: cannot execute binary file

������������ ������������� ������������ ����� ����������������!

2���% �����������!��� �

�����������mb-gcc1

����������4�����/���+�8��� �!��"�2� �����

���������������������������2�������

�������������������������������

Page 33: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����� ����������������"

.��������������� ������

(�����������

������������������/usr/bin-�/usr/local/bin��

���������4���������������������������8

�� � ���% ����������� �������������� ��������������

petalinux-dist/romfs/

!�������� ��������� �������������������� ����������

[user@host] make all install

������������ ������������� ������������ ����� ����������������#

'���� ������������������

������������� ������

�����-���������-�+����-���+�����-��� �����-�000

��������

petalinux-dist/user/���� �

�� ������������ �����

�������� ��� �����������������������������

��%������������ ������

2���������������petalinux-dist/user-��

���petalinux-new-app � ������� �����

software/user-apps

Page 34: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����� ����������������$

petalinux-new-app

2����������������+��������� �����

�� �����Makefile���� ���� ������������������

9�� ���������������������

[user@host software]$ petalinux-new-app mytest

New application template successfully created in software/user-apps/mytestSee mytest/README for what to do next.

[user@host mytest]$ make all romfs

������������ ������������� ������������ ����� ������������������

9������� �������� �����

*���,��

!���������������������� ������

9���������� ��������

9�����������+�������+�����

�������������-������ ����������� ������

*���� �� ��������+

����+������������+��������������� �����

# /bin/mytestHello, PetaLinux World!cmdline args:./mytest

Page 35: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����� ������������������

#�������

*���������+�����������

.��� �������������������������������� ��

�������/� �������� �

��������������������:3������������� �!��"/����������

%���������������� ������������������������������������������� �������� ������������ ������������������%

&'����('���)��*�%+����, '�&����'-%���$"$�

������������ ������������� ������������ ����� ������������������

2���%��������

.��microblaze-uclinux-gdb�����������

����-���+�������� ����������� ������������������������1

;���*2�/.���������������������

����

$ microblaze-uclinux-gdb \ /path/to/mytest.gdb

�4���� � ��� ������� �!��"�.��

�����-�����$<5&8

����

#gdbserver host:1234 /bin/mytest

Page 36: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����� ������������������

2���%��������

�����������.gdb����1

mytest������������ ����������

������������������� ���������������

mytest.gdb���������=������ ���������������

� �����

������������ �microblaze-uclinux-gdb

������������ ������������� ������������ ����� ������������������

������������������%�(������� �!��"

# gdbserver host:1234 /bin/mytest foo barProcess /bin/mytest created; pid = 676Listening on port 1234

������������� ����������

Remote debugging from host 192.168.0.20

��� �����������������������������

Hello, PetaLinux World!cmdline args:/bin/mytestfoobar

Child exited with retcode = 0

Child exited with status 0GDBserver exiting#

Page 37: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����� �����������������

������������������%(���������

(���=�������>��*������ ������4���������������������8�����

[user@host mytest] $ microblaze-uclinux-gdb mytest.gdb

������������ ������������� ������������ ����� �����������������!

������������������%(���������

#���������������������main()

2�����+�������������-������������ �

(����������������� �!��"� �����

�����������������

$ microblaze-uclinux-gdb -nw mytest.gdb

Page 38: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����� �����������������"

=����9��� �

���������(�����#� ����������?�#�����������'���� ������

����>//+++0��������0 ��/��� �/�� ���������/��������/������/#�������/��'���� ������

:3��������������

����>//+++0���0��/����+�/���/�� ���������/

������������ ������������� ������������ ����� �����������������#

����$05�%�'���� �����������������������

���petalinux-new-app

����� ����������� ��

2�����������������

!�����+�����

��������+���� ���%��������

&@��������

Page 39: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������&

'(�)*��+�,�����

������������ ������������� ������������� ������

-�. ����

'������������

���� ���,��� ��������������������������

��,���,���������� ����������������������� ��

����� ����������������������� �� ���

����������,��������� ������� �!��")������

'���������� ���� ����

������+/����������������������� ��

������������������������������,����

������������,�%����������� ������

Page 40: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������� �����

!��� �'(�)*�

�� �!��"���������������������� ������������'(�)*����� �

����������� �������� �����������,����������ping

ftp/tftp

http

telnet/telnetd

�� ����� �������� ������,������� �����������

tcpdump, wireshark

������������ ������������� ������������� �����!

!��� �'(�)*�

-�����,����������

wget

ntpclient

ppp

��������,����������

iwconfig, iwspy, iwpriv0�111

����������ssh/sshd

� ��� ������

������0���,���0�111�

Page 41: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������� ������

��%����������� ������

������

boa�%%������%���������������

thttpd�%%���� )����)�����������������

fnord�%%������,�������������

���2���� ������

��%��������� �������

(������3��,� �*���� �4(3*5�

������������ ����������� ������������ ����������,��,��������������������0�1�1�,����1

���������6�������4�6�5

������������ ������������� ������������� �����"

��%����������� ������

+�,������������� �

������2 ���������42�5�

+�,���� ��� �������� �

(��������� �

�����������

7�*��

�� �!��"�8�2�����9�7��������:

*������������ �

������������)������) �����)�����

Page 42: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������� �����#

+�,��%������2���� ������

���������� ��������

'(�)*����� ��� ����������

�#������������������

+�,������ ��� �������������������

���� �����������

������������ ������������� ������������� �����$

;����������������������

����,��������

���������������������

(3*%�����������,�����������

������������������ �������

�����<�����

6��,��������

�������!�*�/���������� ����������������/�����������/�32� ���������������

�������/�32� ��������������������������������������������� ���

��)��,�����������������/�32���������

Page 43: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������� �����%

�����#�������

;��������� ��������������

gdbserver���������������

mb-linux-gdb���������������

������ �������'(�)*�

���������������� ��� ����

������������ ������������� ������������� �������

�����#�������

+/��=���,�������� ���

������,��������������� ����� ���������,��

����������������� �� ��������

�������������

*������� �����)���)������� ��

6-�'$ make (edit)

$ make

'2;3�'�# ./my-app(test)

# ./my-app

Page 44: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������� �������

���������������+�,�����

�������,������ �������������

������� �������������������

(�����������������,�����

(���������,�������

Linux Kernel Configuration ->

Networking ->

Networking options ->

Linux Kernel Configuration ->

Device Drivers ->

Network device support ->

������������ ������������� ������������� �������

��������+�,���#�� �

����������������������*�� ��

����>���

$?)$??������

������� ��� ��0���,���� �����

���#�2

'�%����������4��>��� 5

$?)$??)$???

� ���%�����#�2

@���@� �����7���A)&�/���������

@����@� ��������������

#�� ��������������������������

Page 45: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������� ������

��������+�,���#�� �

�� �!��"� �������� �������������2()�6B� ������

1�1���������*��$CD?

���� �� ��� �%���������������������

���� ������<���

*;E�

������������

������������ ������������� ������������� ������!

/����;��� �

��������,������� ��� ���

@���������������������F��0�G���@0�!��������(����0�-�;��� ����0�H??&�

+�,������ ������

@������#�� �#���0�G���@0�(����0�;����������F���%6������0�-�;��� ����0�H??&

����������(��� ��������������������

����I))�.1��)����)����)

��� ������������

+�����

����I)),,,1������1��

Page 46: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������� �������

����$1A

��������,������ �������������������

;������������������

/�������������/'�

+/��������

�������,�%�������,�%���������� ������

G?��������

Page 47: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������&

#�� ������������������������

������������ ������������� ��������������������� ������� �����

'�( ����

)������������

!��� � �� ������������������� ���������

)��*����������� *� �� ���������+������������

)�������������������������������������

)�� �� �����������,'�-����� �,'.��������+��

)���������� ���� ����

/���������������������

,���������������� ���� ����

������������������������� �!��"

Page 48: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� �����

� ���� �����������

#�� ��������������������+�������� ��+�������� �� ������

#�� �������������������� ������

#����������0�#�10�22

,�����������1�,�-read(), write()0�222.

#�� ���������������������

��+��� ��� ����-�34&0���/0��� �!��"222.

��+��������� � ��������� ����

����������� ������� �

��������������� �

�������������� ��������

������������ ������������� ��������������������� ������� ����

� ���� �����������

5�+����+����+�+������� ���������������� ����-�������������6,78.9

��������������%�� �����0�2�2��/,

'��:�����/,� ��������������� ������������ ��

1���������� ������������,78�

#����:� ��������������� ����������

� ���%��%/������������ �� ��� ������

��������� ����������� ����������

��������:������������

5�+��������������������������� ������ ��������������9

Page 49: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� ����!

� ���� �����������

)��platform_device

;�� ����6��� ��� ����

/����������������������,78�����������

'����������� %�� ��� �����

�������������� ��� ���� ���� ���

���� �����������������������

<��������������������� ���������+��

platform_device��� �����0�����

�������������� ���� ��� ��

������������ ������������� ��������������������� ������� �����

)��platform_device

1�� �� ������������� �������������

static struct platform_device my_device={ .name = "uartlite", .id = 0, .dev.platform_data = NULL, .num_resources = 2, .resource = (struct resource[]) { {.start = 0xbf000000, .end = 0xbf000fff; .flags = IORESOURCE_MEM }, {.start = 3, .end = 3, .flags = IORESOURCE_IRQ, }}...platform_device_register(&my_device);

Page 50: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� ����"

)��platform_device

,�������� ��������������������

static struct platform_driver ulite_platform_driver = { .probe = ulite_probe, .remove = ulite_remove, .driver = { .owner = THIS_MODULE, .name = "uartlite", },};

int __init ulite_init(void){ ... ret = platform_driver_register(&ulite_platform_driver);}

������������ ������������� ��������������������� ������� ����#

)��platform_device

,�������� �������� �����

static int __devinit ulite_probe(struct platform_device *pdev){ struct resource *res, *res2; struct uart_port *port;

...

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);

res2 = platform_get_resource(pdev, IORESOURCE_IRQ, 0); ...}

Page 51: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� ����$

)��platform_device

'���+

� ������ ���������������� ��� �����platform_device_register()�+�������platform_device���( �

#�� �������������������� �����platform_driver_register() +������

platform_driver���( �

)��������� ������.name�����0����� ����������������������.probe()���� ����

)��������2probe()���� �����:������������������ ��������������������������,78�����������

������������ ������������� ��������������������� ������� ������

1������� �!����������

������+�������������������platform_device�����������9�

���� ���9

���� � ���������������������������/����������-17�0�!�� ����0�22.

����������������� ���� ��������������� �!��"�

� �� ���� �������+�������������

Page 52: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� ������

1������� �!����������

���������1������� �!���������-����% �����.

��������#<�����+��� ��������������������������������

� ������������������+��� ���

�������� �!��������

:� �����������������

�������������%�����������

��������microblaze_0/libsrc/petalinux_v1.00.b/Kconfig.auto������+����( ���

������������ ������������� ��������������������� ������� ������

1������� �!����������

=���������������������������������linux-2.6.x/arch/microblaze/platform/common/xuartlite.c

#define XILINX_UARTLITE_PLATFORM_INITIALISER(n) ...

.resource = (struct resource[]) { { .start = CONFIG_XILINX_UARTLITE_##n##_BASEADDR, .end = CONFIG_XILINX_UARTLITE_##n##_HIGHADDR, .flags = IORESOURCE_MEM},{ .start = CONFIG_XILINX_UARTLITE_##n##_IRQ, .end = CONFIG_XILINX_UARTLITE_##n##_IRQ, .flags = IORESOURCE_IRQ,}...

Page 53: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� ������

������������������

#�� ������ ���������� ��� ���� ���� ��� ����������������

<����������������� ���� ��������� ��������

#��������������� ���������.ko����

������������������+����insmod

7�����+����rmmod

# insmod mydriver.ko...# rmmod mydriver...

������������ ������������� ��������������������� ������� �����

�������������������>����� �����

���lsmod� ������������������������������

?����� @� ��������+����+���� � �����

�� ������������������� �����

,������������������������

/������ �rmmod�+�������� ��������"�

# lsmodModule Size Used bymydriver 30764 1

Page 54: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� �����!

�������������������%���� �����������

�������� ������ ����������������������������

����������������������������������

,��������������������� ����0�2�2

Kernel config -> Loadable module support ->

[*] Enable loadable module support

<*> Xilinx GPIO Support

<M> Xilinx GPIO Support

������������ ������������� ��������������������� ������� ������

�������������������%����������������

�������������� ���������������� ����

<��� ������������+��������+����������������� ����������� �

#������� ��� �� ������������

'�� ������������������:���

��������������������� �����

/����� � ��������������

�����% ����+������� %��������� ����

'�� �� ���������-������ .

'�� �� �����������

��������������������������

Page 55: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� �����"

�������������������%petalinux-new-module

������������������� ������� �����������������

petalinux-new-module

1���+��:�� ���������������+��������������������

����������������������

������������ ������������� ��������������������� ������� �����#

����� �,'

/������ ����������������������������

A�B�����0�������222

����������������������� �� ��� ��������0��������������

���������������0����%������0������

2�2�������������� ��������������������������� �

A�������� ���������������

*/�����,�(����� ���� ����+������������ 9*

Page 56: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� �����$

����� �,'

,������������������ �� ������� ��� �������

��������������0����������������:����������

�����������0���������������������0������������ �����+��� ��

������������� ������������

�������������������� ����������

������������������������

fd=open("/dev/mem",O_RDWR);void *ptr=mmap(base_address, size, \ PROT_READ|PROT_WRITE,MAP_FIXED|MAP_PRIVATE, fd, 0);

ptr=(void *)base_address;

������������ ������������� ��������������������� ������� ������

����� �,'�%����,'����+��

=�����������0��������� �,'�-�,'.�1�,�+��������� �

linux-2.6.x/drivers/uio

����+�� ���0����������������������������� ���� �����

���� ����������������� ����������

�C ���������%�������

������,'����

�������������������

1������������+������������������

Page 57: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� ������

����� �,'�%��������

��������platform_device���������

.probe()���� ����

������������������ ������

������������struct uio_info

����uio_register_device()

.name

.version

.mem[] -�� ������������������� �.

.irq

.handler() -������������������������� ����.

������������ ������������� ��������������������� ������� ������

void *ptr=mmap(NULL, size, PROT_READ|PROT_WRITE,MAP_SHARED, fd, n * PAGE_SIZE);

����� �,'�%�������� ���������

'������������

������������� ��� /sys/class/uio/uioX�

/� ��������������name�

,�������� ��

��� ��������������� �

���������������������-��� ��� ��� .

����� ���+������� ���������� ��� ������������+�

fd=open("/dev/uioX",O_RDWR);

Page 58: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� ������

����� �,'�%���������������

�������������

,�����������-.���������� ������������������������� ��������� ���

�����

/�������� �������������� ����

O_NONBLOCK������������-.� ���

select() � ���� ���������������� ����

��������� ���� �����������,78�� ��

1 ��������������������������������� �������

read(fd, &num_irqs, sizeof(num_irqs));

������������ ������������� ��������������������� ������� �����

����� �,'�%�������� ���

��

;���������������� ����

��������� ������������������

�� ��������������������� ��������+������������

�,'������������������ ������

���������+������������������%����������

5������+��������������������� ��������� �����

����������������� ��

Page 59: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� �����!

����� �,'�%�������� ���

/���

,�����������������������

���( ����������������������� �

A������������#�1���6��������� ���� ��

'��

� �����������;����� ������������

������������ ������������� ��������������������� ������� ������

=����7��� �

#�� �#���

*������#�� �#���*0�3���0�/���0�7����������<���%5�����0�'�7���

�,'

��������� �A+����� �

����D66�+�2��61�� ��6E3EFGF6

Page 60: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ��������������������� ������� �����"

����$2F

/��������������������

!�������� ���

������������������������

HF�������

Page 61: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������&

�����������'������%��������������������(������������)������

������������ ������������� ������������ ����

*�+ ����

,������������

!��� �������������-����� ���������

.������������������������� ��������������

�������������������� �!��"�'��

/� ������� ���������������������

,���������� ���� ����

���������� ���������������������������������

��� ������� ������ ����������� ���������

Page 62: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����

!� ������

��� ���������������0���1

2��������������

3������� ��� ������������������������ �� ���

3�������������������������

3 ������ �����

����������� ������������������������������ ���4*�� ���

3���-��*����������������� ������������������� ���� �

'�������������� ���� ��

3���-�� �� %��%-�����������������������

,���������-����������� �0������������-��1

������������ ������������� ������������ ����

2���������

4�������������� �� ���(������������ ����������������������� ����������������� � �������� �� ������ 5��

64���� ���� �.,'�����"��(�����788---5� ����"��5 ��8��� ��8��-8$99$:9;

Page 63: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����

!� �������%�'���������������

�������������� ��������-������������������

�'����������� �������� ����������'������ ��������

��������������

������ ���� ����

����� �������� ���� ���-����� -��%��� ����<

�� ������� ������� ������48*���� ������������

�������������

��� ������������� ������������

����� ��� ������������������� ������������� ��

������������ ������������� ������������ ���

=�����

3������������������� �������������-��������� ������������������������(� �������������������������5

64���� ���� �.,'�����"��(�����788---5� ����"��5 ��8��� ��8��-8$99$:9;

Page 64: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����

#������������'�����

#� ��� ���������-�� ���������������������������������������

�����������<

3���������������(�������>������-� >�-����������� �������������������� �� �

��������������������������� ������������� ����(����������������

������������������������������������

��������������� ������8-��� ���������� ����

������������ ������������� ������������ ���!

�� �!��"��������

���������������� ��&599�0 ������������������1

������ ���� ������'?9@������ ��� ���

,���� ���������������������0�����A���B1

������0������������� �����1

��� �����0��� ���� �������� 1

�������0��� ������������������������1�

������������������ �!��"����-��� ���������

BEGIN microblaze... PARAMETER C_USE_MMU = 3 PARAMETER C_MMU_ZONES = 2...END

Page 65: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ ����

����������������

������������%���������������C���� �:99D

:5E5��������� (�������������������������:99D

/�������������)�������������

�� �!��"%�������������-������ ����

Mb-linux-*, ������������������ �0�'��� ����

�����1

����������������� ��� �����������������

������������ ������������� ������������ �����

����������������

������������� �������� �����������������������������

�������������������CONFIG_MMU

�������� ������)���

���-m�����������petalinux-new-platform����

�����������������

Page 66: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������ �����

������������

F�-����� ��G

���� ���������

$99%:99H���"������

���/�I3����-������-��������������������

������ �

���������� ���� ��� �������-�� �������

,�!�(� � �������(�555�

���� ����3.�J��������������$9�� �������-�� �������������

3���������:99J

4� ������������������

����������$5$����%���

������������ ������������� ������������ �����

����$5E�%����������(��������������

!�����������0�����1�����

'�������� ����-������������ ��

. �������/�I3�-�����%�����������������

!�������������� �����������������

��+� �����������������

, ���� �������� ���

?@�������

Page 67: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������&

'����� ����������������� �!��"������#(

������������ ������������� ������� ���� �� ����� �������������

)����� ������

������� � �� ����������������*�����

�����������������������������

������������������������ ������

�������������������

+�*���������������������������*�����

����������������� ���%��%,����������*��������� �!��"�,��

-�*���� ����������% ���������*��� ����

-�*���� ����� ���������*�

.����� �*� ���������������������� ���������*��*����������������

Page 68: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����� ������������

/�0 ����

)������������

!��� ������#(����*�����!���� ����!���������

��0�����*���� ������� �!��"�� ����

�� �!��"�� ��� ����������

( ������������ ��

)���������� ���� ����

!������������ �!��"�� ��������� �� ��*����!���� ����!����

,��������������� �!��"����������������

!��������������������������������� ���

������������ ������������� ������� ���� �� ����� ������������!

��������������)����.��*

1������2

Page 69: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����� ������������"

��������������)����.��*

)���������#��������(���3�#(4��� ����

������������ ���������XPS

��������� �����������BSB

,�����5'��������'����"��

�������� ����� ���� � XMD

�������� ���������� ���� � PlatGen

������� ���������� ���� � LibGen

������������������������6�SimGen

7+������*����������������

�� ����'�8�#�������'�8�#� ���������

������7�'����������� ����������������������#(������

'�������*������9��������������������������� � ����� ����������

������������ ������������� ������� ���� �� ����� ������������#

��������������)����.��*

������������ ���������������������� �� ������� ����

���$%�����&

Page 70: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����� ������������'

:�������������'�

�#(� ����������������������'�� ��

��*����$XILINX_EDK/hw/XilinxProcessorIP/pcores

��*������������0�������*�������������������

�� �!��"�,��

)��8�'������,������8���� �,������

!���������� ��

PLB�%������������% ������� 5����������

OPB�%�������� 5����������8���*��� ���4�

FSL�%���������.'./%��������� ���� ��� �����

���� ������-�

������������ ������������� ������� ���� �� ����� ������������(

)���� �!��"�,��

; ��� ��

����� �<$%����:'�,�3�����������'�������-���� ��������������#��4

<$���<$�����������������������

�����������;���

��������5���8����������8������� ����

���������.��8����

���������-��� ������

������8������� �"�8���������� ��8����������3���4

Page 71: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����� ������������)

)���� �!��"�,��

; ��� ���3 �������4

/���������������������"������ �������������� � ��

=>� ��������=>(� ��3.�7;������ �������4

/�����������*������

,���������������������*�����������

!������������*�� �������������

;����������

������������3<������������8�������4

������ ����������3?������������4�

������������ ������������� ������� ���� �� ����� ��������������

)���� �!��"�,���% �������� �����

��������%,���������������� ����������� ������������;��

; ����������� ��������������

,�������������������

�� �������������,�������

������ �����8��8��rd=op(ra,rb)

����������������� ������� ��� �

����,���

������

:@������ ���� ������������

Page 72: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����� ��������������

)���� �!��"�,���% �������� �����

�� �!��"����������� % ������ ��� ���������

������������� ���������������8��������

;���� � ��� �������� ��

,��� �������.�������3�������*���������4�

������������ ������������� ������� ���� �� ����� ��������������

������'��,���%���� �'���� �

)�������������� �,�������3���,4

�#:;�8�##:�����##:$

������A�����

,��� � �� ��� �

������ �������

�� ��-�� ��� �����

��������8�BBB

,������������������� �� ���

���������� �,�������3���C� �C� 4

�:;�����������.����

������>���������,��

Page 73: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����� �������������

������'��,���%� ����'������ ��

'������,�������3���C'+),4

������<$������� ������

�������������������������

����� �� �������@���

��������������3���C)'��:4

��5��*�����

������*�� ������

����%����8���%����8������������

��������������

���� �� ���� �� ������������������� ����

������������ ������������� ������� ���� �� ����� �������������!

������'��,���%'5/

7����������'/�3���C7�'/4������*�� �������������<$������� �

�%���������5������5������� �����

��������':D���� ������������

����������3���C��;,�')�4�3EEE4������&F5&FF�������;,�

)�%���������3��C)��;,4�3EEE4&F5&FF5&FFF�������;,

������ ��������� ����� � ���������� ��� �

��� �����'8�'$,8�BBB

Page 74: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����� �������������"

!���'������ ���%��!�����/�!

�� ������ ���!���3��!4

/�% ������� 5����������

<$5=>����������8�<$5=>5&$A����������3�����������5*��� ������4

+������������������� �!��"�� �����3������*�,����G���>5?%.����� �4

/�% �����������!���3/�!4

��*������� ���� 5����������

������� �������� ������ �!��"

��*����������3����� �������� ���4

������������ ������������� ������� ���� �� ����� �������������#

!���'������ ���%.��

.����������������3.��4<$%����*���.'./%�����������������

,����������.'./������3&��� ����<$(���4�

� � ������������� � �������������

�����3*��4����������3��4�����

#� �� ��� ���������� �!��"�,��������&=�����5�������������

������ ���������5����.�����������������

/����������� ������������

7������������������������ ������#��8�G���8BBB

.��%�������������� ����� �� ���

,������� � ��� ������ ������

Page 75: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����� �������������'

;�) �� ����� �!��"�� ���

1������2

������������ ������������� ������� ���� �� ����� �������������(

!���� ����!����

�#(���"�������������������� ���� ������������� �����������������

�������������������������8������������������

������� ���������������������

,��������������� ��� ������������%����'/

7�'/������#5�*�� ��

����

��� �3�#:;�8�##:8�.����8��:;�4

� ���;,�8�BBB

Page 76: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����� �������������)

!���� ����!����

;���%��������������� ���������

�������

7������������*���������.����������������������*������������ ���!�!��������������8��������!�!

������������ ������������� ������� ���� �� ����� ��������������

!���� ����!����

Page 77: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����� ��������������

!�!�����������������

!�!����� ���H?I�������*� �����������% ������� ���

;��*��*����@��������%!�!;����������������

,����������,��

�� ������������������%������!��

;��������%���������� �������������#(���0 �

������ ��0�� �����*�������������������petalinux-new-platform

petalinux-copy-autoconfig

��*����������%� �� ��!�!�%J����������������������

������������ ������������� ������� ���� �� ����� ��������������

.����:��� �

��������#(��� ���������

�������:�� �#����������;���� ������+���

Page 78: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ���� �� ����� �������������

����$B&�%�!���� ����!���������������!��������� �� �

,������!�!����*����������<��&=FF�����

�������#(� ����������'�

;������������!���������

,������*�����������������

!��������-�

!��������������� ���

!���K!���" �# ����� ��� ��$� � ���� �� �% �� �� ���� ������ �&� ��� ������ �# ����� &��� ��� ������ �'��� �&� ��� �������

Page 79: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������$

&������'��(��#������������)���� ���

������������ ������������� ������� ������������� �� �� ��! �"��� ��

*�+ ����

,������������� ��������� ������������������������������� ���������(�

��!�����-�������� ��� ���

�#.�/&��0)�����������/���"��

�#.������������ ���� �������� ��

)��&�����������������!���-�� �������������1!-�2

,���������� ���� ����,��&��0)��������������"��������!�����-��� ��

&���1�� �� 2��������� ������������

3������������� �����������������'�

Page 80: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ������������� �� �� ��! �"��� �#

&������'��(�

,�������(� � ��������������-�43

, �� ��� ������ �����%������

����������������%��

��%������ �����

������)*������ �

��������� ���� ������������

56����������

577���������� ������

,�������������� �����

#��������� ��� �������������������������������� �������

������������ ������������� ������� ������������� �� �� ��! �"��� �$

&������'��(�%&���������� ����

��� ��������� � �����

���%����������

���� ��������

������������������)*���� ������ � �����

���%����������

����(������������

� ���� ������-�43����������� �/ ����������/���������� ���

�� �!��"0�����������������������0 �����������

Page 81: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ������������� �� �� ��! �"��� �%

!���������� ���%-���������!�������

-������� ������8���������-)-*� ��� ����

�� ��&��� ��� ����

4������� ��� ���%� ������� ������

'��������(����� ���������� ���

&������������������

&'��� �(

������������ ������������� ������� ������������� �� �� ��! �"��� �)

!���)������ ���%�-��

-����������� ����� �� ���

�� ����������� ����

���)*

�� �����&��

�� (��

Page 82: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ������������� �� �� ��! �"��� �*

!���)������ ���%-��

-�����������������&��%&������ ��� �

������������ ������������� ������� ������������� �� �� ��! �"��� �+

!���)������ ���%-��

�#.�/&��0)�����������/���"��� ��������-������ ��������

&����)�� ������9������������&��8�����������5��������1�������2

:�� ������������������� ��� �������-�������� �

����� ���� ��� ������ �������� ������

��������� ������������� �-������ ����

open()/read()/write()/ioctl()� �����

�� /dev/fslN

Page 83: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ������������� �� �� ��! �"��� �,

!���)������ ���%��!

��!��������������� �������&����������������� ��� �

4������ ������ �������� � ������8������������������

������;��8���������������

�������� �� ����;��8������

���������8����������%����� 8�������������

<$%���������8�<$%06=%05$>%���������

�������8�������������������1����� �2�

������������8�������%������������

������������ ������������� ������� ������������� �� �� ��! �"��� ���

!���)������ ���%��!

��������� � ����������� ������� ��� �����

����������������� ����������������������������

!�������0����8�#�3� �������

!������������������ �����������

&��0)��������������"�������(���� ��������� ������������

4�������������������� �������!�?���� ���������������������������

��(���� ������ ���������!�����������������@

Page 84: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ������������� �� �� ��! �"��� ���

!���)������ ���%��!

��!��������� ������������ �������)0*������ �

������������ ������������� ������� ������������� �� �� ��! �"��� ���

!���)������ ���%��!

�� �!��"�0������������ �����0��������������

Page 85: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ������������� �� �� ��! �"��� ��#

������������������� �����

A ������������� ������������������

'�(������������ �������������B

9��������� �

���������������(%������������ ��

!������������������ ����%���� �����

�������8�(���8��������������8�@@@

�#.��������������������������� �!��"�� ���

&���C������C��������

-����� ���������������� ����(�

������������ ������������� ������� ������������� �� �� ��! �"��� ��$

������������������� �����

!���-�� �������������1!-�2

,�����������)!��1&�&��� �2

!-�����������(������������� ��

����������� ����%����� ������

*�� ������������������������������������������

write_word(IER_REG, 0x00000003)read_word(IER_REG, 0x00000003)write_word(GIE_REG, 0x80000000)read_word(GIE_REG, 0x80000000)assign -- Request VHDL to generate input read_word(DATA, 0x00000001) -- verify dataread_word(ISR_REG, 0x00000001) -- verify interruptwrite_word(ISR_REG, 0x00000001) -- reset interrupt

Page 86: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ������������� �� �� ��! �"��� ��%

-����;��� �

-���������!����������

!-��%��������3���9���D56http://www.xilinx.com/support/documentation/application_notes/xapp516.pdf

������������ ������������� ������� ������������� �� �� ��! �"��� ��)

���$@$���� ������������� ��

,(�� ��� �E

����$@$��F���!���������� ���

����$@$��F�-������������ ���

)�� ����������8� ��� ����������

Page 87: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������� ������������� �� �� ��! �"��� ��*

����$@$��%���� ������������� �� �-���.��/0

&����������� ������)�� �

����� ���������� ������

)���� �������!

3�������� �!��"�� �����������#.

&��� �������#������������

;���������(�

������������ ��� ����#����1��#2���������� ������(�� ����� ��

&�������������������(%������

=7�������

������������ ������������� ������� ������������� �� �� ��! �"��� ��+

����$@$��%���� ������������� �� �-�12���/0

&����������� ������)�� �

����� ���������� ������

)���� �����-��

3�������� �!��"�� �����������#.

&��� �������#������������

;���������(�

&�������������������(%������

=7�������

Page 88: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������&

'�#�� �#���������(��)�

������������ ������������� ������������������ �� �����������

*�+ ����

,������������

��� ����������������-���������!��������

��)���� ����������� ��� ����� ��������������� ������

,���������� ���� ����

.�������������!���� ����

.������ ������)������������������� �-������

Page 89: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������������ �� �����������

,)����� ������������

��!������

������ ��� �%������� ����

�)����������������

�������������/drivers/misc/ppwm_adapter.c0

�������������� �����������/arch/microblaze/platform/common/

petalogix_pwm.c0

-��������

��������������� �-�������/drivers/misc/fslfifo0

.����� ������� � ������������������

������������ ������������� ������������������ �� �����������

,������#���%���!������

����� ����������� ������1

����2����������� �����

(�)����)�)����������� ��)������1

��������� ��1

!�� ������1

�� �������1

���������������� �2������1

*��3% ����������4�� �

.��� �������� ������)��

����� �������� ��� ������

�� ��� ��� 5�������������������� ��������� ����

Page 90: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������������ �� ����������

,����������%*����� ���� �

6���������� ���������������� ������� )����

7�������������������������

����������� ��struct miscdevice {...};

misc_register() / misc_deregister()

������������� �����8�����

��+�������9:

������������� open()/read()/write()/ioctl()/close()

������������ ������������� ������������������ �� ����������!

,����������%���!�����������

���������)���������)� ���������������������

ioctl()

����� ���������������������� ��� ���������� �������������������;��� �� ������������������ ;

write()

������������ ����������������������� ������

read()

<���� ����������������� ������;

�����������8 ��������������

open()/release()

Page 91: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������������ �� ����������"

,����������%-��������

��������� ������������� �-������ ����

drivers/misc/fslfifo/

��������������� ��� ����� ������ ������ �-��% ��� ������

' ������������ �����/dev/fslfifoN (N=0..7)

��� �)� ��������/������0�-��% ��� ������ ����������

���������� ������������5���������������� ������

������������ ������������� ������������������ �� ����������#

,������#���%������ �� ��

��!�������/������write()0�

-���������

unsigned values[4]={0,64,128,255};fd=open("/dev/plb_pwm",O_RDWR);write(fd,values,4*sizeof(unsigned));

unsigned char values[4]={0,64,128,255};fd=open("/dev/fslfifo0",O_RDWR);write(fd,values,sizeof(unsigned));

Page 92: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������������ �� ����������$

����$;&�%�.������#���#�������

,)��������

����$;&��=���!

����$;&��=�-��

��������������� ���������������� ��� � ��������������$;$

������������ ������������� ������������������ �� ������������

����$;&��%�.������#���#�������%���!�#��

.������ ����������!������

.�������� ������ ���������� �����!������

�&:��������

Page 93: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ������������������ �� ������������

����$;&��%�.������#���#�������%�-���#��

.��������������������������� �-��-4-*����

.�������� ������ ���������� ���-��������

&:��������

Page 94: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������&

'��(�����������!��

������������ ������������� �������� ������������ ��

'�) ����

*������������

��+��������� ������opencores.org

���� ���������!����������� ��

�������� �������������������!��� �������� �!��"���) ��

+�����������plb_2_wb������ �

*���������� ���� ����

�������������'��(���,�� ��������� �!��"�� ���

Page 95: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� �������� ������������ �

-��������'��(��.��

-������

('/#,(

#(*

0�0����������

(������ ������

!��*�����!������

�����

����1���,1�,$(1�...

( ���

-��1�#��1��2-3

(���

(��������4561�56731��� �!��"1�-8/1�...

9'��9������ ���

'��

��� ������ �

8���� �������

/������:����;����

!��������

������������ ������������� �������� ������������ ��

*������!���!��

!��� ��� ��� ������

5%<&�������������

0$%<&��������������

� � �������=������!>

���������������������������� �����

������ ���������������!

�����������1������������?+��� �������

�� �+�����+������@

-��������� ���� ������'��(��.��

Page 96: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� �������� ������������ �!

*������!���!��������#A

2�+���� ��� ������!���������������� �!��"�� ����@

������plbv46_to_wishbone����������

'��(��.��

��!���������������!��

��������� �������� 1��������

�������� ��������

�#A��������������,�� �������B���

-���plbv46_to_wb������ �!��"�� ���

���� �����+������� ������#A

(��� ���������������������������2�����

������������ ������������� �������� ������������ �"

�����������!��� �������#A

���'��(����simple_gpio�������

�����

#�+��������� �

* �� ��� ����������������=.�>���82#��=.���>�����

/�������#A�(��?,������������+�"��

,�������������������

�� ���������������������= ������) �1��� �����edk_user_repository>

:����������� ������������2#������=.�.�simple_gpio>

�� ������2#�������������������

Page 97: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� �������� ������������ �#

�����������!��� �������#A

/�������#A�(��?,������������+�"���= �������>

��������������� �������� ����

�#A�����������+�����������!��

����!���������������������������� �����

(�������������%����2#��������#

.�.����simple_gpio

plbv46_2_wb �����������0$%���������?��������

simple_gpio���������������3%���������1�5�����

���������

����� ����%���1��

����������+������

������������ ������������� �������� ������������ �$

-����������!��� �������#A���) �

-������plbv46_2_wb� �

(��� ������������!����

(���������������������!�������=�>� ��� �������������

-������simple_gpio

(��� ������!������������������plbv46_2_wb�����

(��� ���������������������

Page 98: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� �������� ������������ �%

-����������!��� �������#A���) �

���� ������ �������

����&��'

�(��)��

*����

���

����&��'

����� ��&�+���,�(�

����� ���-� .����������

��� ���������+

������������ ������������� �������� ������������ ���

���������� ������

C������+���� ����� ���

B����� ����� ��������� �����

.�.�+�����������������������plbv46_2_wb�����

��������� ����� ���������������

�� ���������� ������� ����

;������������������������������) ��

�������������������������B���

���������� ����������������������

������% ������plbv46_2_wb�+��������

���wb_2_plbv461�����������������������

Page 99: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� �������� ������������ ���

���������� ������

�� ������������+� �� ��

����� �������

;��

��� � ��� ��������������������� ������������������

��������� ������������������������ ?��������

������������ ��������D����� �������E�����������

�;���=����;��>� ��������

!�#

���� %��� �����'A

�������� �� ������������� ���+����

������������ ������������� �������� ������������ ���

/��� �

'��(��.��

www.opencores.org

����!���!����������

http://www.opencores.org/projects.cgi/web/wishbone/wbspec_b3.pdf

Page 100: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� �������� ������������ ��

����$.&

!�+����� � ���������� ������plbv46_2_wb����������'��(���simple_gpio

-���������������� �!��"���) �

!���������������������+%�������+�������������

&7�������

Page 101: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

�������������� ������������������

���������������������

������������������������� �!��"

#� �$�%��������&

'���������(�������)

������������ ������������� ����� �������������������

*�+ ����

,�

��� ��������������������)�������)���� �����������

-��)����)���������� ���

Page 102: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ����� ������������������

�����������./���� ��

0�)� ������/�'1�2������������������� ����� ����.

/�'1������ ����� ����������� ���� ���� ����

������� ����3�������4�����������������

5���(������% ��������������������������� ���������6�5�� ���

!��� ��������� ���������������

� ���%��%5���������

*�������� ����

�������6�-,*�

������������ ������������� ����� ������������������!

�����������./���� ��

���������+ ��

�������� ������ �����

� ���%��%5���������6� ��� ��

0��)��6�7�� �������

*�������� ����

1���� ��������������

��������������������(��������� ���������� ���������)������8�� ��

�����������������7��������������� ����� ��������

5 ������� (�������� �����(�999

Page 103: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ����� �������������������

�����������./���� ��

- ����������5��������

*�������� ��������-5

!*-�0�:!�� ;

0,�����:��<�����;

������� ��������� ������� �

!�� �����������������=!��$>�6�-1���:!�� ;

� ���%��%5���

1� ���� �������� �����

5�����������������������/�'1%�������� �

������������ ������������� ����� ������������������"

�����������./���� ��

������+ �������,��������� ����3��������6�7,?��

-�5�4�- ����������� ������5��������

��� �����/�'1���������������������������

��������57��� �����

��7���������� ������������

'������� �����������)�������

����)���� �������������������)�������

# ���� � �����������

# ���� ��� ��� ��������������)������� ��

Page 104: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ����� ������������������#

��������-��)

5�������������������������5�� ���

!��� �����)������)������������

!������������ �������������

5������������������������ ������

#�� ����������������

!��� ���������������������

������ ����������������������

������������ ������������� ����� ������������������$

��������-��)

,����)���+���������������

7��������)�����������(�����8����)��������������� ������ ���������������������������� ���� ����)���� ��������� ����������

1���������)������������������� ������������������� ����� ����������� �

�������������� ����������� ��������������� �����

<�������� ��)�����������������������)��������

Page 105: Embedded Linux on Xilinx MicroBlaze Presentation Manualtidsreise.com/div/Xilinx_undervisning/embedded_linux_xupv5... · V11.3 XUPV5 Development Board Embedded Linux on Xilinx MicroBlaze

������������ ������������� ����� �������������������

/�����������

/��� ������������ ����� ��

���������������� ���������������� ��� ��

,����������������������(� ��� �������)�������������������������

������������������(� �����������!�����

,����� ��@