程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- @. v% d5 v/ [* i1 {5 j#include <linux/init.h>
  Z2 d7 {; C3 ?  b#include <linux/module.h>
5 V1 e1 g+ ^8 x+ a* h( L#include <linux/kernel.h>
7 p6 Y+ y. `6 P#include <linux/types.h>8 S" l! }# n5 ]- R
#include <linux/gpio.h>
# K2 X6 a1 U! f) t#include <linux/leds.h>
* T* A, B: g3 n8 c#include <linux/platform_device.h>
+ O+ I  O7 Z: e# _/ o
4 [: }, f0 f% d. g6 X+ j% S#include <asm/mach-types.h>4 Q$ T- l$ F. ^, F
#include <asm/mach/arch.h>! {2 e" ^+ E0 K: b- z
#include <mach/da8xx.h>
' }& X: V( r+ X6 ~#include <mach/mux.h>' j0 U1 W1 V& l2 L7 o9 ?

. c8 z. k' i9 O( ~, f#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 I7 L  z2 }$ G% L0 z) z* V#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 a6 {% E, K/ [3 e+ T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  e  N% ^6 g' _. H3 Z$ A! C8 w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( w- k7 K+ o* b6 {1 ?
3 ]8 ?# ^$ ]7 ]/* assign the tl som board LED-GPIOs*/) N) ?$ E4 b9 r/ A/ ?! }
static const short da850_evm_tl_user_led_pins[] = {
6 s4 V8 `9 g% Z9 f        /* These pins are definition at <mach/mux.h> file */
$ R5 b' P$ F& ^0 E/ e& @, D        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. l9 W5 V2 l9 |8 h( Z$ [! w        -1- ~$ ?) P* P4 A# m, K4 i
};& o1 K: x$ w- Z9 c. ?1 z

- M, B1 C: U4 Ostatic struct gpio_led da850_evm_tl_leds[] = {/ n/ W- H4 }. h; e: w
        {2 D2 O; c0 q* [( o' @& Q: N
                .active_low = 0,. M9 |/ F0 e- Q  L) b, P+ y
                .gpio = DA850_USER_LED0,
7 j; A$ h3 Z% e" j3 g                .name = "user_led0",! E, j9 K& w5 y# `  f0 ~
                .default_trigger = "default-on",
' b- @6 ~4 D2 `        }," f$ M' P9 @' p) H4 X' Q) O
        {
0 r+ G8 _8 c4 L& G: f2 d                .active_low = 0,
  o. f2 t" U5 E% i! a                .gpio = DA850_USER_LED1,
& o& ?' o: ]2 Z8 P. n' O- t                .name = "user_led1",5 |( d' P* Z  k$ h) j, s; \- I) p
                .default_trigger = "default-on",5 d+ t3 ^# a) P+ `8 Q
        },
7 j0 V  U2 P; ^7 U4 y6 e        {' V! C* ^9 l8 n2 ^! [' q2 I
                .active_low = 0,* W; z% P( B$ o1 I, i0 [# @# F
                .gpio = DA850_USER_LED2,6 m9 b& p% c$ f; F0 T) m, _
                .name = "user_led2",5 w( G( U& B9 m. T4 ~% X& v. U1 R
                .default_trigger = "default-on",
/ L1 f: |6 g; u4 C7 y        },+ r: f/ G0 l/ t
        {
/ p, M" ^* f) P( ?1 k                .active_low = 0,& I& ?2 n, \0 I/ z  J
                .gpio = DA850_USER_LED3,: J; F/ f9 W0 f0 I! i6 i
                .name = "user_led3",/ L1 F" ^& E. a: K8 e2 x
                .default_trigger = "default-on",
  C* [+ B! s" R+ P        },
  l! I" _! \  L1 k) |4 s};, {& A+ M8 h2 }7 a

+ q+ r: ~8 C( ^) q3 Dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& ~1 C* d# r2 w- E8 f6 A( }! [        .leds = da850_evm_tl_leds,! C+ z. Z5 P: t' m; p
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 u0 V  p- a9 I2 _};
6 q3 I( d4 \/ g1 l: |2 W! k" c5 `) C! N: |9 V5 t9 z% {
static void led_dev_release(struct device *dev)$ y3 [2 O0 a0 C# y) y" a
{
  Y4 H) E" ]3 y8 l4 a};3 a2 Y) M" d# Z8 L- g

# q6 N; _; ?- Cstatic struct platform_device da850_evm_tl_leds_device = {
" @3 O; j5 X1 E( S& }8 b# @+ i        .name                = "leds-gpio",
) j0 r6 T' Q- s  D        .id                = 1,: C; t0 P3 p9 Q/ ?5 Y
        .dev = {
9 d! g  n4 _, k& Q3 x* X, b; k                .platform_data = &da850_evm_tl_leds_pdata,
/ v5 m, E% t, y* I, g0 ?3 {                .release = led_dev_release,, A4 `8 A( o9 T% m
        }
5 {$ U* d; t0 f# p5 t& Y# l. C};3 c# c4 {% i* B$ b

4 @9 H4 x2 [' G5 w6 S5 N# Dstatic int __init led_platform_init(void)
: D/ W6 n( Z9 S6 v, f{
/ W; S& f; s8 ^0 p$ E% B8 n* I        int ret;! }/ l' Z& l- x4 n! Q" U2 B
#if 0
+ p3 |6 M% a. n7 y# i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 E3 V2 l* b" Y8 f2 J3 i        if (ret)
/ H& y2 X7 P1 j: K+ T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 v; o0 Q8 r: |% _- A6 R2 J$ q                                "%d\n", ret);- v8 j$ g3 U6 i2 y1 M  }' n
#endif
8 z0 c+ ?* l& R) M9 h6 n+ m        ret = platform_device_register(&da850_evm_tl_leds_device);
. j! s4 l8 b3 u; l* i/ o3 ]        if (ret)8 W  P0 L, E: a$ b+ E/ v: t
                pr_warning("Could not register som GPIO expander LEDS");% ~( b" r" V" F
        else) z6 U: k; {0 m# X
                printk(KERN_INFO "LED register sucessful!\n");
* s/ |3 J+ z* Q: O6 x5 x/ k+ s! ?
        return ret;
3 F7 o' \" h0 I; _1 Z$ @}
8 x5 u% h8 g3 @2 B! g
; `; p& _, h/ v: Y. H* xstatic void __exit led_platform_exit(void)
! T' c: X0 ~3 D# E{
& m$ d5 S2 J( `2 m+ A        platform_device_unregister(&da850_evm_tl_leds_device);
% V" g$ L. _  Y) j1 \
8 @3 x9 `6 Q4 h& |        printk(KERN_INFO "LED unregister!\n");
5 a( t5 A* _- K2 F* k- b7 v}+ A9 \! C% P- M5 J& Y; y, j% @
& o& u" s8 [% d( o9 {
module_init(led_platform_init);' q& e5 ~' Z" h7 M4 v
module_exit(led_platform_exit);
  z  K* w3 e# g+ e) K0 B' E8 q  `. T2 l' V
MODULE_DESCRIPTION("Led platform driver");4 D  S+ v1 P( S3 W* i
MODULE_AUTHOR("Tronlong");; P; }. K) Y' h- u
MODULE_LICENSE("GPL");
. G: f8 u' {6 B3 `
$ r- D6 {: Z2 E$ G" }- f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-17 06:49 , Processed in 0.035170 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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