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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 c& A: \5 \. c0 J% F" Y9 }% f
#include <linux/init.h>
/ j) z# w8 q5 v#include <linux/module.h>) ]% N8 v' n8 E8 t0 q$ J' d6 E0 S, h
#include <linux/kernel.h>
. [& V. j: {, e1 e$ \7 L! N#include <linux/types.h>
, }. Z, r4 C- `" ^#include <linux/gpio.h>
  o) e2 @8 e0 b#include <linux/leds.h># N, e& h: c6 r, L5 p
#include <linux/platform_device.h>
0 H/ n, ^3 U' n  b  ^" H! [3 H$ r! M; G' e- w
#include <asm/mach-types.h>
4 i4 `7 i3 D0 j5 G& E+ y, h( B#include <asm/mach/arch.h>
* I" E6 d  R  X#include <mach/da8xx.h>
4 m8 R- G7 M, x7 y( h2 ]#include <mach/mux.h>
. o' A/ u7 ^( g6 a4 m# F; v
* U4 G2 m9 t! j. q$ r% {7 O% j$ v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 I3 c% G9 V  |+ |1 X& G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& G" j" Q0 P. A) ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( F: c3 O' `- ^7 w, y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- o* D1 Y; Q4 R  s  t

' y6 Y1 `0 Q5 ?: C: I1 ^3 A/* assign the tl som board LED-GPIOs*/
' Q2 B- O1 X) y$ w. _" O. Z& u4 l9 A6 ~static const short da850_evm_tl_user_led_pins[] = {
2 {7 K& n9 g8 W1 i8 C% P* s) v        /* These pins are definition at <mach/mux.h> file */
4 Z! Y# ?8 c. J: F$ C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# a6 R  p7 Q) X* H# N: ?7 J        -1! M6 Q1 l! G/ C
};% {# ^  O2 p2 r1 p4 i" {! D

# b6 e) o6 b' Rstatic struct gpio_led da850_evm_tl_leds[] = {  |" _- a4 b, p
        {
5 v, C( Y% S- L8 Q0 t                .active_low = 0,
! H2 Q/ n2 I9 T" U1 X                .gpio = DA850_USER_LED0,3 Z+ R' C2 G' P( Q7 f! n
                .name = "user_led0",. ?7 T6 D, `5 {4 R% ?
                .default_trigger = "default-on",* ^/ H4 d7 |& F5 {9 I0 p
        },
- g# J8 I- w$ G) |        {
. X( [- V4 l7 Z3 B1 r7 J$ Q) l                .active_low = 0,
1 e. d" {! }4 [7 s2 a/ l                .gpio = DA850_USER_LED1,
. U/ L' y  K0 v, @4 x2 W+ R; e                .name = "user_led1",
* z  Y  m2 [# J  e4 o6 s, O                .default_trigger = "default-on",
. I8 K" j  b) h        },
8 V* H# `' \( l$ J        {2 X, u# i8 p* Y2 _4 @, f
                .active_low = 0,0 u/ R& Q' H! `2 {# \0 j- F) M
                .gpio = DA850_USER_LED2,7 T: C: L7 Q4 ^& q( R& ]
                .name = "user_led2",
% ~* s8 I, Z) I- S) c                .default_trigger = "default-on",  H) F$ P% Y7 o9 c- l
        },- z& D$ O6 R: e+ F: I9 I
        {
. L% e6 n6 T% f. O- T6 }                .active_low = 0,
9 J+ a" E# j/ s) }7 v6 Y& T                .gpio = DA850_USER_LED3,9 @' T# `1 A" t$ D  [2 r# Q1 M3 ^, n
                .name = "user_led3",# Q: G) c, \" d
                .default_trigger = "default-on",
: z0 X; G4 q5 @        },* G# h$ e5 {/ {( j' H
};& m6 S& Y7 ^; M9 @* G0 O2 n& I

, ^: X! \3 Y2 O. vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 z+ Z8 y" t% n; @2 k7 U) B        .leds = da850_evm_tl_leds,6 s* c4 V! z5 i0 e* A* D0 A# z2 N8 j" F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 O  n% c  M. o1 @* y! z+ x};
& P  N& {/ `2 P# P: H0 l% j' \
5 g- [( c; A+ d' ~static void led_dev_release(struct device *dev)$ _9 z( P: }9 d6 D9 j. h1 ?9 s
{
. j) |! Y- E. l# W( T};
. r" K3 o( s1 v* t0 k0 P, j/ @! O; I! ~# W, L) I0 C9 ]
static struct platform_device da850_evm_tl_leds_device = {8 c- L3 m$ U2 {
        .name                = "leds-gpio",8 g) Q% w5 d/ J# I
        .id                = 1,
- k- j6 {; f' Z8 }        .dev = {( D2 |: R. N/ E0 k8 a# o) G" P% \
                .platform_data = &da850_evm_tl_leds_pdata,/ u5 a" Z# @  X- g
                .release = led_dev_release,
$ b! [) T8 Z5 m. V/ o; v6 Y) T        }) k$ W0 p6 Q/ I4 ]& w
};" w' c6 `* V/ z. Y) G5 d
& \4 v! e2 x2 G- \) @
static int __init led_platform_init(void)2 a" m: ]- E8 n( I) C
{6 n2 F0 D+ a1 Z; Q* d0 F! w; h( X
        int ret;
( q; u8 F, `: O) }% r3 p- ^#if 04 X% G  w' p1 ]; r2 Q6 I
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# w* W9 w/ h* z5 C, I8 S
        if (ret)
( {3 I  D0 W  k8 U  ]& g$ H                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 \$ Y/ A2 e, Q" I2 c( V2 g                                "%d\n", ret);
# O* D! n$ T7 k$ ^& V; C#endif; k% y3 y  s, B1 i0 t* }
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ g3 [5 c& F# ~% U        if (ret), P9 e5 a- Z! ]. i) e  j
                pr_warning("Could not register som GPIO expander LEDS");3 v/ s" _) j3 }* C2 L& U# Y
        else2 A. e8 d  ]8 }7 R: O
                printk(KERN_INFO "LED register sucessful!\n");
& K7 m# `* w7 L3 Y+ M
9 |1 T2 [( I0 f        return ret;
  m) ~, s# J* Z  b# G7 r5 S}8 h! `' r" ]5 D; x7 H/ G7 ^: p
" b5 V1 g9 {4 T
static void __exit led_platform_exit(void)
  P- f$ Q& X' Z{
& S; z5 F' n2 a; m        platform_device_unregister(&da850_evm_tl_leds_device);
& O9 n7 ?, I7 U6 K! T( x% W; s- Q0 R& p/ i
        printk(KERN_INFO "LED unregister!\n");
+ k6 Z+ x9 F5 k. {( @8 K% o}
6 `, K4 F- ^2 ]. ^- Q
  B. t$ m+ k4 N' X& dmodule_init(led_platform_init);
; X# X, @# M9 e" g1 lmodule_exit(led_platform_exit);
6 L% d  d/ n  V5 Y* a+ m! F1 [* ]. B7 G* F3 y1 N2 N  I& n
MODULE_DESCRIPTION("Led platform driver");
& n/ j  S3 [: g2 t4 y. k6 L% c* yMODULE_AUTHOR("Tronlong");+ j0 l  j; A  o4 ]4 p
MODULE_LICENSE("GPL");
# Z) S* S$ |/ o2 F' a. J
( n0 P! R- K& L3 p$ |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 07:30 , Processed in 0.041710 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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