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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) T! i: C! B/ ?! m& b" W#include <linux/init.h>
& ?; s- x9 F( [2 N/ b0 G+ g. w#include <linux/module.h>
7 |- p/ {- i, S% }% `; f#include <linux/kernel.h>
. e: H4 |8 ~! e#include <linux/types.h>
7 z  W. }. a4 ~6 o7 K5 n- R#include <linux/gpio.h>4 d3 d- A  [0 a) X, R) b/ A
#include <linux/leds.h>
/ f* q, F# O$ Z* R' o. J7 P#include <linux/platform_device.h>7 I% T$ _! q5 j! K

; b5 Y* G5 V6 _; T" m4 B* }4 U#include <asm/mach-types.h>) C& E& p" K9 s* {+ @2 X
#include <asm/mach/arch.h>
1 G0 P9 L; [4 g/ ~: P6 A" i#include <mach/da8xx.h>( s/ U4 R; y' n$ _9 U
#include <mach/mux.h>
1 J+ d# w8 n& H+ l! w9 a5 [0 V- q* x
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 u2 d9 B5 I$ W3 r; [! o$ Q' I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. n: l2 a7 ?" t- X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! S$ ^& k+ T. t4 R9 f  J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. T+ N2 y+ _! a* f6 \" `* V$ y' G+ g) I& J5 Z
/* assign the tl som board LED-GPIOs*/
4 Q% \$ D# K1 d/ D; qstatic const short da850_evm_tl_user_led_pins[] = {
+ N- S" ^+ J: W/ @9 n        /* These pins are definition at <mach/mux.h> file */
: f! K- a- F1 ?+ c# t# U        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 N& l; d- ]5 M        -1) h: a: W5 n6 f
};1 n+ g' A8 h, h3 Q! Z0 W: R0 ?6 u
2 |7 a. y# l! P7 J7 Z
static struct gpio_led da850_evm_tl_leds[] = {7 |6 I) N' ?( A% o( K
        {
8 E+ \2 A" m) o0 o2 h* k! p& d                .active_low = 0,
0 c8 u1 J- y6 ]2 n% q+ H' U3 Q                .gpio = DA850_USER_LED0,2 Q2 Q) w% s4 g0 |
                .name = "user_led0",
0 {' I& C4 A, K+ L6 a                .default_trigger = "default-on",
1 r2 \$ e1 |3 j$ v5 {) y. o  }        },# ~1 N0 g2 z% }" t
        {
- E" _9 k% O. C% T9 Q) [/ u6 Q0 g                .active_low = 0,2 D" D6 z. k( |2 G- D
                .gpio = DA850_USER_LED1,
6 r6 X. B0 X5 m. H9 D4 b4 X( ?" `' F                .name = "user_led1",0 s7 v, U" m" {6 m$ l' u( {
                .default_trigger = "default-on",
; N# v- n9 J3 M8 u1 J9 ^& N        },6 W, @' p" L( A! U/ n
        {
" W( t; g% s4 Q) g                .active_low = 0,
& Q6 [9 O" i9 m# o- q* o6 X                .gpio = DA850_USER_LED2,/ C9 O7 A, k* y: M! [! H3 U
                .name = "user_led2",
, V! M8 E! W) \; E! G                .default_trigger = "default-on",. [1 r$ i% l( V. G4 {* V5 b0 Z
        },
+ t5 P- e3 m* r) `' R        {. g% u6 ?0 S& R0 |/ Y- ]
                .active_low = 0,
0 d# V2 \: d4 o6 F2 u                .gpio = DA850_USER_LED3,
1 n* u0 L# g) h% T  T7 k" Q; c. D                .name = "user_led3",  ~! }  c9 }  M: F
                .default_trigger = "default-on",
) x( M$ t9 }* ~        },
2 |# v3 P# c/ A7 |3 m};% ~- o. G0 a# K6 ]5 o

1 I' m6 M1 t: M6 f2 d9 ?& \  J& x7 Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! d3 M3 \2 T5 |" {# D
        .leds = da850_evm_tl_leds,
5 I1 N! z7 R( \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 k# _  g2 g( i
};
4 N  @, ^* R; x' l9 N
4 a! R: f; K. n7 v0 Q9 Ostatic void led_dev_release(struct device *dev)( r. s  {5 S- m
{
" n3 e( T7 D7 u8 B$ \};- c: y( C( I6 P6 X7 l' e* H

* e& g: ~- d. N; u. w9 n9 tstatic struct platform_device da850_evm_tl_leds_device = {
' W% {( u" s, S5 [. m' a        .name                = "leds-gpio",
' W& J. r* Z$ R/ O        .id                = 1,
4 u8 c4 F. q% w, Q$ a; W  y% H        .dev = {
1 o, U& A# ~9 U; A                .platform_data = &da850_evm_tl_leds_pdata,
: @& y( E& \0 a2 z3 o# l+ ^7 F- j                .release = led_dev_release,# \2 \0 H; s0 ?! p
        }
1 O8 L& t. X5 ^- W; T& ~( X5 Z};
. c0 Z5 K9 L6 m( t' F8 J: R5 [1 `% `, t
static int __init led_platform_init(void)7 o* V2 W, S4 z5 D& @
{
$ w4 u6 h! ?# E( a+ f4 V% y        int ret;, p, Y- N- f1 J; b; [2 P7 c
#if 0
: \! @3 d8 ~% @3 o& x' I        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: Z6 a, {# e; Z3 V1 c/ Q
        if (ret)  A2 T" r1 R8 h
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 |- F# W0 N. a# k8 |
                                "%d\n", ret);7 H  z  M# x) s
#endif9 ]- t5 x0 h$ b0 h
        ret = platform_device_register(&da850_evm_tl_leds_device);- _. T" n- J& u$ k2 H
        if (ret)* ?# o0 n0 y" s6 S
                pr_warning("Could not register som GPIO expander LEDS");$ l7 u; y, F8 u9 H& _, F  r
        else
. y# B" R8 y' D4 r8 ^                printk(KERN_INFO "LED register sucessful!\n");
, l7 r2 V" _# S& T' t: ~1 z$ x/ X' {( @
        return ret;/ E. l, k$ z0 Z8 i
}
( P! N' T% e& N$ q- `0 E5 ?& W3 U) D1 Y- _) q* c4 b& A4 @4 t! |
static void __exit led_platform_exit(void)
+ b3 b4 ]7 }! I+ Y+ h; u; e{: F6 b9 G* X! a& K' X" E) k
        platform_device_unregister(&da850_evm_tl_leds_device);& D( d, q9 x3 K: z8 S- G

( Y, ]+ S0 ?: [& g. a! P  n! H        printk(KERN_INFO "LED unregister!\n");; M! W; K0 X8 Z! F
}( B8 B9 ?6 y8 E7 x6 \" Q

) {* Q/ {  F2 K( C' l& ?% `module_init(led_platform_init);! x4 {/ s% q4 y4 [! \( D$ I
module_exit(led_platform_exit);+ d9 N5 t  }6 i1 t
0 y5 k" \/ L7 t! d) y6 t
MODULE_DESCRIPTION("Led platform driver");
8 i( k! A5 \2 _) D" W! MMODULE_AUTHOR("Tronlong");4 y- E( r; `6 o0 k4 j
MODULE_LICENSE("GPL");
$ W2 s# p, T0 V& s8 `
$ A* s# Q" U5 d* r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-16 00:50 , Processed in 0.044837 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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