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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 d( X' l5 t/ l8 q% t5 y#include <linux/init.h>
& }' I: t# T! M% f' |# d#include <linux/module.h>; h1 @9 H8 v$ m/ D" T. |
#include <linux/kernel.h>" a; Q  L# q; w9 j1 F$ g" ]) F
#include <linux/types.h>
( O, _) n1 D6 s2 B, h#include <linux/gpio.h>6 Q) N9 _7 P* M: x( z
#include <linux/leds.h>$ g$ x1 `2 m" U0 d% q% _8 P& D
#include <linux/platform_device.h>
2 i8 O4 e+ W* R
# L* l# X7 C& {6 p5 j: l" N#include <asm/mach-types.h>7 O" M/ g# U& o5 j4 t4 D% Y
#include <asm/mach/arch.h>
9 \2 Z' h$ h1 X#include <mach/da8xx.h># T& @  ^) A9 z5 L
#include <mach/mux.h>
2 P) s% Z' h, i) N8 h
8 U! J8 x6 J  P/ Q2 I3 T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% M: `$ b" ^5 q/ E8 r6 T# ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 F/ \4 o1 l/ r) L( s6 b$ K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! R2 w4 y) |# E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; E0 _5 P. q! V* d; ?5 t$ B% C3 a) M& S& }0 h6 [
/* assign the tl som board LED-GPIOs*/( ~8 A& A7 e- N6 j' M  l
static const short da850_evm_tl_user_led_pins[] = {6 h, k7 h' }2 [; s% V$ }; M
        /* These pins are definition at <mach/mux.h> file */# J5 x* G1 I% p. t/ z5 G0 U6 U0 ?9 M
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( ?7 W9 k7 M. Y. v8 Z& `        -1
3 f9 _$ D5 L/ @. M7 @7 k9 I9 X};1 u! [3 S) S! q& z- Z
) A) ~& y3 M0 c/ E
static struct gpio_led da850_evm_tl_leds[] = {5 E2 @4 W  |% R/ q; \( l4 Q
        {
) q1 n" E' _' D& V& l. j8 `                .active_low = 0,
8 }& u" f8 O# D3 z( @+ {% V8 r1 s                .gpio = DA850_USER_LED0,
! ?' Z+ C4 [9 g% P# B. X                .name = "user_led0",
/ s2 e) |) a5 |  U& T: s: d                .default_trigger = "default-on",
' {# F( h1 \- e' m5 O& p        },* ?& g. q6 X5 \- g  F
        {% |7 ~1 N. s1 Q. l8 b
                .active_low = 0,( o0 J; @+ V- e( C+ L/ d  T
                .gpio = DA850_USER_LED1,9 S. c, a, J0 s; c& Y/ L- J
                .name = "user_led1",
' h) m: |1 ]! F9 o; o1 Q& v- }                .default_trigger = "default-on",/ q6 h5 n/ L# W3 Y- C2 _) ^/ ]% v* p) {
        },$ \8 d, }3 [* N- }$ r# J5 F& _" o
        {
6 M  R' F1 K* C6 q                .active_low = 0,* E1 Z9 \& [$ v. ~( f: G4 |
                .gpio = DA850_USER_LED2,
5 R& B% ^5 H+ v3 b+ P                .name = "user_led2",+ q7 R) G. d% Q: i' }, k6 W7 c
                .default_trigger = "default-on",
- u# v, M5 V. _/ F0 \+ C* \" _$ j9 t        },
7 S& ^8 }! n; R4 `8 N        {
8 ?5 m" T* O3 H7 H; U                .active_low = 0,8 F3 s/ x# s6 l$ e  ?: i1 `( I: k1 a
                .gpio = DA850_USER_LED3,% H4 W* d* f$ y8 Z+ Q3 {! m
                .name = "user_led3",+ W8 u( M/ w/ d/ `7 @$ Z
                .default_trigger = "default-on",
8 |3 h2 P0 u& \( t5 F2 O+ C2 I        },
" R0 }! P& S6 g: v3 c' @};
# ?# `; @& @  v6 J2 \
2 J; r' Y2 R1 h7 ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  F! ^* R& o8 o# ~+ C; H        .leds = da850_evm_tl_leds,: X$ d( }2 [% M4 {0 w# u* f5 K% r( _" ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ c& v5 z) U; M" C3 M
};
2 U0 Q; y0 g5 x. ?- R/ ~
% E% ]! T% k7 [( bstatic void led_dev_release(struct device *dev)* x  z6 a  d* x5 l0 ?7 ~! v) c  P
{
5 G, X9 A" X0 ~5 a};! L2 y6 B( F( n* O) e* ]% h$ I& ?
" J% z3 e1 w/ G, N; N& D3 }+ o: n# @. I1 D
static struct platform_device da850_evm_tl_leds_device = {
; w8 |1 j* Z9 i        .name                = "leds-gpio",% T, z- f+ l* o  N8 A( U" f
        .id                = 1,* u: @# q! v' }4 C* N
        .dev = {
. R# j+ f" m. P                .platform_data = &da850_evm_tl_leds_pdata,
' @! {* O. D$ @( i9 |                .release = led_dev_release,0 Z- q& l  J% @4 f
        }
( v( y- `5 g- R9 H7 t; s; u8 z};3 F. L# u/ c& m# ~2 `, S
0 A  j) y( B+ n& A( g9 k8 ?, Q
static int __init led_platform_init(void)+ O' v  {- Q( p* f9 s# `- Y
{. d) g$ {+ F0 e- |
        int ret;2 t4 @' t- r4 Q7 ~6 P) d
#if 0
/ E9 o1 T, z, U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; R2 w' u8 G2 V5 l4 c* B  y0 A        if (ret)- I8 p( b& c; Y- z" ^
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 {, z% d' H1 |  s. D  N
                                "%d\n", ret);: q$ a. y* a5 o
#endif
; `, ~+ a1 _' m, f        ret = platform_device_register(&da850_evm_tl_leds_device);) c' x+ A$ }8 q( d$ `4 {$ B# L' D
        if (ret)
8 M' ], l% h/ A, a  U                pr_warning("Could not register som GPIO expander LEDS");% O/ f7 W0 O" U( O" Y
        else
/ c7 s, ]1 i, H                printk(KERN_INFO "LED register sucessful!\n");
2 B$ @: {6 @4 i. I3 ?8 m7 b  a
* I, O5 r  F7 f0 y        return ret;
, g5 o* y- N8 M2 H( t1 g}4 S* P6 w" G2 [( L, C

9 D$ C4 R2 a2 j0 r: @  u% F1 ?static void __exit led_platform_exit(void)$ F8 ~- M; y: W5 [2 H# [$ T/ K
{
' w3 K! h2 ]3 M3 K        platform_device_unregister(&da850_evm_tl_leds_device);3 ~3 _) u' y' G5 ^1 B' ]6 l

) h" d+ i( x! F- u' ~# {7 Q! `* U        printk(KERN_INFO "LED unregister!\n");5 r/ z, r! U5 D
}) ^* s' i) v+ {) p' b
, m/ S% G$ q/ w* d2 l1 I, r: ]! t" w
module_init(led_platform_init);
7 F) m6 {$ M. c* O8 i+ u2 Ymodule_exit(led_platform_exit);9 l8 A% k: l! |# A& k" \; P( m

3 _$ m' k- S8 Q1 \MODULE_DESCRIPTION("Led platform driver");
2 |/ l0 S& q! `: w( w6 oMODULE_AUTHOR("Tronlong");1 K4 n: ^- S0 `  p5 h4 K2 \
MODULE_LICENSE("GPL");
: Y. [8 K# W0 S9 u# E8 N
7 i/ Z3 m3 G( u/ j, W, M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-31 02:57 , Processed in 0.041550 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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