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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. u# ]/ Y4 F  H7 A' D5 F
#include <linux/init.h>
- Q3 g1 V3 n9 m! Q6 N#include <linux/module.h>( Y; P, B. t& {; w7 S' V% A! D& }% C
#include <linux/kernel.h>
. d) l$ z, h, a3 j  h8 S#include <linux/types.h>
. {, z$ u0 y& \: B$ Z( `& Q9 H#include <linux/gpio.h>1 J5 N! f+ h0 s4 ?) j
#include <linux/leds.h># t6 S1 f& V. \1 D% ]. R# J
#include <linux/platform_device.h>
( D9 S3 u* p* s2 C; o  v& _; t2 X& ^& ^" n% r' R
#include <asm/mach-types.h>
* P0 K  ?$ ~4 R( a: ~#include <asm/mach/arch.h>- Q/ g. r! \, c- |4 Z
#include <mach/da8xx.h>
: E% ?# R% I% I, O" `/ [+ [( @#include <mach/mux.h>
  q5 t8 I3 T4 Q- y# I  X/ i  O. U  B7 n- C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 s8 ^6 d2 J7 E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 ?* ?; h0 T# T  _* O/ e7 A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# U2 L, b3 J# `; ~& X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( W, @/ L5 \( E3 u1 e, h: r

& k* V  H5 u$ \& c% k$ X/* assign the tl som board LED-GPIOs*/
6 z; O% N4 B" }static const short da850_evm_tl_user_led_pins[] = {& v* g* ~/ ]% }6 r& X
        /* These pins are definition at <mach/mux.h> file */
; R+ H) d5 _" |1 a        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 g& O, M" ~6 C! ^4 H3 @
        -1
5 K/ b3 u& W4 B+ n8 r+ d; [};
4 y0 d% C2 k8 E5 |( A- }( |1 D  d- v* j% ~4 c& s+ \
static struct gpio_led da850_evm_tl_leds[] = {- U% R2 \7 F5 V
        {% M* a2 ~9 o: t
                .active_low = 0,% O( b1 z& H/ F! t& v
                .gpio = DA850_USER_LED0,( g5 z* M) Z1 t/ Q; u
                .name = "user_led0",: S% _2 j, P5 K3 W, U/ e
                .default_trigger = "default-on",$ k1 W9 i& n0 M" d
        },2 z. T4 l9 B2 I/ o! |+ Y" \
        {
; c+ |, Q- K; G- @                .active_low = 0,5 J% j" ^: G3 X9 U) S5 |' s/ v* [8 a
                .gpio = DA850_USER_LED1,
' R6 l1 [8 o$ n# _                .name = "user_led1",; ^* q, Y* k% Z$ ^
                .default_trigger = "default-on",3 k- ]: w! X0 S
        },
4 V6 O5 K0 Q1 R4 `# }        {
- r0 R$ e5 |" Y+ n1 I0 j                .active_low = 0,
& E9 e% \7 D' i                .gpio = DA850_USER_LED2,4 C# N0 K+ F) D- S
                .name = "user_led2",
6 `+ _' w& `  Y                .default_trigger = "default-on",
. ?! l' e8 Q3 S( k9 y; w        },- a9 j0 n2 U0 f8 e% ?+ V0 K
        {( ^* z% H/ g0 q$ T
                .active_low = 0,  I/ r4 Z% P9 D$ @. y1 q0 l
                .gpio = DA850_USER_LED3,
5 i9 Q: v3 u" R( v                .name = "user_led3",
/ |2 m, }  Z# {5 H& e! v( |                .default_trigger = "default-on",8 d5 D# ?+ I" j/ J* p8 S' [$ Y  @
        },+ S0 x6 T' d8 ~/ g0 f# B! b7 \% J! ]
};& Q3 H. g' D5 R+ a+ W8 s

( C& S/ p2 E  g7 `static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& H" s3 r* U& i: D4 I# j1 T4 V# A
        .leds = da850_evm_tl_leds,
6 b( K. U, I1 q- @        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 }* i8 s- x& B8 ?};% M. }1 f! v# U9 R/ m1 ~
5 K& v+ S% g$ Z( u* D
static void led_dev_release(struct device *dev)
' z  F( H0 }6 p, U# t2 f2 b{# j, X6 v) u1 P) l! ^! g# D
};: ~' e3 I  C/ [
7 D# a* T( {4 z  ^% d4 N5 L. t
static struct platform_device da850_evm_tl_leds_device = {
- j5 e9 D1 a$ d; r9 p) m' q        .name                = "leds-gpio",
+ p& z* ^! Y2 e3 Y+ U* v        .id                = 1," I+ _# g2 a) F4 k: l8 r
        .dev = {+ k8 O; @* G3 ]' Z# J
                .platform_data = &da850_evm_tl_leds_pdata,
3 s* x6 u0 z' t* W# m                .release = led_dev_release,
, X4 D2 F9 K3 I. X2 A8 X8 n7 O        }8 R1 a$ Y5 s# Z$ j9 G3 w$ r, l# R
};- e% X! z* W  |. ]0 D7 d
: x; d) ?* s; c
static int __init led_platform_init(void)+ @' {3 f* L" j; O
{! P9 }! i* u2 G- M- ~
        int ret;
( ~# [7 w. r8 s8 Q* W#if 0
( W) T% u8 c+ a. B) X2 M, Y1 O/ B        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: Y1 g7 _; b9 ?, \! s& W        if (ret)
: ]2 `$ v0 D7 U4 ~+ M. X" x" F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& D4 l  R5 J0 t, b# B                                "%d\n", ret);
# z- j. c1 K' B% i. ^/ b* j) {#endif; E! K" ]2 m' n- Q6 C2 p
        ret = platform_device_register(&da850_evm_tl_leds_device);: k1 A9 d3 f3 P5 g/ {
        if (ret)
8 f. y9 I, V" b8 l                pr_warning("Could not register som GPIO expander LEDS");. o' X2 c2 D7 z8 M
        else+ h* ~9 Q2 v$ V
                printk(KERN_INFO "LED register sucessful!\n");- q: Z: W% N3 u/ z

! O  g: T7 i) O+ I        return ret;+ G# y* D; H* g" U( B' j+ S* V5 O: {: b
}
$ p+ W* k$ f- H' K2 c2 C8 L$ D6 I" R& c4 c6 C% c
static void __exit led_platform_exit(void)
4 G% K# b0 \% E& x5 w4 b/ [$ b{
3 c& U$ W, {8 d: j! R% f        platform_device_unregister(&da850_evm_tl_leds_device);1 Z9 B" X1 x* M" Z( F: `
0 c  W5 U3 [) b9 t7 F# X# R9 y* s
        printk(KERN_INFO "LED unregister!\n");) o& J' G/ z  R0 N
}
8 H* W* _; v# Z5 k7 g) H8 w9 y
# {$ U4 i" J, X: t8 S8 k0 Hmodule_init(led_platform_init);
% Y+ ?: f2 x6 }1 {1 Z  ymodule_exit(led_platform_exit);
. G8 o' d# l, p" F" E
# O! E& b6 w) M" ]6 y% nMODULE_DESCRIPTION("Led platform driver");8 _6 O3 [4 a% g' _! _
MODULE_AUTHOR("Tronlong");; I  j$ J. Q; b  z
MODULE_LICENSE("GPL");& }; p+ T( ^. R0 L2 F3 g

* o5 M+ E' ]$ ^; v& ~; w1 r" \6 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-18 07:33 , Processed in 0.038958 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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