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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: d+ z9 Q; O( v" x3 ]% {#include <linux/init.h>
- Y0 M) n' P: o2 E# J#include <linux/module.h>
4 C, i! w0 X) W' r0 y#include <linux/kernel.h>
; d3 h1 f$ [" S( {: J' n#include <linux/types.h>1 E8 N: w7 |# X9 `& e9 }6 n- j# ^
#include <linux/gpio.h>( b: r! X# e! `7 }0 Q9 L8 v, ?
#include <linux/leds.h>
2 d( `9 w! d0 U7 Y  {#include <linux/platform_device.h>
. K  ]$ @; F; K. T
- V$ K. h2 d  _8 v) N, M" I#include <asm/mach-types.h>1 S# b! h& u# \/ O; |8 C
#include <asm/mach/arch.h>& K7 w# _2 ~$ |
#include <mach/da8xx.h>
' M* @: B- X/ E9 ^' ]4 U6 `9 G#include <mach/mux.h>
( w& h2 Q, B5 ~$ ^+ T# J1 F" \8 e4 a4 E7 U' Y; \' E4 _7 Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 h* ]5 f- R% h" [8 }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); j1 z$ M4 S+ B2 u7 V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) L, b2 M  C9 b7 J) C$ u+ X- c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" n3 L2 f4 \. p3 `( E
/ _0 ?% f  s7 a! v, I" h+ u7 [: _/* assign the tl som board LED-GPIOs*/$ [: i6 P6 S: r/ T3 u5 c0 I, Z; V( |+ D- `
static const short da850_evm_tl_user_led_pins[] = {
+ b7 S6 a: U, f2 y1 L7 q% d        /* These pins are definition at <mach/mux.h> file */. R) r' F3 b7 B! `: j
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 T8 i& X% `8 _( D+ {        -14 o4 ]: U: O5 ^; Y
};/ n" I) q2 J# c" P
0 Q8 j9 ^$ e# X& o( K! |2 L
static struct gpio_led da850_evm_tl_leds[] = {9 E1 ?" Q5 p) c* U3 Q
        {* p6 s5 a2 s& F4 X# Z) C5 j
                .active_low = 0,8 G5 b( ?9 p5 {1 b
                .gpio = DA850_USER_LED0,* a5 q* J3 _- ~+ O  _( X2 _
                .name = "user_led0",
/ f: w1 d" p# d2 V3 ~$ H5 A                .default_trigger = "default-on",( p$ x  Z6 q5 ^; x
        },
- V, ]/ K8 f" A) v/ ]# ~        {6 @+ c! i' V( S* g
                .active_low = 0,
2 Z5 m0 T9 r8 |* {                .gpio = DA850_USER_LED1,( q) n8 j( t9 A$ H+ ~
                .name = "user_led1",3 e, ~+ C9 C, _* R# m
                .default_trigger = "default-on",6 B( e8 j' p4 K6 _# X
        },
' Y3 L6 T; U6 p- a% g        {4 |/ O1 N3 ]( S3 @* J
                .active_low = 0,, O& j5 O7 D2 n0 |+ M, R
                .gpio = DA850_USER_LED2,; g8 r7 N0 _1 X, {
                .name = "user_led2",' b1 {8 |5 v8 J5 o0 b( Y! {
                .default_trigger = "default-on",( q5 T" Y) V1 o( S- m
        },
9 G! d. M) G2 Q9 h4 j) I; E        {# w' `3 P, u% w2 i, `1 Q
                .active_low = 0,# ]4 p. q; |0 |/ k
                .gpio = DA850_USER_LED3,
+ R0 W( ?9 G1 c+ c                .name = "user_led3",
# G3 o1 a7 \. U0 V( ~  N                .default_trigger = "default-on",
3 \, i+ A, R5 h; U, R7 d        },* Y  R' H- O3 h4 A2 R& m2 t
};
0 G: e# s1 _4 K
( D& F" y/ _# B- V% `. t1 Y8 pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 D* n  g, @) |. \8 @+ p        .leds = da850_evm_tl_leds,- A% a, i6 G& g9 e8 a9 }0 O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 P0 ?" l  @: A8 Q" [$ f( t};) a4 I8 ^7 p8 q
3 Y) j/ @  Y7 G3 ^( M
static void led_dev_release(struct device *dev)
  J& u( |: u; o! y+ a{
, a+ l9 l5 `( D4 }, D) ~+ e};# j; _: H5 D+ h/ D; W& u

( `( j1 j2 Z; ]* g3 x  l/ j6 k% I2 F4 kstatic struct platform_device da850_evm_tl_leds_device = {/ e7 b5 ~# G4 d7 Q# y: v& k4 x
        .name                = "leds-gpio",
. T* d( G" C- s; \) q; B; f2 a        .id                = 1,
( t0 r1 d% A6 a. D# c9 d3 J        .dev = {# _* ~% U' Q; k7 f7 B( i5 v  s
                .platform_data = &da850_evm_tl_leds_pdata,
3 x0 u' y3 S/ s- `                .release = led_dev_release,: {, M! P* Y( Z  v9 L* [
        }
3 {: i; [# K  @4 L9 c& |, e};
3 R3 S2 V5 E2 M; t  R7 w* W
0 j' r+ q, f1 T! X. O3 J  Zstatic int __init led_platform_init(void)
: U" }/ v, [3 F1 X& k{
3 H* e* w4 R+ x, ~, d7 `2 J        int ret;
6 L  `* r* p( v( y#if 0' W4 R+ M' l! N, j
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 {& m4 ?2 w0 d+ y* s( ~
        if (ret)
; K, E+ I, S2 C1 C                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ c- u9 ]6 x: u  {* f
                                "%d\n", ret);: }  P  _. Q. k4 e! p
#endif
* j, k' u( I4 ~% L4 E        ret = platform_device_register(&da850_evm_tl_leds_device);  l8 T& Q2 ^% p8 d* Q) i1 T
        if (ret)% E1 k8 L* p/ u& k- }' G9 k5 v
                pr_warning("Could not register som GPIO expander LEDS");
. R; `& N4 I: P& K& m0 B        else3 x) k* p2 e9 U, B' L% I6 Z
                printk(KERN_INFO "LED register sucessful!\n");0 a4 }  n+ e: L3 X+ H$ i

. k9 C- ^/ b0 Q3 p) [9 |0 C3 ~        return ret;4 B2 }4 d* T7 O5 F0 |6 q
}! X. R% q- G# \1 W0 [5 M
! C) B; Y1 a  @! y+ g
static void __exit led_platform_exit(void)
+ y2 i! N" H7 ?% j% ?" ~, ^{* v9 E/ A+ y* B( U
        platform_device_unregister(&da850_evm_tl_leds_device);/ n+ R* Q$ v4 u- G3 w5 y5 C* l
! u- e3 ?) N; D: F
        printk(KERN_INFO "LED unregister!\n");  O# I! k+ F9 C
}9 ]$ I8 m; L1 K, z

8 G: a% N6 s( n" gmodule_init(led_platform_init);
7 z& m8 I  G( I6 ^/ `module_exit(led_platform_exit);2 g. C6 |% f0 [  H9 J

5 q. d. U' @! W  U" S4 e- h2 |- ^7 ]MODULE_DESCRIPTION("Led platform driver");
* P, a/ F% i9 o4 j' Q$ }& MMODULE_AUTHOR("Tronlong");
2 ^/ I$ u+ W5 N; tMODULE_LICENSE("GPL");7 t" `: ^! b+ n- `+ x' N) X
* X8 W! k. d  U4 ~6 j+ u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-14 22:59 , Processed in 0.038197 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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