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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ E! J1 p0 {. O2 [1 n#include <linux/init.h>  P0 S' D0 a" c
#include <linux/module.h>5 f$ C( i; w) R  M0 T
#include <linux/kernel.h>7 z# E7 H1 ?. v5 {* L; ~, G
#include <linux/types.h>
. P7 B* l) _- O* Z8 U2 Y6 ]/ s#include <linux/gpio.h>
5 b+ o# _& U8 j#include <linux/leds.h>0 Q3 t! i5 m! g. o* J8 G
#include <linux/platform_device.h>
# R# C8 j7 q: Y4 h. F2 a" `- |  {6 j5 y/ T
#include <asm/mach-types.h>
1 S/ ?, K& I9 I" J9 V3 X#include <asm/mach/arch.h>
; u$ f/ n2 @0 k: t( u/ Y8 U# ~#include <mach/da8xx.h>4 T4 j+ q: w8 i) ^  H7 l- l
#include <mach/mux.h>% T& J4 a/ y, P1 O6 N. K

; ^* }7 T8 [# @/ M/ b! j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 j# s  k1 d4 Z! v" A. ]  [6 I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 P1 v- D2 I5 a/ K4 B
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 a/ d" j8 M3 J$ ~1 K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( [, t4 ^; ^' T5 z, J2 \" T6 [+ p; J
3 u3 @- F0 P0 }) J; z" K2 \
/* assign the tl som board LED-GPIOs*/" }+ v& q7 P+ n! ~
static const short da850_evm_tl_user_led_pins[] = {% v' k% x+ \3 V2 T' Q4 \. W
        /* These pins are definition at <mach/mux.h> file */
9 _! S# G2 Q# H  k3 @        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 O# c" W! R6 f/ [
        -16 ]9 T4 J$ R: g* g
};
- s) V. P/ ~  v* M) H- U9 n$ B7 ]! W% T# h3 p
static struct gpio_led da850_evm_tl_leds[] = {
% \/ K) n5 D' ~! W& {& ]        {
0 z) d7 Q7 C6 U: g                .active_low = 0,' _  ]4 e8 g+ J9 I$ w
                .gpio = DA850_USER_LED0,
' R* Z7 _/ X' r9 \6 g, _( G                .name = "user_led0",- D2 k3 ~" W, C( b: B
                .default_trigger = "default-on",8 o) D2 n$ D+ A7 W, J  m
        },- ]. b3 G  R, q5 Y
        {
  y- {! R. a7 |& a                .active_low = 0,
) c! G; U4 U9 J* J3 }' Z4 J  L                .gpio = DA850_USER_LED1,% p2 Y, V8 `( n- f% m: B
                .name = "user_led1",% r+ f$ j4 L  H) u1 Q/ U4 J
                .default_trigger = "default-on",
; I% Z" m8 T3 Z, p3 P4 N. f% w6 l$ ~        },
9 U: @5 `) n5 P% R" |4 r4 ~. i5 \2 K        {
* ?  g! p$ e7 M6 R                .active_low = 0,6 \% W$ H' v1 H* ~7 k
                .gpio = DA850_USER_LED2,
2 `: i0 A$ d( |/ F' E' e                .name = "user_led2",/ E2 I$ O3 U0 `* l
                .default_trigger = "default-on",
- z/ a4 {) o6 B2 w* J0 W8 [        },9 G4 h, t/ r1 Q, J1 L
        {3 z2 u! r, A1 J! Y8 Q
                .active_low = 0,
0 _4 K7 B$ R: s/ s/ i                .gpio = DA850_USER_LED3,
7 y# ]0 O2 @  v; `2 y# m  H- O                .name = "user_led3",
8 W$ D3 E( k4 h$ ?2 U                .default_trigger = "default-on",: r1 a) V# m8 l0 r
        },
5 n0 T# A" Q2 a) Z! k/ x};
" l# I- k1 k. x. O1 ?8 e* V8 L6 Z. k( v$ h# H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 F9 a; y. \& o, m        .leds = da850_evm_tl_leds,
% k* n# g6 |* Z/ u9 {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& e( I6 y1 W# t* t; T1 _: w1 b};( V- `/ F1 R' N* s0 ?- s; y
# h! D5 ^# v1 p5 A9 \" N6 }; `0 D
static void led_dev_release(struct device *dev)
9 V- w' ], H/ h* w& b{8 s. [2 {1 |* Z* v; _) J; `9 `) \
};- p2 w% H* J, b- t
: i% J& p+ \" t
static struct platform_device da850_evm_tl_leds_device = {
7 t" o9 m0 [3 N$ ?; E7 }        .name                = "leds-gpio",: @( w  q- [  \5 a- a
        .id                = 1,
2 ~) n. y" O8 m: u/ V1 ~! ?$ S        .dev = {
4 Z# K* ~3 k- \: a& K6 I/ p                .platform_data = &da850_evm_tl_leds_pdata,
2 o  x  S# i$ v! ^& s' c& g' L                .release = led_dev_release,
% P0 c/ X2 [- S0 t        }0 Y$ H' r) ?$ p9 |
};
0 e2 O1 E: W  u8 ~: r: T/ ^$ C- P& ^+ t0 I( _
static int __init led_platform_init(void)
$ y4 j% k# `- k% b, v( ~{
. u" o. x0 I- s( A" V2 u4 u' t9 s        int ret;) W6 f' Q  {( |0 @1 m
#if 0
9 ^& z: j; {( c# X1 x9 Q0 g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; g6 I+ u# L6 Z) A
        if (ret)  s& m$ ~% h9 U. ^' _; H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 ^: Z; b/ g9 V2 y- ]. Y( B  `                                "%d\n", ret);! D0 @( h5 l2 h1 V% ^! ~$ k: J, ~  S
#endif
* W( |$ T2 l7 D" i, ?  O        ret = platform_device_register(&da850_evm_tl_leds_device);5 d0 }" G9 m, A$ z) h! U9 [) m
        if (ret)
, Q+ q* x9 e" W                pr_warning("Could not register som GPIO expander LEDS");% T' t  g" w' q4 `* Y& h( A. O
        else
. i- e9 [5 C7 F* n0 V& @                printk(KERN_INFO "LED register sucessful!\n");
  E+ e3 v+ i3 C% S
! V! W4 s2 n4 c: l; e( `        return ret;
# j! t% U( I+ E4 t: Q}2 u6 X3 ^- L# z

1 R( N# C* W* E) f9 e" p  ostatic void __exit led_platform_exit(void)
5 b1 {, ~& e3 @6 U{
7 i6 y# _! f* v; o3 H9 E        platform_device_unregister(&da850_evm_tl_leds_device);
! `1 m: K. [0 T2 {8 o( K% B8 [3 Q# N: V" V+ N- i( b
        printk(KERN_INFO "LED unregister!\n");
0 V# x; t9 M  R  \8 y$ S! M}
/ x, P* S. a, K0 g/ `0 z% M5 o, a, v2 x: o6 v3 l8 {
module_init(led_platform_init);
: j$ t) u8 P0 {' }$ x- @module_exit(led_platform_exit);  R3 M. w* c5 r$ o" L* l4 G' j

4 c7 ^; T9 R9 G& NMODULE_DESCRIPTION("Led platform driver");
; V9 |# ^- U) e0 nMODULE_AUTHOR("Tronlong");
* ?: W% K+ X2 d/ d( }MODULE_LICENSE("GPL");
7 Q2 ~) T/ u9 b# c$ K0 F& W* H3 ?8 G7 R! n+ b8 {$ ^( \0 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 06:00 , Processed in 0.033815 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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