程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. v- N0 v. o# g* p- P
#include <linux/init.h>5 i7 N: r6 s+ m3 X( u, p) }, N& j
#include <linux/module.h>& L5 v! P+ ~  a
#include <linux/kernel.h>9 f- l6 ]- U" r4 e% k' v
#include <linux/types.h>* }: g2 A7 r0 T0 |; f
#include <linux/gpio.h>% ^& r+ @. B) N2 @
#include <linux/leds.h>; j0 m& J; V6 @! R+ C
#include <linux/platform_device.h>
; d2 n0 v4 `' I+ L
  u' Y  I: B, A! ~#include <asm/mach-types.h>$ ~) Q" M' Q( F3 d' Q
#include <asm/mach/arch.h>& s7 f) f1 L- G* {+ L& |
#include <mach/da8xx.h>: f0 u; k# f6 Z
#include <mach/mux.h>; \3 |( `- W) V4 S8 ~* f& m; o

3 R& K0 ?- J" V1 @$ D7 g6 F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 l' r5 B4 \  h: H7 Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" p" Q+ E, g* _1 ~4 J4 q4 f1 z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! p+ g( S: m" @# j: @  u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ e, X! S- Z2 K  J3 L6 X+ R' q' `! T  z# I$ L" k
/* assign the tl som board LED-GPIOs*/" ?+ l  U7 @8 [' p/ E2 g- a
static const short da850_evm_tl_user_led_pins[] = {
. q- R! U" W0 a( x        /* These pins are definition at <mach/mux.h> file */, s( z; [- M! t0 T% A; Y6 h
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 K2 ^3 k* }$ y- L4 ~7 J        -1
2 L, F9 z5 N% L4 R3 v5 q" t};+ D5 t5 y2 [6 k9 B' o" C0 `

1 H( g  @) `" Q' E) Wstatic struct gpio_led da850_evm_tl_leds[] = {7 _  t5 W, l( C8 `; H" H* @" S
        {
- f  i% f$ ~! ]  ?! U8 A6 t                .active_low = 0,3 ]6 M8 x, P) d/ T! }  f* g$ J
                .gpio = DA850_USER_LED0,2 n1 h$ c/ z0 c/ T( a
                .name = "user_led0",
  T' e1 e: \8 @9 u% j7 g$ ~                .default_trigger = "default-on",) F7 v$ _! K/ P- O8 ?( p8 l8 r! z
        }," x4 y' v# b) }* o7 ]
        {5 T; H, N+ c8 o- i' I* X# r
                .active_low = 0,$ k* C6 G5 i9 `, s: n
                .gpio = DA850_USER_LED1,/ g  f" G; [" S% _; v
                .name = "user_led1",% E2 l4 v# j2 N) E( U+ ~" J% N
                .default_trigger = "default-on",
% D5 z  b& a/ e" `* T        },
2 u7 q$ g, i' |. K' N        {
2 T: \0 T0 c! ?( [" H                .active_low = 0,- ?/ s, {+ }6 b& y! Y
                .gpio = DA850_USER_LED2,) L3 a( s$ ~, z: g
                .name = "user_led2",5 c6 Q# R. W6 _6 U
                .default_trigger = "default-on",
$ u# I5 v3 R: ?4 q3 a  }# v        },
4 k" [7 L% O  A0 a2 k        {
* F( e, L% @; Y, a- L7 h                .active_low = 0,! f% d1 X( h$ o, a
                .gpio = DA850_USER_LED3,2 E# Q( P) }5 z
                .name = "user_led3",/ o0 d$ `+ i- b8 y, P
                .default_trigger = "default-on",
' n& X) ]' g1 H- e7 e; ]* L/ K        },
3 j0 [. F, {# G  l5 h};- h$ a# H! j6 i2 h) g3 w% e: X4 d

" h. a$ r$ l2 D: f9 Y; |# Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 _5 m8 u' e% [4 B" ?% M& n- D5 @        .leds = da850_evm_tl_leds,
4 q2 \2 p: }+ u0 K; }$ ?' z. v. o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! N1 Z) M+ [6 m" r# o( K' t  V! ^
};
+ Q5 a* A9 F( d3 H
, |2 M0 C5 T3 `! g# ^static void led_dev_release(struct device *dev)
) q! @# `2 _( i+ e3 C1 ?{6 D5 ~3 p9 ^' R7 Y: b1 q/ ?
};: c# _6 _5 F9 C( I6 g& S  y
" [  t- U  h! U$ f) J6 c
static struct platform_device da850_evm_tl_leds_device = {- \3 n9 p6 ?9 F
        .name                = "leds-gpio",
5 v; u6 j% P- ?  D! ]        .id                = 1,# c3 k# d9 @0 G1 F/ p
        .dev = {! N& L, u# s7 T6 B( w
                .platform_data = &da850_evm_tl_leds_pdata,! ?  a& `: J7 c  I, G4 v1 Q
                .release = led_dev_release,
$ O! H. b; @  R        }" S  ]# j& J% g2 d* z
};
: W- D& z7 Y; c/ b  [5 @0 i: r1 X' C6 n- ~3 c. y# n  w. s) Q
static int __init led_platform_init(void); f2 ~" r3 }. _
{
* V/ w. Q0 \& `' |5 l        int ret;8 g  `' g; W7 X5 K& H1 F6 h( a6 H0 F
#if 0. l5 U9 i: l& s0 |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: a! c& M. a0 x: c# R/ q4 E9 v
        if (ret)
  |3 c  N) e: ^6 p- U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 M& e: k# q  [$ v
                                "%d\n", ret);
5 w, W6 g- \# D#endif5 E1 y' S% `  c* s7 V5 |
        ret = platform_device_register(&da850_evm_tl_leds_device);; C' a* w- }, D
        if (ret)
1 n$ q3 n' s( O/ _$ Z& c7 K                pr_warning("Could not register som GPIO expander LEDS");1 N/ q; a! Z: J$ R, ]7 d
        else. Q+ t- H+ i. V
                printk(KERN_INFO "LED register sucessful!\n");
) \* r! [! U7 D; X
' r# j. ]+ o6 X. c3 [& e' E        return ret;; }) a" ^0 x3 C+ }( ?% Z
}  n2 t- x; ]; N! s( H
0 m1 n# g3 o+ l" z  h
static void __exit led_platform_exit(void)) l$ g. {% e( H6 O
{
" o! t' W5 ]9 G4 P  H        platform_device_unregister(&da850_evm_tl_leds_device);1 J) m2 C; L" K) T
" z( q3 v8 I* P4 q. G$ k
        printk(KERN_INFO "LED unregister!\n");! ^- j  t! _% Q) k8 ?; q' k) S
}
1 ~) t& ]# |) _# _$ ~
/ [, ?5 y2 @7 x! E* e/ @+ Mmodule_init(led_platform_init);
% P- A7 N; R. O9 x" k5 y. V9 {6 dmodule_exit(led_platform_exit);
+ u8 L, l% |: y' o3 q4 v" R( V/ z+ q- F! \  V' e; ~
MODULE_DESCRIPTION("Led platform driver");
4 E! {# d- W  Z. B7 Z$ j1 P# pMODULE_AUTHOR("Tronlong");
8 Z  Z; u, C* V: i  k4 A$ jMODULE_LICENSE("GPL");
  m7 l5 P1 `9 M; E$ `8 i- O) e* ?# [
5 F, x! k( ^! T3 e5 j& x; B% m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-16 11:19 , Processed in 0.038852 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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