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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ C( j/ H5 j- g) C
#include <linux/init.h>; m  f7 C3 u; Q6 N
#include <linux/module.h>5 o1 ]: L2 z, k* f
#include <linux/kernel.h>2 J) `$ @. F: I, {% k& W. w& k
#include <linux/types.h>; z* M) l. F0 i2 F
#include <linux/gpio.h>
0 S8 V* o" v) L" j#include <linux/leds.h>5 J: L) ~( y* p" r
#include <linux/platform_device.h>9 q2 J/ e/ i, ~5 _) {: C

' `- E2 Z% G  W, k. f6 w/ W& x. `- j#include <asm/mach-types.h>; A0 L' |6 d) ]# A6 V2 j
#include <asm/mach/arch.h>
0 f3 o6 c# C) Q% b( C6 o#include <mach/da8xx.h>, Y% \3 s7 m0 g; A4 `/ d& b! z
#include <mach/mux.h>/ M+ `8 ~, i9 h/ G" M) |8 o
* A! i. p6 k& v/ K4 P3 g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: c# [4 V# n0 o5 F* Y6 m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* ?0 }& W2 P) X& `1 m7 L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" L5 p: H, r) x+ R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' {9 s) s: l* ^3 w. `: _3 y3 Z

7 K4 @- n+ v$ J4 c+ J/* assign the tl som board LED-GPIOs*/- n$ H+ h9 `8 v( j. C4 o3 L+ u4 f
static const short da850_evm_tl_user_led_pins[] = {) j/ T, j( V; S# O- Q
        /* These pins are definition at <mach/mux.h> file */
9 B# Y3 p4 F* l2 h1 ^        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ U& F, F8 P% d
        -14 s% n& V! [$ D
};
7 B: F4 A1 @$ K* ?+ R5 _7 S" ^+ g3 a" Q
static struct gpio_led da850_evm_tl_leds[] = {' j$ z. ^2 C; U# Y( j* v, M
        {
7 J: i; o! a0 Z( C6 P                .active_low = 0,
+ I8 d1 Y/ }! P- W  n                .gpio = DA850_USER_LED0,
& I$ w5 l& }) C5 r* Y  m. `6 N0 t                .name = "user_led0",
5 q0 U, q9 Q2 r  `' r$ ]9 y                .default_trigger = "default-on",
$ n' n7 ~9 r9 c1 j  I        },- |) s% b8 e$ o, M
        {
# t. `9 h- h. g8 ?2 |, \/ ^                .active_low = 0,
; I. C7 P# w' c, u# p" }- A8 N' j$ V3 L                .gpio = DA850_USER_LED1,0 i7 E6 R2 |& A* S0 |6 U
                .name = "user_led1",! A# s# y# p$ ], y5 G8 `( F" z
                .default_trigger = "default-on",! n# B$ t. w+ g/ j+ g' n7 T  ?
        },
4 V, d4 j" [/ ?# F' L6 j        {
+ X" d/ d5 T8 n, O( Q5 N                .active_low = 0,
! ~8 A* j# N' n5 Z                .gpio = DA850_USER_LED2,/ b( J1 i/ }% x6 U
                .name = "user_led2",
2 ?+ B& m" a% v% x" X                .default_trigger = "default-on",
- e! \& D. z9 b3 w        },* b# `4 w$ M: }% w& ~% F5 E
        {
& `# C4 }4 G5 _  W9 P6 c                .active_low = 0,
+ P; @1 P7 S, T: o: O                .gpio = DA850_USER_LED3,5 T" Z9 e5 B: X4 M  r8 G
                .name = "user_led3",( i  v; S! ~9 C/ C0 S2 a
                .default_trigger = "default-on",
* K' ~. x; V6 I9 @        },
2 d! ~, |6 Y# U& B- e};
$ s* b4 h5 _8 O: p2 I7 I- g2 a# \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; A* O* I% X0 e7 U* h. ?        .leds = da850_evm_tl_leds,
4 z. s% v2 \+ R& D4 Z; R' h        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( R: v9 I0 J3 e" b3 V};
  e0 g, Z* s# i: O* ]1 K* H7 r* S  j  k
static void led_dev_release(struct device *dev)4 K: Q; @0 j" V
{- M+ c1 X* [# \6 D
};* w) G9 `3 b: Y/ I+ x

$ P' f4 X# Q) t& d: r: T) T" m& mstatic struct platform_device da850_evm_tl_leds_device = {5 X) C3 V, A: h8 H. j$ t
        .name                = "leds-gpio",
) e6 R; S* e6 O0 T4 F        .id                = 1," D% c& l% _9 I. M  B9 b/ }
        .dev = {
" A/ {. q) V) t% b4 y                .platform_data = &da850_evm_tl_leds_pdata,
, E# M. }$ D& s# ~' C' D" Y, V                .release = led_dev_release,& C7 B+ I. t# F+ i1 W
        }. }/ M4 l% `+ a
};2 n# m; M3 n6 u& t
0 v& r& J# P% u  l4 X3 N1 d0 d
static int __init led_platform_init(void)1 [) y7 U5 e8 n6 o$ R7 U: p% U
{
. V2 v, l$ {3 \2 e- i6 L        int ret;
* T/ H8 H: }2 R9 ]" a+ |# F#if 0; q. E" \9 m1 i  S" a% L# c# z$ q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 b( a7 W9 x) }) i& T
        if (ret)
/ Z2 P8 b. H+ P# c/ e6 p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 n) o" m: r2 _  N% Y+ Y
                                "%d\n", ret);
) ~' V. s9 E, r! z7 ]: t6 a#endif1 C3 j5 T5 M) {2 m
        ret = platform_device_register(&da850_evm_tl_leds_device);  E7 w( M- J6 \0 Q. [+ v
        if (ret)
# Z0 T( o6 M% W& g                pr_warning("Could not register som GPIO expander LEDS");
' B7 L# C$ [: N$ H, g/ O0 p        else
" M# h$ a9 x7 V$ _: K, o7 ~! v                printk(KERN_INFO "LED register sucessful!\n");6 t& x- p2 w% Y8 F! D. z
6 ?, ^7 D% U  E, |
        return ret;4 g; B6 N/ A$ U" ?* t
}3 ?2 Y* C( c! r/ t% c
! T: n+ z* u9 W3 H6 n
static void __exit led_platform_exit(void)
0 C- Q, M% ~/ y: Q1 z& T4 u- |' d{% o* v( W& q% R1 @8 g. b* E
        platform_device_unregister(&da850_evm_tl_leds_device);
; ~) M' v$ @2 q2 d: I4 M) ?
8 Y2 J2 F8 I' y0 c: b        printk(KERN_INFO "LED unregister!\n");
. O+ a5 v/ A, A0 G$ Z* y}
! R5 P  U4 H1 b
" w: I" Z4 R6 p* L, B/ W+ kmodule_init(led_platform_init);# D' X. B* V5 r+ d5 P! S6 }
module_exit(led_platform_exit);
# r& ?8 B: ~. V/ T# }1 |" x6 j' d6 H0 B1 B7 a; g
MODULE_DESCRIPTION("Led platform driver");
9 Z6 v1 z1 k* b; f7 K) q& l6 c( _MODULE_AUTHOR("Tronlong");
$ D7 r# G' h4 ZMODULE_LICENSE("GPL");
+ U8 o5 U0 N' j! W/ c
2 n8 ]. y) p$ c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 12:03 , Processed in 0.039235 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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