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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- [2 M4 h% d% Q+ ]& v# @#include <linux/init.h>
  g7 B! V, z0 A' R2 D  \#include <linux/module.h>
/ K& X$ k! f6 n) k#include <linux/kernel.h>' f( G! e0 @/ o3 T! M7 T, Y1 L7 t
#include <linux/types.h>" l$ w* S% U4 Q
#include <linux/gpio.h>5 [5 _) v7 W7 _) Y  X% r
#include <linux/leds.h>' p8 w2 S, j& g% X  D
#include <linux/platform_device.h>9 q5 o. j6 r6 ?" C7 `
* w, ^% Y. q8 v3 Z/ A
#include <asm/mach-types.h>
+ G6 t% \8 R' E: M8 o#include <asm/mach/arch.h>
% d' @& I' K" y' h0 b#include <mach/da8xx.h>9 H  ]- f& m: _& [/ [
#include <mach/mux.h>/ F1 N( Q' f; R$ o3 o
: V! u/ d; `- _& p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& z8 r% k/ [/ }. m7 U: @- N
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" Y% H/ y+ k/ `6 u  a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); J+ ~5 N# v) I
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 D" \4 t/ x6 P: d0 T9 D
% }. u6 w7 w3 K9 \: j  c6 Z/* assign the tl som board LED-GPIOs*/
' L" H; d  q; z9 G/ a- @% qstatic const short da850_evm_tl_user_led_pins[] = {
! ]. C0 Z. m: ^. h        /* These pins are definition at <mach/mux.h> file */8 i8 X! o0 F2 j$ I9 \$ L- Y7 H0 P
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 d5 k: k) ^' k1 h        -14 r0 w2 R0 @. y( z) ^7 B. p
};8 P7 D) e; ]8 {, d/ O7 D
7 B6 u7 Z/ g+ g: T/ K% q7 S; z
static struct gpio_led da850_evm_tl_leds[] = {
8 {, r# q" e, R( a        {/ i' o4 y# x# {0 ^* N1 B8 U
                .active_low = 0,
) U1 T+ K1 c5 w4 W1 y+ t                .gpio = DA850_USER_LED0,
3 L! V: h* G7 ~4 F3 d% b                .name = "user_led0",
" V  g( M1 c, o2 {7 B4 D3 G8 D                .default_trigger = "default-on",
9 u( v7 t, }) s/ d  A( `& p1 c        },3 s2 z: \' s' p$ K5 ?
        {
0 E0 M! ^: q/ b                .active_low = 0,# y" f# n5 u2 ^( D
                .gpio = DA850_USER_LED1,
) {9 r6 z7 ^. N                .name = "user_led1",
; N  M" |& a* K0 O% a) M) v- D: B                .default_trigger = "default-on",
. g* ^$ R- z( n  `: ~6 g        },
; A8 h9 f# |6 D! Z. E        {, ?8 j) g' e! g  }! P
                .active_low = 0,- g% D! E' l  J9 e+ f4 n
                .gpio = DA850_USER_LED2,0 ^5 R( ^( D0 j5 D* Q$ ]: b
                .name = "user_led2"," O& s8 _6 |, A+ M- g8 B
                .default_trigger = "default-on",
" j$ r9 Q' ^, q        },; {3 I. d: K* h; Y( k' F! }, J
        {
+ ^, ?+ r8 g) i8 R2 @" x/ f                .active_low = 0,$ ^/ C, K, }& g2 b) r
                .gpio = DA850_USER_LED3,- G- i7 H  A: V+ t" I& G
                .name = "user_led3",
/ `$ q1 y7 P0 T9 H- I: j                .default_trigger = "default-on",! f6 k1 N0 j. J* J8 u, _9 a
        },
, I8 E0 N# p, o9 U9 i};
8 ]/ h4 @8 N/ D" @
; {8 f4 R  q, s* k/ U7 {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* u) y3 r& n- ?6 B' d7 s        .leds = da850_evm_tl_leds,4 V& k5 U6 r4 B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 I) ?/ N" c+ n3 w};
; A3 d( U) G9 T: I& X4 \' e1 @- i, D3 d) M$ R" n
static void led_dev_release(struct device *dev)
: r3 k( l/ Q8 N! c{1 I% G: O7 U. V! h- e1 {5 d
};7 q# z& C# i& d! y8 g- Y2 N2 Q6 O+ y

0 @2 n7 L4 y' Q; cstatic struct platform_device da850_evm_tl_leds_device = {# G0 y6 F. K) d; k$ T% J4 G5 n) X
        .name                = "leds-gpio",
7 |, S/ U" o4 B* T3 `. l        .id                = 1,  l  h0 O: r3 i1 R5 W$ y) }1 D
        .dev = {
8 [6 ^0 _# I9 E9 P. q5 }$ u1 c) t                .platform_data = &da850_evm_tl_leds_pdata,
- n/ b$ |! O9 y9 z% l                .release = led_dev_release,0 d8 ]# a# ]& M/ Q( g1 l- w
        }$ ]4 _4 l/ y7 B, v2 ^
};
( y5 O2 ?+ X/ `0 P, [( W: }* o3 H& g* z0 v$ ?' [4 G5 V1 ]/ n
static int __init led_platform_init(void)# P1 `& ^. w# D+ f, f
{
' S5 O9 L0 i7 r        int ret;1 [2 Q/ J# ~0 f7 n* _0 w' _
#if 05 \7 e( U* |7 p: a( w# E7 s5 U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 o! B* k8 ]! w# C' ?- [        if (ret)" M  l& B# v; W7 Q( T8 I
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* t1 \" c6 L# \+ T, n/ m
                                "%d\n", ret);- H2 o" Q% ^  A
#endif
! o* v% }/ Z1 ~0 o9 B6 N        ret = platform_device_register(&da850_evm_tl_leds_device);9 `6 P2 {1 h5 s) g7 A( Q, e
        if (ret)3 D5 w; @7 z9 P/ g  G9 ?: N+ y
                pr_warning("Could not register som GPIO expander LEDS");
2 t  b2 E% D' O+ w: f' D5 a        else
7 I& i! s; Q6 d                printk(KERN_INFO "LED register sucessful!\n");# ]$ I4 g/ P9 {) @1 Z$ i

5 [: B+ P# G6 h( \, z        return ret;
# ^" Z& p7 o! `( G- X  M}
  _2 X  \2 E4 c: m0 E: R- R( s
3 |( ^6 M9 }; H" ostatic void __exit led_platform_exit(void)
  Q! I: O) _4 V{
/ G, L$ }% V5 {) y        platform_device_unregister(&da850_evm_tl_leds_device);
3 m7 M( x, T* a* o$ T! {, `8 w3 b. j& t+ ^
/ y6 a; b+ x5 L* e  p: B) ^        printk(KERN_INFO "LED unregister!\n");
; p0 V  F& Y+ d}" |4 t3 _6 ?; ]* l7 I$ x

9 p% u4 p8 s; d  _7 O; U6 K8 ?. Umodule_init(led_platform_init);
/ n7 G, q( X+ V( b4 D; K7 p7 ~* Y" Omodule_exit(led_platform_exit);
& T1 ?/ [6 D, a( b7 k- }7 U% r0 b$ v5 N' I; h
MODULE_DESCRIPTION("Led platform driver");/ L: s3 g- G4 _( n
MODULE_AUTHOR("Tronlong");
: Z7 B1 m# y; o, ?0 f8 tMODULE_LICENSE("GPL");
0 x! m  Y, ?& U" V
/ U! i8 X$ c* ]- k- ^- Y$ B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-22 06:05 , Processed in 0.041805 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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