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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( j# t4 R8 u0 e- n* w# }# \#include <linux/init.h>
6 w+ b1 x) z7 ]9 Z  F#include <linux/module.h>
8 q: o! I. I8 {' ^  R1 s#include <linux/kernel.h>
* g8 w3 ^& x: O/ w  u#include <linux/types.h>1 X0 {1 S3 S! _7 ]
#include <linux/gpio.h>
; r) K! r0 y" ~! O#include <linux/leds.h>3 [; w' A. n4 C, Z0 x1 H& t9 o
#include <linux/platform_device.h>
% m. a% J5 B1 Q' B
' d5 o$ j4 i0 k7 T4 n/ {, J#include <asm/mach-types.h>
& l$ d& ~3 A1 Z; ^' J- q- H5 B#include <asm/mach/arch.h>+ C0 O% {* P0 Z9 O
#include <mach/da8xx.h>9 \% f2 J& W' w- v% a: ~
#include <mach/mux.h>9 E3 S6 ~, @7 W, O7 J0 b

. F1 v4 u9 H3 f/ {1 C#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. u7 l# a: q$ r  E) x9 j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" s9 q: L5 L; _# g2 d% ^#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* Y/ y' d) V1 o( R4 A3 G# ?
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 K8 L8 }, t  P' {" S2 |- _8 K( x
/* assign the tl som board LED-GPIOs*/
  D+ J$ C( W3 w7 Nstatic const short da850_evm_tl_user_led_pins[] = {
$ N# ~) Q7 _- N% [        /* These pins are definition at <mach/mux.h> file */
% [! \5 h3 b& h! E! z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 D5 Z$ c4 v2 e" }; G7 C+ P$ t        -1
! A6 [  z' Z) a; b: b: Y; ~7 r};( s" a* ~: \! I4 k% T' z5 k, Q

1 `+ F( K5 l3 B, ostatic struct gpio_led da850_evm_tl_leds[] = {
4 }6 E1 a4 A" l5 _, h        {4 X" }0 s8 w- ~% T: E+ i/ O" w
                .active_low = 0,
- z% f0 v! M6 x                .gpio = DA850_USER_LED0,( y9 n' i" _* D% o) v" R; q/ \
                .name = "user_led0",
1 k/ k) Q! C2 z, l! L3 v                .default_trigger = "default-on",
. w( F. z: e0 l        },
' |6 [/ e" L" F! y2 ^        {! Z$ @8 ^1 U/ w% o) O! X
                .active_low = 0,
* F! \4 z4 p6 o0 D0 d                .gpio = DA850_USER_LED1,. P9 B) p/ _, j* n
                .name = "user_led1",
: `1 g4 c; c/ ]! u! N. V( }% P                .default_trigger = "default-on",+ n& L8 d5 q" {. ?* H
        },7 y& R1 |1 N; _9 |7 O
        {7 k( b: o+ Q5 |. }6 k- m
                .active_low = 0,
+ u; o! s9 x& o% K/ F5 k* {                .gpio = DA850_USER_LED2,( D9 d5 d% s7 K! K
                .name = "user_led2",. a  R7 @9 N9 i8 j
                .default_trigger = "default-on",
, I9 J: R! O% }/ y: p        },
4 e; e! X. U$ ~1 @( Z9 P        {
  x) V8 h) [! V1 ?8 s                .active_low = 0,
* y0 P/ h4 D$ a9 Z' R                .gpio = DA850_USER_LED3,
' B! W, e7 [! \: E% s                .name = "user_led3",
4 l/ ]2 n) G. Y8 X8 y6 s$ g                .default_trigger = "default-on",) E! \% k  v% t, c# C, R
        },
7 g4 |% N1 r$ f6 k/ R4 b! z};; ~8 ?2 L. Y4 m) Y5 y0 O

9 P8 {# X& |; ~0 n6 n  x" V8 Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' k" t# l+ ?$ q* y7 q5 X
        .leds = da850_evm_tl_leds,
6 k+ v) o) Z" E; j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 f( H& o9 S. B6 _" s+ C! X};* Q7 U0 h, f( O2 l4 l
+ J  H- Y6 W  f: }( [# G1 y0 H
static void led_dev_release(struct device *dev)
( [$ O' |, M  [$ Y{2 q' s' f  l. h7 {
};7 o1 x8 h! M! o: \% Y+ l6 v% O/ A
0 t; S. C, I3 u
static struct platform_device da850_evm_tl_leds_device = {; D6 ?# C8 X/ ~% R1 d1 ^
        .name                = "leds-gpio",
$ k# n, U9 [& u9 f        .id                = 1,
( l' y; x) R. k. w' @# f& W4 k        .dev = {- \' f1 e) [0 i4 J
                .platform_data = &da850_evm_tl_leds_pdata,6 u, n7 Y4 E& g1 H; Q9 |
                .release = led_dev_release,# X5 ]$ P/ C; G+ K% [- @9 N# }. j- g9 c
        }
$ |3 i' ?7 a' X+ G0 c1 o+ a};
7 j" e5 Z; h" ^) S) e8 k" E. c+ i2 A# D. L, _, F
static int __init led_platform_init(void)
+ g/ e. ^' r  u$ t5 G+ j' h; X5 g- g{
! l, v( `* Y; J: i$ [        int ret;
8 O: K" y8 x8 F7 |#if 0# [% J9 k% M3 L5 d" r5 U0 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# C6 u7 T  f2 R. q6 d. t        if (ret): m5 {! f. [' F& S5 N
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 l- `+ ]" W# h. N8 M: i' i
                                "%d\n", ret);( u% Q& m+ d( U8 g- b# J
#endif6 Q8 T4 C' V1 l" [" |' s- N
        ret = platform_device_register(&da850_evm_tl_leds_device);( f; |6 A3 z: y" T* x
        if (ret)2 [( S, `- e9 g1 `! \( b
                pr_warning("Could not register som GPIO expander LEDS");. S- [8 x( A! C" k9 W$ v
        else
7 W: c- `: \/ J( ~) V( F$ V                printk(KERN_INFO "LED register sucessful!\n");5 p' J% k  i/ v

" J: b/ B' X1 p! d, R; j  I        return ret;! J9 i& j# F% m( k1 c' M0 e5 K
}
9 A0 \1 i5 ?6 r. b
7 [2 I6 Z5 w' @0 O( B( ?static void __exit led_platform_exit(void)* ~' V2 H3 I1 p
{
/ Q# g& M, Y; f0 J) |5 b7 e        platform_device_unregister(&da850_evm_tl_leds_device);; o  `9 _( q! E/ T

0 ^/ p) [+ [% d# }7 V7 a        printk(KERN_INFO "LED unregister!\n");. D: L. d" N& s, S/ D3 b/ I# {' G
}+ Z) R! e6 [' v( o. _

& M$ B9 a% L* i7 a. T% Wmodule_init(led_platform_init);
' `- w0 y  i$ P- [module_exit(led_platform_exit);, b% K3 B( y2 x9 P# Q9 s

% {( W7 P* V0 d. p5 V, K( N0 {$ a- FMODULE_DESCRIPTION("Led platform driver");. g; t, W, B: L+ q# H
MODULE_AUTHOR("Tronlong");" u& T# B' s' ^# w8 B) M/ d
MODULE_LICENSE("GPL");0 r( ?6 r/ N  E, m; ?7 {

3 H/ |3 r0 T1 k/ H! k4 }3 M4 c0 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 18:59 , Processed in 0.039570 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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