程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9754|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; H2 e. D5 v/ a& E0 j6 s
#include <linux/init.h>
( V3 A% H) }" W6 d2 Y8 o- e#include <linux/module.h>9 R8 u4 G; I; \8 [0 f
#include <linux/kernel.h>
' T9 Y/ k  s8 R6 |#include <linux/types.h>4 [+ ]$ l0 G! l2 t. f2 u
#include <linux/gpio.h>% u# w2 j4 O; p' _
#include <linux/leds.h>
5 L/ I* T# @2 D0 P& v" m. c. G# _0 d! G#include <linux/platform_device.h>7 X5 Z" |; @8 g
- I  u' s& ~" W" t
#include <asm/mach-types.h>
0 M2 l, V5 V" F! F# p% w! U#include <asm/mach/arch.h>3 {" L# E6 |5 K% b9 j9 r
#include <mach/da8xx.h>8 d0 F( {9 ^1 l% E# B$ c& V* q9 B
#include <mach/mux.h>
2 p# i% Q5 r4 F3 a. d/ Z
5 m1 V; i- \. Z# w. l. m5 y5 C#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 g8 |+ k; v- ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); Q- m1 [9 h0 \& d. F- H3 P% C
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: _4 D. z* c/ r6 Q) E* X! Q% R' `( Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 |( n4 v$ X5 N- z2 B$ k" I
9 }9 I, A3 V& b* J1 d' q% N, `/ t/* assign the tl som board LED-GPIOs*/
) K2 J  f% L6 F# bstatic const short da850_evm_tl_user_led_pins[] = {
' u, }1 Q0 ]4 A  U+ o" E% b9 g        /* These pins are definition at <mach/mux.h> file *// F+ D2 F, g: R1 F2 O7 a* G/ \  n% g6 n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 p8 {: u2 ]  h1 l" v. \& E# {        -1
4 s" u' p+ s% E1 _  n' n0 F( h; j};4 K# h; Y, ]) F
% ]9 w, f2 J+ r' w  J' R. U  d4 D
static struct gpio_led da850_evm_tl_leds[] = {
/ S1 _" @6 W0 B& K* D; E        {* Q, N; z# t1 y' m  [" a
                .active_low = 0,' p4 f5 Q# F* Z5 }2 \0 N
                .gpio = DA850_USER_LED0,
) i2 l. B3 ~* U+ c( B+ [5 [- J- G  N                .name = "user_led0",# ^3 l! @' h% `: w  k/ T
                .default_trigger = "default-on",
: `! [" B& k! [( b* Y, \0 h  `. M        },5 o- Y4 Y! D8 M
        {
, K8 x* Y5 B' I% r6 {                .active_low = 0,! s9 l4 u0 T: n: g" t) Y
                .gpio = DA850_USER_LED1,
  a% p0 i: v' T) c                .name = "user_led1",
- n* j1 D& E. U5 X                .default_trigger = "default-on",- m8 `$ [6 X( A0 j2 t$ z( p
        },) E* Z5 X1 P+ A# C: i2 h
        {# E" S) K4 `! d& l, k. _! {/ |! L
                .active_low = 0,/ E8 d  O; }7 V( u3 y& d4 {4 K
                .gpio = DA850_USER_LED2,
" Z7 }# f- u% k' W' N" d7 N                .name = "user_led2",7 [4 o' O  \* ^& M" w
                .default_trigger = "default-on",
  V4 T; z/ X5 ?) f        },0 H& @4 S; X0 J: A/ \+ h
        {0 J4 T- y: r# ?. \, l
                .active_low = 0,- n8 Z1 t; K6 Y3 a
                .gpio = DA850_USER_LED3,
- S9 n9 W' c* Q7 e* F0 [& h                .name = "user_led3",9 z# Z( M: X1 j
                .default_trigger = "default-on",+ |3 T$ i' F" J5 P9 l& @
        },+ G9 r. B  o/ ~1 O/ y9 _
};
. Z9 k! A2 u% Z) i
' ^; h) _$ O$ {: H( Qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- v+ y% s# i+ z. h# H
        .leds = da850_evm_tl_leds,7 y1 g& v0 S9 W: F) u  `9 g$ t, Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 q+ N/ n8 M8 }: G8 D% Z, h};
% [7 n: [! K+ ?7 n# v$ \/ d' d$ Q) r- h; i
static void led_dev_release(struct device *dev)0 ?! W3 j4 s/ ~0 C5 k" J# L
{
0 u0 V5 T8 R3 ~5 u# X7 E' k};
* |. U/ @1 V* c+ f5 L
# U- `2 N7 [5 ^* ^static struct platform_device da850_evm_tl_leds_device = {
0 }: i7 e8 {- |5 i- z/ A$ R9 d        .name                = "leds-gpio",7 {7 H4 l0 X* r7 s: @
        .id                = 1,3 t$ j" n5 A+ {  y# Q9 L
        .dev = {- a" _* _) x* A4 Y% D% G
                .platform_data = &da850_evm_tl_leds_pdata,  ?/ U  V! g! g) a* f! _5 c
                .release = led_dev_release,
0 A4 d1 {+ U  h9 }. k+ S        }
: q$ J6 o4 Z8 d5 W# @};* N  E7 r, I: F' ]( J& h
  G; i2 S6 m9 b5 H/ C4 q, {
static int __init led_platform_init(void)
1 u% R9 T" e7 F, ]; D{
3 s/ Y) b1 ]& K- ]9 I1 N6 D$ W        int ret;9 z. J! Z) C/ ~) N- M
#if 0
9 N- B0 V- @+ p! e% t' a: y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 ?3 W2 y. g" k1 |: n; |        if (ret)
  r# s/ E" ?! K# I3 F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 b# Q$ e0 r/ O
                                "%d\n", ret);! T) N3 }! B* W$ ?3 {- k
#endif
0 n% M; @2 ^( e  X! n) I8 W+ @        ret = platform_device_register(&da850_evm_tl_leds_device);4 o3 s0 y7 q7 E4 X( C! a. t" X0 x
        if (ret)
7 ^  g; y. Q0 i                pr_warning("Could not register som GPIO expander LEDS");, U) y, [( o6 n
        else$ J3 V* v: J6 I1 x/ m4 o6 u3 G  N
                printk(KERN_INFO "LED register sucessful!\n");
7 ?8 {$ h+ m3 ~8 `! D1 x1 a- p1 M6 c0 x3 J7 ^' ~
        return ret;
* _) z* q  F7 a  D4 o: u}
7 v2 o+ x1 Z& a- }, N
. A9 H2 `% d: z+ wstatic void __exit led_platform_exit(void). }7 q/ W% e& B9 g& j
{: s5 G/ Z( R$ w& H2 r& b
        platform_device_unregister(&da850_evm_tl_leds_device);
* p! f" t8 ]$ w" S' l0 b# U1 l- K0 a
- h. T' G4 y0 H" @        printk(KERN_INFO "LED unregister!\n");
0 ^4 `; z) N$ b7 S5 _  n}( ^* j1 g: ]' c' o' v/ f
6 ^, r9 v7 A' H$ |6 h
module_init(led_platform_init);6 h& j" Z* \9 p8 a2 m* ^/ P
module_exit(led_platform_exit);( B1 o3 B1 w9 A7 c; Y

  {1 Q" S) S) O6 e& VMODULE_DESCRIPTION("Led platform driver");* t( f. y$ E/ T) c! V: Y8 g9 I
MODULE_AUTHOR("Tronlong");
7 T, s3 M; I9 ~, R# A0 ^MODULE_LICENSE("GPL");
; }5 A( t+ T) I3 }) ]
! n$ a9 Q% d2 F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-2-25 13:35 , Processed in 0.040683 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表